|
@@ -94,11 +94,11 @@ $(document).ready(function() {
|
|
|
this.refreshFileCountHint();
|
|
|
}
|
|
|
_getFileNameHtml(file) {
|
|
|
- const moveHtml = file.canEdit ? `<a href="javascript: void(0);" class="mr-1" name="move-file" fid="${file.id}"><i class="fa fa-exchange fa-fw"></i></a>` : '';
|
|
|
- const editHtml = file.canEdit ? `<a href="javascript: void(0);" class="mr-1" name="edit-file" fid="${file.id}"><i class="fa fa-pencil fa-fw"></i></a>` : '';
|
|
|
+ const moveHtml = file.canEdit || canEdit ? `<a href="javascript: void(0);" class="mr-1" name="move-file" fid="${file.id}"><i class="fa fa-exchange fa-fw"></i></a>` : '';
|
|
|
+ const editHtml = file.canEdit || canEdit ? `<a href="javascript: void(0);" class="mr-1" name="edit-file" fid="${file.id}"><i class="fa fa-pencil fa-fw"></i></a>` : '';
|
|
|
const viewHtml = file.viewpath ? `<a href="${file.viewpath}" class="mr-1" target="_blank"><i class="fa fa-eye fa-fw"></i></a>` : '';
|
|
|
const downHtml = `<a href="javascript: void(0);" onclick="AliOss.downloadFile('${file.filepath}', '${file.filename + file.fileext}')" class="mr-1"><i class="fa fa-download fa-fw"></i></a>`;
|
|
|
- const delHtml = file.canEdit || canDelete ? `<a href="javascript: void(0);" class="mr-1 text-danger" name="del-file" fid="${file.id}"><i class="fa fa-trash-o fa-fw"></i></a>` : '';
|
|
|
+ const delHtml = file.canEdit || canEdit ? `<a href="javascript: void(0);" class="mr-1 text-danger" name="del-file" fid="${file.id}"><i class="fa fa-trash-o fa-fw"></i></a>` : '';
|
|
|
return `<div class="d-flex justify-content-between align-items-center table-file"><div name="filename" fid="${file.id}">${file.filename}${file.fileext}</div><div class="btn-group-table" style="display: none;">${moveHtml}${editHtml}${viewHtml}${downHtml}${delHtml}</div></div>`;
|
|
|
}
|
|
|
_getEditFileNameHtml(file) {
|
|
@@ -295,24 +295,31 @@ $(document).ready(function() {
|
|
|
});
|
|
|
|
|
|
}
|
|
|
- delFiles(files, callback) {
|
|
|
- postData('file/del', { del: files }, async function(data) {
|
|
|
- const relaFiling = data.filing.id === filingObj.curFiling.source_node.id
|
|
|
- ? filingObj.curFiling : filingObj.findFiling(data.filing.id);
|
|
|
- for (const id of data.del) {
|
|
|
- const fIndex = relaFiling.source_node.files.findIndex(x => { return x.id === id });
|
|
|
- if (fIndex >= 0) relaFiling.source_node.files.splice(fIndex, 1);
|
|
|
- fileSearch.removeSearchFile(id);
|
|
|
- }
|
|
|
- filingObj.updateFilingFileCount(relaFiling, data.filing.file_count);
|
|
|
- await filingObj.loadFiles(relaFiling, filingObj.curPage);
|
|
|
- if (data.filing.id === filingObj.curFiling.source_node.id) {
|
|
|
- filingObj.refreshPages();
|
|
|
- filingObj.refreshFilesTable();
|
|
|
- filingObj.refreshFileCountHint();
|
|
|
- }
|
|
|
- if (callback) callback();
|
|
|
- });
|
|
|
+ delFiles(files, callback, hint = '') {
|
|
|
+ const del = function() {
|
|
|
+ postData('file/del', { del: files }, async function(data) {
|
|
|
+ const relaFiling = data.filing.id === filingObj.curFiling.source_node.id
|
|
|
+ ? filingObj.curFiling : filingObj.findFiling(data.filing.id);
|
|
|
+ for (const id of data.del) {
|
|
|
+ const fIndex = relaFiling.source_node.files.findIndex(x => { return x.id === id });
|
|
|
+ if (fIndex >= 0) relaFiling.source_node.files.splice(fIndex, 1);
|
|
|
+ fileSearch.removeSearchFile(id);
|
|
|
+ }
|
|
|
+ filingObj.updateFilingFileCount(relaFiling, data.filing.file_count);
|
|
|
+ await filingObj.loadFiles(relaFiling, filingObj.curPage);
|
|
|
+ if (data.filing.id === filingObj.curFiling.source_node.id) {
|
|
|
+ filingObj.refreshPages();
|
|
|
+ filingObj.refreshFilesTable();
|
|
|
+ filingObj.refreshFileCountHint();
|
|
|
+ }
|
|
|
+ if (callback) callback();
|
|
|
+ });
|
|
|
+ };
|
|
|
+ if (hint) {
|
|
|
+ deleteAfterHint(del, hint);
|
|
|
+ } else {
|
|
|
+ del();
|
|
|
+ }
|
|
|
}
|
|
|
renameFile(file, filename) {
|
|
|
const self = this;
|
|
@@ -724,7 +731,8 @@ $(document).ready(function() {
|
|
|
});
|
|
|
$('body').on('click', "a[name=del-file]", function() {
|
|
|
const del = [this.getAttribute('fid')];
|
|
|
- filingObj.delFiles(del);
|
|
|
+ const filename = $('[name=filename]', $(this).closest('td'))[0].innerHTML;
|
|
|
+ filingObj.delFiles(del, null, `确认删除「${filename}」?`);
|
|
|
});
|
|
|
$('body').on('click', "a[name=edit-file]", function() {
|
|
|
const check = $('[name=filename] input[fid]');
|
|
@@ -911,7 +919,7 @@ $(document).ready(function() {
|
|
|
const file = filingObj.curFiling.source_node.files.find(x => { return x.id === fid });
|
|
|
if (!file) continue;
|
|
|
|
|
|
- if (file.user_id !== userID) {
|
|
|
+ if (file.user_id !== userID && !canEdit) {
|
|
|
toastr.error(`文件【${file.filename + file.fileext}】不是您上传的文件,请勿删除`);
|
|
|
return;
|
|
|
}
|
|
@@ -1655,16 +1663,16 @@ $(document).ready(function() {
|
|
|
}
|
|
|
getOperateHtml(file) {
|
|
|
const locateHtml = `<a href="javascript: void(0);" class="mr-1" name="locate-search-file" fid="${file.id}"><i class="fa fa-crosshairs"></i></a>`;
|
|
|
- const editHtml = file.canEdit ? `<a href="javascript: void(0);" class="mr-1" name="edit-search-file" fid="${file.id}"><i class="fa fa-pencil fa-fw"></i></a>` : '';
|
|
|
+ const editHtml = file.canEdit || canEdit ? `<a href="javascript: void(0);" class="mr-1" name="edit-search-file" fid="${file.id}"><i class="fa fa-pencil fa-fw"></i></a>` : '';
|
|
|
const viewHtml = file.viewpath ? `<a href="${file.viewpath}" class="mr-1" target="_blank"><i class="fa fa-eye fa-fw"></i></a>` : '';
|
|
|
const downHtml = `<a href="javascript: void(0);" onclick="AliOss.downloadFile('${file.filepath}', '${file.filename + file.fileext}')" class="mr-1"><i class="fa fa-download fa-fw"></i></a>`;
|
|
|
- const delHtml = file.canEdit ? `<a href="javascript: void(0);" class="mr-1 text-danger" name="del-search-file" fid="${file.id}"><i class="fa fa-trash-o fa-fw"></i></a>` : '';
|
|
|
+ const delHtml = file.canEdit || canEdit ? `<a href="javascript: void(0);" class="mr-1 text-danger" name="del-search-file" fid="${file.id}"><i class="fa fa-trash-o fa-fw"></i></a>` : '';
|
|
|
return `<div class="d-flex justify-content-between align-items-center table-file">${locateHtml}${editHtml}${viewHtml}${downHtml}${delHtml}</div>`
|
|
|
}
|
|
|
getFileHtml(file) {
|
|
|
const html = [];
|
|
|
html.push(`<tr fid="search_${file.id}">`);
|
|
|
- html.push(`<td fid="search_${file.id}">${file.filename}${file.fileext}</td>`);
|
|
|
+ html.push(`<td name="filename" fid="search_${file.id}">${file.filename}${file.fileext}</td>`);
|
|
|
html.push(`<td class="text-center">${file.user_name}</td>`);
|
|
|
html.push(`<td class="text-center">${this.getOperateHtml(file)}</td>`);
|
|
|
html.push('</tr>');
|
|
@@ -1738,7 +1746,8 @@ $(document).ready(function() {
|
|
|
$('button', '#search').bind('click', () => { self.search(); });
|
|
|
$('body').on('click', "a[name=del-search-file]", function() {
|
|
|
const del = [this.getAttribute('fid')];
|
|
|
- filingObj.delFiles(del);
|
|
|
+ const filename = $('[name=filename]', $(this).closest('tr'))[0].innerHTML;
|
|
|
+ filingObj.delFiles(del, null, `确认删除「${filename}」?`);
|
|
|
});
|
|
|
$('body').on('click', "a[name=locate-search-file]", function() {
|
|
|
const fid = this.getAttribute('fid');
|