@syncfusion/ej2-filemanager 25.2.6 → 26.1.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +3 -2
- package/dist/ej2-filemanager.min.js +2 -2
- package/dist/ej2-filemanager.umd.min.js +2 -2
- package/dist/ej2-filemanager.umd.min.js.map +1 -1
- package/dist/es6/ej2-filemanager.es2015.js +931 -462
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +975 -515
- package/dist/es6/ej2-filemanager.es5.js.map +1 -1
- package/dist/global/ej2-filemanager.min.js +2 -2
- package/dist/global/ej2-filemanager.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +16 -16
- package/src/file-manager/actions/breadcrumb-bar.js +0 -4
- package/src/file-manager/actions/toolbar.js +1 -13
- package/src/file-manager/actions/virtualization.d.ts +28 -8
- package/src/file-manager/actions/virtualization.js +37 -13
- package/src/file-manager/base/file-manager-model.d.ts +107 -36
- package/src/file-manager/base/file-manager.d.ts +100 -25
- package/src/file-manager/base/file-manager.js +46 -20
- package/src/file-manager/base/interface.d.ts +224 -2
- package/src/file-manager/base/interface.js +0 -1
- package/src/file-manager/common/operations.d.ts +7 -0
- package/src/file-manager/common/operations.js +596 -94
- package/src/file-manager/common/utility.d.ts +22 -0
- package/src/file-manager/common/utility.js +117 -65
- package/src/file-manager/layout/details-view.d.ts +1 -1
- package/src/file-manager/layout/details-view.js +23 -68
- package/src/file-manager/layout/large-icons-view.js +24 -46
- package/src/file-manager/layout/navigation-pane.js +18 -41
- package/src/file-manager/models/column-model.d.ts +1 -3
- package/src/file-manager/models/default-locale.js +0 -1
- package/src/file-manager/models/details-view-settings.js +2 -1
- package/src/file-manager/pop-up/context-menu.js +25 -24
- package/src/file-manager/pop-up/dialog.d.ts +1 -2
- package/src/file-manager/pop-up/dialog.js +12 -35
- package/styles/bootstrap-dark.css +116 -105
- package/styles/bootstrap-dark.scss +16 -1
- package/styles/bootstrap.css +117 -106
- package/styles/bootstrap.scss +16 -1
- package/styles/bootstrap4.css +116 -105
- package/styles/bootstrap4.scss +16 -1
- package/styles/bootstrap5-dark.css +98 -98
- package/styles/bootstrap5-dark.scss +16 -1
- package/styles/bootstrap5.css +98 -98
- package/styles/bootstrap5.scss +16 -1
- package/styles/fabric-dark.css +116 -105
- package/styles/fabric-dark.scss +16 -1
- package/styles/fabric.css +116 -105
- package/styles/fabric.scss +16 -1
- package/styles/file-manager/_bds-definition.scss +1 -1
- package/styles/file-manager/_bootstrap5-definition.scss +2 -1
- package/styles/file-manager/_bootstrap5.3-definition.scss +240 -0
- package/styles/file-manager/_fluent-definition.scss +1 -1
- package/styles/file-manager/_fluent2-definition.scss +249 -0
- package/styles/file-manager/_layout.scss +260 -396
- package/styles/file-manager/_material-dark-definition.scss +1 -0
- package/styles/file-manager/_material-definition.scss +1 -0
- package/styles/file-manager/_material3-definition.scss +1 -27
- package/styles/file-manager/_tailwind-definition.scss +1 -1
- package/styles/file-manager/_theme.scss +37 -85
- package/styles/file-manager/bootstrap-dark.css +116 -105
- package/styles/file-manager/bootstrap.css +117 -106
- package/styles/file-manager/bootstrap4.css +116 -105
- package/styles/file-manager/bootstrap5-dark.css +98 -98
- package/styles/file-manager/bootstrap5.css +98 -98
- package/styles/file-manager/fabric-dark.css +116 -105
- package/styles/file-manager/fabric.css +116 -105
- package/styles/file-manager/fluent-dark.css +107 -102
- package/styles/file-manager/fluent.css +107 -102
- package/styles/file-manager/fluent2.css +2868 -0
- package/styles/file-manager/fluent2.scss +16 -0
- package/styles/file-manager/highcontrast-light.css +116 -105
- package/styles/file-manager/highcontrast.css +116 -105
- package/styles/file-manager/icons/_bootstrap5.3.scss +235 -0
- package/styles/file-manager/icons/_fluent2.scss +235 -0
- package/styles/file-manager/material-dark.css +140 -108
- package/styles/file-manager/material.css +156 -112
- package/styles/file-manager/material3-dark.css +134 -109
- package/styles/file-manager/material3.css +134 -109
- package/styles/file-manager/tailwind-dark.css +93 -95
- package/styles/file-manager/tailwind.css +93 -95
- package/styles/fluent-dark.css +107 -102
- package/styles/fluent-dark.scss +16 -1
- package/styles/fluent.css +107 -102
- package/styles/fluent.scss +16 -1
- package/styles/fluent2.css +2868 -0
- package/styles/fluent2.scss +16 -0
- package/styles/highcontrast-light.css +116 -105
- package/styles/highcontrast-light.scss +16 -1
- package/styles/highcontrast.css +116 -105
- package/styles/highcontrast.scss +16 -1
- package/styles/material-dark.css +140 -108
- package/styles/material-dark.scss +16 -1
- package/styles/material.css +156 -112
- package/styles/material.scss +16 -1
- package/styles/material3-dark.css +134 -109
- package/styles/material3-dark.scss +16 -1
- package/styles/material3.css +134 -109
- package/styles/material3.scss +16 -1
- package/styles/tailwind-dark.css +93 -95
- package/styles/tailwind-dark.scss +16 -1
- package/styles/tailwind.css +93 -95
- package/styles/tailwind.scss +16 -1
- package/CHANGELOG.md +0 -475
@@ -3,7 +3,9 @@ import { isNullOrUndefined as isNOU, setValue, getValue } from '@syncfusion/ej2-
|
|
3
3
|
import * as events from '../base/constant';
|
4
4
|
import { createDialog, createExtDialog } from '../pop-up/dialog';
|
5
5
|
import { fileType, setNodeId, getLocaleText, setDateObject, doPasteUpdate, getPathObject } from '../common/utility';
|
6
|
-
import { generatePath } from '../common/utility';
|
6
|
+
import { generatePath, getAccessDetails } from '../common/utility';
|
7
|
+
import { getUid } from '@syncfusion/ej2-grids';
|
8
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
7
9
|
/**
|
8
10
|
* Function to read the content from given path in File Manager.
|
9
11
|
*
|
@@ -14,14 +16,12 @@ import { generatePath } from '../common/utility';
|
|
14
16
|
* @private
|
15
17
|
*/
|
16
18
|
export function read(parent, event, path) {
|
17
|
-
// eslint-disable-next-line
|
18
19
|
var itemData = parent.itemData;
|
19
20
|
for (var i = 0; i < itemData.length; i++) {
|
20
21
|
if (isNOU(getValue('hasChild', itemData[i]))) {
|
21
22
|
setValue('hasChild', false, itemData[i]);
|
22
23
|
}
|
23
24
|
}
|
24
|
-
// eslint-disable-next-line
|
25
25
|
var data = { action: 'read', path: path, showHiddenItems: parent.showHiddenItems, data: itemData };
|
26
26
|
createAjax(parent, data, readSuccess, event);
|
27
27
|
}
|
@@ -34,7 +34,6 @@ export function read(parent, event, path) {
|
|
34
34
|
* @private
|
35
35
|
*/
|
36
36
|
export function createFolder(parent, itemName) {
|
37
|
-
// eslint-disable-next-line
|
38
37
|
var data = { action: 'create', path: parent.path, name: itemName, data: parent.itemData };
|
39
38
|
createAjax(parent, data, createSuccess, itemName);
|
40
39
|
}
|
@@ -47,11 +46,8 @@ export function createFolder(parent, itemName) {
|
|
47
46
|
* @private
|
48
47
|
*/
|
49
48
|
export function filter(parent, event) {
|
50
|
-
// eslint-disable-next-line
|
51
49
|
var data = { action: 'filter', path: parent.path, showHiddenItems: parent.showHiddenItems, data: [getPathObject(parent)] };
|
52
|
-
// eslint-disable-next-line
|
53
50
|
var filterData;
|
54
|
-
// eslint-disable-next-line
|
55
51
|
var filterDataVal = parent.filterData ? extend(filterData, data, parent.filterData) : data;
|
56
52
|
createAjax(parent, filterDataVal, filterSuccess, event, getValue('action', filterDataVal));
|
57
53
|
}
|
@@ -83,7 +79,6 @@ export function rename(parent, path, itemNewName) {
|
|
83
79
|
newName = fPath.replace(path, '') + itemNewName;
|
84
80
|
}
|
85
81
|
}
|
86
|
-
// eslint-disable-next-line
|
87
82
|
var data = {
|
88
83
|
action: 'rename', path: path, name: name, newName: newName, data: parent.itemData, showFileExtension: parent.showFileExtension
|
89
84
|
};
|
@@ -102,10 +97,7 @@ export function rename(parent, path, itemNewName) {
|
|
102
97
|
* @returns {void}
|
103
98
|
* @private
|
104
99
|
*/
|
105
|
-
export function paste(parent, path, names, targetPath, pasteOperation,
|
106
|
-
// eslint-disable-next-line
|
107
|
-
renameItems, actionRecords) {
|
108
|
-
// eslint-disable-next-line
|
100
|
+
export function paste(parent, path, names, targetPath, pasteOperation, renameItems, actionRecords) {
|
109
101
|
var data = {
|
110
102
|
action: pasteOperation, path: path, targetData: parent.itemData[0],
|
111
103
|
targetPath: targetPath, names: names, renameFiles: renameItems, data: actionRecords
|
@@ -124,7 +116,6 @@ renameItems, actionRecords) {
|
|
124
116
|
* @private
|
125
117
|
*/
|
126
118
|
export function Delete(parent, items, path, operation) {
|
127
|
-
// eslint-disable-next-line
|
128
119
|
var data = { action: operation, path: path, names: items, data: parent.itemData };
|
129
120
|
createAjax(parent, data, deleteSuccess, path);
|
130
121
|
}
|
@@ -140,25 +131,22 @@ export function Delete(parent, items, path, operation) {
|
|
140
131
|
* @private
|
141
132
|
*/
|
142
133
|
export function GetDetails(parent, names, path, operation) {
|
143
|
-
// eslint-disable-next-line
|
144
134
|
var data = { action: operation, path: path, names: names, data: parent.itemData };
|
145
135
|
createAjax(parent, data, detailsSuccess, path, operation);
|
146
136
|
}
|
147
137
|
/**
|
148
|
-
* Function for
|
138
|
+
* Function for getDateFormat in File Manager.
|
149
139
|
*
|
150
140
|
* @param {IFileManager} parent - specifies the parent element.
|
151
|
-
* @param {Object} data - specifies the data.
|
152
|
-
* @param {Function} fn - specifies the fn.
|
153
|
-
* @param {string} event - specifies the event.
|
154
|
-
* @param {string} operation - specifies the operation.
|
155
|
-
* @param {string} targetPath - specifies the target path.
|
156
141
|
* @returns {void}
|
157
142
|
* @private
|
158
143
|
*/
|
159
144
|
function getDateFormat(parent) {
|
160
145
|
var columns = parent.detailsViewSettings.columns;
|
161
146
|
var dateFormat;
|
147
|
+
if (!columns) {
|
148
|
+
return null;
|
149
|
+
}
|
162
150
|
for (var i = 0; i < columns.length; i++) {
|
163
151
|
if (columns[i].field === '_fm_modified') {
|
164
152
|
if (!isNOU(columns[i].format)) {
|
@@ -169,10 +157,393 @@ function getDateFormat(parent) {
|
|
169
157
|
}
|
170
158
|
return dateFormat;
|
171
159
|
}
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
160
|
+
/**
|
161
|
+
* Checks whether fileSystemData is enabled.
|
162
|
+
*
|
163
|
+
* @param {IFileManager} parent - specifies the parent element.
|
164
|
+
* @returns {boolean} - returns the boolean value.
|
165
|
+
*/
|
166
|
+
export function isFileSystemData(parent) {
|
167
|
+
var isFileSystemData = parent.fileSystemData.length >= 0 && isNOU(parent.ajaxSettings.url);
|
168
|
+
return isFileSystemData;
|
169
|
+
}
|
170
|
+
/**
|
171
|
+
* Function to check whether file already exist or not.
|
172
|
+
*
|
173
|
+
* @param {Record<string, any>} fileSystemData - specifies the file data.
|
174
|
+
* @param {string} name - specifies the name.
|
175
|
+
* @returns {boolean} - returns the boolean value.
|
176
|
+
* @private
|
177
|
+
*/
|
178
|
+
function isFileExists(fileSystemData, name) {
|
179
|
+
var isExists = fileSystemData.some(function (item) { return item.name === name; });
|
180
|
+
return isExists;
|
181
|
+
}
|
182
|
+
/**
|
183
|
+
* Function to find the index value of a file or folder.
|
184
|
+
*
|
185
|
+
* @param {IFileManager} parent - specifies the parent element.
|
186
|
+
* @param {number} id - specifies the id.
|
187
|
+
* @returns {number} - returns the index value.
|
188
|
+
* @private
|
189
|
+
*/
|
190
|
+
function findIndexById(parent, id) {
|
191
|
+
var index = parent.fileSystemData.findIndex(function (item) { return String(item.id) === String(id); });
|
192
|
+
return index;
|
193
|
+
}
|
194
|
+
/**
|
195
|
+
* Function to get the entire data of a file or folder using id value.
|
196
|
+
*
|
197
|
+
* @param {IFileManager} parent - specifies the parent element.
|
198
|
+
* @param {number | string} id - specifies the id.
|
199
|
+
* @returns {Object} - returns the data.
|
200
|
+
* @private
|
201
|
+
*/
|
202
|
+
function filterById(parent, id) {
|
203
|
+
var data = parent.fileSystemData.filter(function (item) { return String(item.id) === String(id); })[0];
|
204
|
+
return data;
|
205
|
+
}
|
206
|
+
/**
|
207
|
+
* Function to get the entire data of a file or folder for a parent.
|
208
|
+
*
|
209
|
+
* @param {IFileManager} parent - specifies the parent element.
|
210
|
+
* @param {number | string} parentId - specifies the parent id.
|
211
|
+
* @returns {Object[]} - returns the data.
|
212
|
+
* @private
|
213
|
+
*/
|
214
|
+
function filterByParent(parent, parentId) {
|
215
|
+
var data = parent.fileSystemData.filter(function (item) { return String(item.parentId) === String(parentId); });
|
216
|
+
return data;
|
217
|
+
}
|
218
|
+
/**
|
219
|
+
* Function to create a new copied file or folder.
|
220
|
+
*
|
221
|
+
* @param {Record<string, any>} data - specifies the file or folder data.
|
222
|
+
* @param {Record<string, any>} target - specifies the target data.
|
223
|
+
* @param {string} itemName - specifies the item name.
|
224
|
+
* @param {boolean} isCopy - specifies the copy operation.
|
225
|
+
* @returns {Record<string, Object>} - returns the data.
|
226
|
+
* @private
|
227
|
+
*/
|
228
|
+
function createNewItem(data, target, itemName, isCopy) {
|
229
|
+
var newItem = {};
|
230
|
+
//Construct the new folder details.
|
231
|
+
for (var key in data) {
|
232
|
+
if (Object.prototype.hasOwnProperty.call(data, key)) {
|
233
|
+
newItem[key] = null;
|
234
|
+
}
|
235
|
+
}
|
236
|
+
var currentDate = new Date();
|
237
|
+
var folderPath = target.id !== 0 ? target.filterPath + target.name : '\\';
|
238
|
+
Object.assign(newItem, {
|
239
|
+
dateCreated: currentDate,
|
240
|
+
dateModified: currentDate,
|
241
|
+
filterPath: folderPath,
|
242
|
+
hasChild: isCopy ? data.hasChild : false,
|
243
|
+
id: getUid(itemName === null ? data.name : itemName),
|
244
|
+
isFile: isCopy ? data.isFile : false,
|
245
|
+
name: itemName === null ? data.name : itemName,
|
246
|
+
parentId: target.id,
|
247
|
+
size: isCopy ? data.size : 0,
|
248
|
+
type: isCopy ? data.type : ''
|
249
|
+
});
|
250
|
+
return newItem;
|
251
|
+
}
|
252
|
+
/**
|
253
|
+
* Function to create an error response.
|
254
|
+
*
|
255
|
+
* @param {IFileManager} parent - specifies the parent element.
|
256
|
+
* @param {string} message - specifies the error message.
|
257
|
+
* @param {string} code - specifies the error code.
|
258
|
+
* @param {Object[]} fileName - specifies the file name.
|
259
|
+
* @returns {void}
|
260
|
+
* @private
|
261
|
+
*/
|
262
|
+
function createErrorObject(parent, message, code, fileName) {
|
263
|
+
parent.responseData = {
|
264
|
+
cwd: null,
|
265
|
+
details: null,
|
266
|
+
error: {
|
267
|
+
code: code,
|
268
|
+
message: message,
|
269
|
+
fileExists: fileName != null ? fileName : null
|
270
|
+
},
|
271
|
+
files: null
|
272
|
+
};
|
273
|
+
}
|
274
|
+
/**
|
275
|
+
* Function to trigger folder creation.
|
276
|
+
*
|
277
|
+
* @param {IFileManager} parent - specifies the parent element.
|
278
|
+
* @param {Object} data - specifies the data.
|
279
|
+
* @param {BeforeSendEventArgs} eventArgs - specifies the eventArgs.
|
280
|
+
* @returns {void}
|
281
|
+
* @private
|
282
|
+
*/
|
283
|
+
function triggerFolderCreation(parent, data, eventArgs) {
|
284
|
+
var createEventArgs = {
|
285
|
+
folderName: getValue('name', data),
|
286
|
+
cancel: false,
|
287
|
+
path: getValue('path', data),
|
288
|
+
parentFolder: getValue('data', data)
|
289
|
+
};
|
290
|
+
parent.trigger('beforeFolderCreate', createEventArgs, function (args) {
|
291
|
+
if (args.cancel) {
|
292
|
+
eventArgs.cancel = true;
|
293
|
+
return;
|
294
|
+
}
|
295
|
+
if (isFileSystemData(parent)) {
|
296
|
+
if (!isFileExists(parent.fileSystemData, args.folderName)) {
|
297
|
+
var data_1 = args.parentFolder[0];
|
298
|
+
var newObject = createNewItem(data_1, data_1, args.folderName, false);
|
299
|
+
parent.fileSystemData.push(newObject);
|
300
|
+
}
|
301
|
+
else {
|
302
|
+
var message = 'A file or folder with the name ' + args.folderName + ' already exists.';
|
303
|
+
createErrorObject(parent, message, '400', null);
|
304
|
+
}
|
305
|
+
}
|
306
|
+
});
|
307
|
+
}
|
308
|
+
/**
|
309
|
+
* Function to trigger delete operation.
|
310
|
+
*
|
311
|
+
* @param {IFileManager} parent - specifies the parent element.
|
312
|
+
* @param {Object} data - specifies the data.
|
313
|
+
* @param {BeforeSendEventArgs} eventArgs - specifies the eventArgs.
|
314
|
+
* @returns {void}
|
315
|
+
* @private
|
316
|
+
*/
|
317
|
+
function triggerDeleteOperation(parent, data, eventArgs) {
|
318
|
+
var deleteEventArgs = {
|
319
|
+
cancel: false,
|
320
|
+
itemData: getValue('data', data),
|
321
|
+
path: getValue('path', data)
|
322
|
+
};
|
323
|
+
parent.trigger('beforeDelete', deleteEventArgs, function (args) {
|
324
|
+
if (args.cancel) {
|
325
|
+
eventArgs.cancel = true;
|
326
|
+
return;
|
327
|
+
}
|
328
|
+
if (isFileSystemData(parent)) {
|
329
|
+
args.itemData.forEach(function (itemData) {
|
330
|
+
var index = findIndexById(parent, itemData.id);
|
331
|
+
if (index !== -1) {
|
332
|
+
parent.fileSystemData.splice(index, 1);
|
333
|
+
}
|
334
|
+
if (!itemData.isFile) {
|
335
|
+
var subItems = parent.fileSystemData.filter(function (obj) { return obj.filterPath.includes(itemData.name); });
|
336
|
+
subItems.forEach(function (subItem) {
|
337
|
+
var index = findIndexById(parent, subItem.id);
|
338
|
+
if (index !== -1) {
|
339
|
+
parent.fileSystemData.splice(index, 1);
|
340
|
+
}
|
341
|
+
});
|
342
|
+
}
|
343
|
+
});
|
344
|
+
}
|
345
|
+
});
|
346
|
+
}
|
347
|
+
/**
|
348
|
+
* Function to trigger rename operation.
|
349
|
+
*
|
350
|
+
* @param {IFileManager} parent - specifies the parent element.
|
351
|
+
* @param {Object} data - specifies the data.
|
352
|
+
* @param {BeforeSendEventArgs} eventArgs - specifies the eventArgs.
|
353
|
+
* @returns {void}
|
354
|
+
* @private
|
355
|
+
*/
|
356
|
+
function triggerRenameOperation(parent, data, eventArgs) {
|
357
|
+
var renameEventArgs = {
|
358
|
+
cancel: false,
|
359
|
+
newName: getValue('newName', data),
|
360
|
+
itemData: getValue('data', data),
|
361
|
+
path: getValue('path', data)
|
362
|
+
};
|
363
|
+
parent.trigger('beforeRename', renameEventArgs, function (args) {
|
364
|
+
if (args.cancel) {
|
365
|
+
eventArgs.cancel = true;
|
366
|
+
return;
|
367
|
+
}
|
368
|
+
if (isFileSystemData(parent)) {
|
369
|
+
if (!isFileExists(parent.fileSystemData, args.newName)) {
|
370
|
+
var fileData = filterById(parent, args.itemData[0].id);
|
371
|
+
fileData.name = args.newName;
|
372
|
+
}
|
373
|
+
else {
|
374
|
+
var message = 'Cannot rename' + args.itemData[0].name + 'to' + args.newName + ': destination already exists.';
|
375
|
+
createErrorObject(parent, message, '400', null);
|
376
|
+
}
|
377
|
+
}
|
378
|
+
});
|
379
|
+
}
|
380
|
+
/**
|
381
|
+
* Function to trigger move or copy operation.
|
382
|
+
*
|
383
|
+
* @param {IFileManager} parent - specifies the parent element.
|
384
|
+
* @param {Object} data - specifies the data.
|
385
|
+
* @param {BeforeSendEventArgs} eventArgs - specifies the eventArgs.
|
386
|
+
* @returns {void}
|
387
|
+
* @private
|
388
|
+
*/
|
389
|
+
function triggerMoveOrCopyOperation(parent, data, eventArgs) {
|
390
|
+
var moveEventArgs = {
|
391
|
+
cancel: false,
|
392
|
+
itemData: getValue('data', data),
|
393
|
+
isCopy: getValue('action', data) === 'copy' ? true : false,
|
394
|
+
path: getValue('path', data),
|
395
|
+
targetData: getValue('targetData', data),
|
396
|
+
targetPath: getValue('targetPath', data)
|
397
|
+
};
|
398
|
+
parent.trigger('beforeMove', moveEventArgs, function (args) {
|
399
|
+
if (args.cancel) {
|
400
|
+
eventArgs.cancel = true;
|
401
|
+
return;
|
402
|
+
}
|
403
|
+
if (isFileSystemData(parent)) {
|
404
|
+
var message = 'File Already Exists';
|
405
|
+
var action = getValue('action', data);
|
406
|
+
var itemPermission = getAccessDetails(parent, args.itemData, action, false);
|
407
|
+
var pathPermission = getAccessDetails(parent, [args.targetData], action, true);
|
408
|
+
var file_1 = [];
|
409
|
+
parent.pasteNodes = [];
|
410
|
+
if (itemPermission === '' && pathPermission === '') {
|
411
|
+
if (args.isCopy) {
|
412
|
+
var folderSubItems_1 = filterByParent(parent, args.targetData.id);
|
413
|
+
var copiedFolders = args.itemData;
|
414
|
+
copiedFolders.forEach(function (itemData) {
|
415
|
+
if (!isFileExists(folderSubItems_1, itemData.name) || getValue('renameFiles', data).length > 0) {
|
416
|
+
if (getValue('renameFiles', data).length > 0) {
|
417
|
+
var names = itemData.name.split('.');
|
418
|
+
var name_1 = itemData.name.includes('.') ? names[0] + '(' + parent.existingFileCount + ').' + names[1] : names[0] + '(' + parent.existingFileCount + ')';
|
419
|
+
copyFolderItems(parent, itemData, args.targetData, name_1);
|
420
|
+
parent.responseData.error = null;
|
421
|
+
parent.existingFileCount++;
|
422
|
+
return;
|
423
|
+
}
|
424
|
+
copyFolderItems(parent, itemData, args.targetData, null);
|
425
|
+
}
|
426
|
+
else {
|
427
|
+
file_1.push(itemData.name);
|
428
|
+
}
|
429
|
+
});
|
430
|
+
if (file_1.length > 0) {
|
431
|
+
createErrorObject(parent, message, '400', file_1);
|
432
|
+
}
|
433
|
+
return;
|
434
|
+
}
|
435
|
+
var target = args.targetData;
|
436
|
+
var getTargetFiles = filterByParent(parent, target.id);
|
437
|
+
for (var i = 0; i < args.itemData.length; i++) {
|
438
|
+
var currItem = args.itemData[i];
|
439
|
+
if (!isFileExists(getTargetFiles, currItem.name) || getValue('renameFiles', data).length > 0) {
|
440
|
+
if (!target.hasChild) {
|
441
|
+
target.hasChild = !currItem.isFile;
|
442
|
+
}
|
443
|
+
if (!currItem.isFile) {
|
444
|
+
//Check whether the source folder include other sub folders or not.
|
445
|
+
var subItems = currItem.parentId !== 0
|
446
|
+
? filterByParent(parent, currItem.parentID) : [];
|
447
|
+
var itemData = filterById(parent, currItem.parentId);
|
448
|
+
itemData.hasChild = subItems.length > 1 ? true : false;
|
449
|
+
}
|
450
|
+
var fileData = filterById(parent, currItem.id);
|
451
|
+
if (getValue('renameFiles', data).length > 0) {
|
452
|
+
var names = currItem.name.split('.');
|
453
|
+
currItem.name = currItem.name.includes('.') ? names[0] + '(' + parent.existingFileCount + ').' + names[1] : names[0] + '(' + parent.existingFileCount + ')';
|
454
|
+
fileData.name = currItem.name;
|
455
|
+
parent.responseData.error = null;
|
456
|
+
parent.existingFileCount++;
|
457
|
+
parent.dropData = target;
|
458
|
+
parent.dropPath = args.path;
|
459
|
+
var pathArray = args.targetPath.replace(/^\/|\/$/g, '').split('/');
|
460
|
+
target = filterById(parent, pathArray[pathArray.length - 1]);
|
461
|
+
}
|
462
|
+
fileData.parentId = target.id;
|
463
|
+
fileData.filterPath = target.id === 0 ? '\\' : target.filterPath + target.name + '\\';
|
464
|
+
}
|
465
|
+
else {
|
466
|
+
file_1.push(currItem.name);
|
467
|
+
}
|
468
|
+
}
|
469
|
+
if (file_1.length > 0) {
|
470
|
+
createErrorObject(parent, message, '400', file_1);
|
471
|
+
}
|
472
|
+
}
|
473
|
+
}
|
474
|
+
});
|
475
|
+
}
|
476
|
+
/**
|
477
|
+
* Function to trigger search operation.
|
478
|
+
*
|
479
|
+
* @param {IFileManager} parent - specifies the parent element.
|
480
|
+
* @param {Object} data - specifies the data.
|
481
|
+
* @param {BeforeSendEventArgs} eventArgs - specifies the eventArgs.
|
482
|
+
* @returns {void}
|
483
|
+
* @private
|
484
|
+
*/
|
485
|
+
function triggerSearchOperation(parent, data, eventArgs) {
|
486
|
+
var searchEventArgs = {
|
487
|
+
searchResults: getValue('data', data),
|
488
|
+
cancel: false,
|
489
|
+
path: getValue('path', data),
|
490
|
+
searchText: getValue('searchString', data),
|
491
|
+
caseSensitive: getValue('caseSensitive', data),
|
492
|
+
showHiddenItems: getValue('showHiddenItems', data)
|
493
|
+
};
|
494
|
+
parent.trigger('search', searchEventArgs, function (args) {
|
495
|
+
if (args.cancel) {
|
496
|
+
eventArgs.cancel = true;
|
497
|
+
}
|
498
|
+
});
|
499
|
+
}
|
500
|
+
/**
|
501
|
+
* Function to trigger client side events.
|
502
|
+
*
|
503
|
+
* @param {IFileManager} parent - specifies the parent element.
|
504
|
+
* @param {Object} data - specifies the data.
|
505
|
+
* @param {BeforeSendEventArgs} eventArgs - specifies the eventArgs.
|
506
|
+
* @returns {void}
|
507
|
+
* @private
|
508
|
+
*/
|
509
|
+
function triggerClientEvents(parent, data, eventArgs) {
|
510
|
+
switch (getValue('action', data)) {
|
511
|
+
case 'create': {
|
512
|
+
triggerFolderCreation(parent, data, eventArgs);
|
513
|
+
break;
|
514
|
+
}
|
515
|
+
case 'delete': {
|
516
|
+
triggerDeleteOperation(parent, data, eventArgs);
|
517
|
+
break;
|
518
|
+
}
|
519
|
+
case 'rename': {
|
520
|
+
triggerRenameOperation(parent, data, eventArgs);
|
521
|
+
break;
|
522
|
+
}
|
523
|
+
case 'move':
|
524
|
+
case 'copy': {
|
525
|
+
triggerMoveOrCopyOperation(parent, data, eventArgs);
|
526
|
+
break;
|
527
|
+
}
|
528
|
+
case 'search': {
|
529
|
+
triggerSearchOperation(parent, data, eventArgs);
|
530
|
+
break;
|
531
|
+
}
|
532
|
+
}
|
533
|
+
}
|
534
|
+
/**
|
535
|
+
* Creates an AJAX request for the file manager.
|
536
|
+
*
|
537
|
+
* @param {IFileManager} parent - The parent file manager instance.
|
538
|
+
* @param {Object} data - The data object for the AJAX request.
|
539
|
+
* @param {Function} fn - The callback function to be executed after the AJAX request.
|
540
|
+
* @param {string} [event] - The event type for the AJAX request.
|
541
|
+
* @param {string} [operation] - The operation type for the AJAX request.
|
542
|
+
* @param {string} [targetPath] - The target path for the AJAX request.
|
543
|
+
* @returns {void}
|
544
|
+
* @private
|
545
|
+
*/
|
546
|
+
function createAjax(parent, data, fn, event, operation, targetPath) {
|
176
547
|
var ajaxSettings = {
|
177
548
|
url: parent.ajaxSettings.url,
|
178
549
|
type: 'POST',
|
@@ -185,9 +556,64 @@ parent, data, fn, event, operation, targetPath) {
|
|
185
556
|
beforeSend: null
|
186
557
|
};
|
187
558
|
var eventArgs = { action: getValue('action', data), ajaxSettings: ajaxSettings, cancel: false };
|
559
|
+
triggerClientEvents(parent, data, eventArgs);
|
188
560
|
parent.trigger('beforeSend', eventArgs, function (beforeSendArgs) {
|
189
561
|
if (!beforeSendArgs.cancel) {
|
190
562
|
parent.notify(events.beforeRequest, {});
|
563
|
+
if (isFileSystemData(parent)) {
|
564
|
+
var filePath = event === 'node-expand' || event === 'finalize-end' ? getValue('path', data) : parent.path;
|
565
|
+
var pathArray = filePath.replace(/^\/|\/$/g, '').split('/');
|
566
|
+
var idValue = event === 'rename-end-parent' || (event === 'path-changed' && getValue('data', data).length !== 0)
|
567
|
+
|| (event === 'paste-end' && (parent.targetModule === 'largeiconsview' || parent.targetModule === 'detailsview'))
|
568
|
+
? getValue('data', data)[0].id : pathArray[pathArray.length - 1];
|
569
|
+
var action = getValue('action', data);
|
570
|
+
var isFileOperation = (action === 'move' || action === 'rename' || action === 'copy' || action === 'delete' || action === 'search') && event !== 'rename-end';
|
571
|
+
if (action === 'read' || action === 'create' || event === 'rename-end') {
|
572
|
+
parent.responseData = {
|
573
|
+
cwd: filterById(parent, parent.path === '/' && event !== 'node-expand' && event !== 'rename-end-parent' ? 0 : idValue),
|
574
|
+
details: null,
|
575
|
+
error: null,
|
576
|
+
files: filterByParent(parent, parent.path === '/' && event !== 'node-expand' && event !== 'rename-end-parent' ? 0 : idValue)
|
577
|
+
};
|
578
|
+
if (isNOU(parent.responseData.cwd)) {
|
579
|
+
var message = 'Cannot load empty data within the File Manager.';
|
580
|
+
createErrorObject(parent, message, '400', null);
|
581
|
+
}
|
582
|
+
}
|
583
|
+
else if (isFileOperation && parent.responseData.error === null) {
|
584
|
+
var itemData = action === 'search' || action === 'delete' ? getValue('data', data) : [];
|
585
|
+
if (itemData.length === 0) {
|
586
|
+
itemData = getValue('data', data).map(function (item) { return filterById(parent, item.id); });
|
587
|
+
}
|
588
|
+
parent.responseData = {
|
589
|
+
cwd: null,
|
590
|
+
details: null,
|
591
|
+
error: null,
|
592
|
+
files: itemData
|
593
|
+
};
|
594
|
+
}
|
595
|
+
else if (getValue('action', data) === 'details') {
|
596
|
+
var itemData = getValue('data', data);
|
597
|
+
var details = itemData[0];
|
598
|
+
var isMultipleFiles = itemData.length > 1;
|
599
|
+
var itemNames = itemData.map(function (item) { return item.name; });
|
600
|
+
var totalSize = isMultipleFiles ? getSize(itemData.reduce(function (accumulator, currentObject) { return accumulator + (currentObject.size || 0); }, 0)) : getSize(details.size);
|
601
|
+
var path = (parent.pathNames.includes(details.name) ? parent.pathNames.join('/') : parent.pathNames.join('/') + '/' + details.name);
|
602
|
+
parent.responseData.details = Object.assign({
|
603
|
+
location: isMultipleFiles ? null : path,
|
604
|
+
multipleFiles: isMultipleFiles,
|
605
|
+
name: itemNames.join(', '),
|
606
|
+
size: totalSize
|
607
|
+
}, isMultipleFiles ? {} : {
|
608
|
+
created: details.dateCreated,
|
609
|
+
isFile: details.isFile,
|
610
|
+
modified: details.dateModified,
|
611
|
+
permission: details.permission
|
612
|
+
});
|
613
|
+
}
|
614
|
+
performReadOperation(parent, parent.responseData, fn, data, event, operation, targetPath, beforeSendArgs);
|
615
|
+
return;
|
616
|
+
}
|
191
617
|
var ajax = new Ajax({
|
192
618
|
url: getValue('url', beforeSendArgs.ajaxSettings),
|
193
619
|
type: getValue('type', beforeSendArgs.ajaxSettings),
|
@@ -212,61 +638,7 @@ parent, data, fn, event, operation, targetPath) {
|
|
212
638
|
if (typeof (result) === 'string') {
|
213
639
|
result = JSON.parse(result);
|
214
640
|
}
|
215
|
-
parent
|
216
|
-
var id = parent.expandedId ? parent.expandedId : parent.pathId[parent.pathId.length - 1];
|
217
|
-
if (!isNOU(result.cwd) && (getValue('action', data) === 'read')) {
|
218
|
-
result.cwd.name = (parent.pathId.length === 1) ? (parent.rootAliasName || result.cwd.name) : result.cwd.name;
|
219
|
-
setValue('_fm_id', id, result.cwd);
|
220
|
-
setValue(id, result.cwd, parent.feParent);
|
221
|
-
if (!isNOU(result.files) || result.error.code === '401') {
|
222
|
-
if ((event === 'finalize-end' || event === 'initial-end') && parent.pathNames.length === 0) {
|
223
|
-
// eslint-disable-next-line
|
224
|
-
var root = getValue(parent.pathId[0], parent.feParent);
|
225
|
-
parent.pathNames[0] = getValue('name', root);
|
226
|
-
parent.hasId = !isNOU(getValue('id', root));
|
227
|
-
}
|
228
|
-
if (event === 'finalize-end') {
|
229
|
-
generatePath(parent);
|
230
|
-
}
|
231
|
-
}
|
232
|
-
}
|
233
|
-
var intl = new Internationalization(parent.locale);
|
234
|
-
if (!isNOU(result.files)) {
|
235
|
-
setDateObject(result.files, intl, getDateFormat(parent));
|
236
|
-
for (var i = 0, len = result.files.length; i < len; i++) {
|
237
|
-
// eslint-disable-next-line
|
238
|
-
var item = result.files[i];
|
239
|
-
setValue('_fm_iconClass', fileType(item), item);
|
240
|
-
}
|
241
|
-
if (getValue('action', data) === 'read') {
|
242
|
-
setNodeId(result, id);
|
243
|
-
setValue(id, result.files, parent.feFiles);
|
244
|
-
}
|
245
|
-
}
|
246
|
-
if (!isNOU(result.details) && !isNOU(parent.rootAliasName)) {
|
247
|
-
var rootName = parent.rootAliasName || getValue('name', result.details);
|
248
|
-
var location_1 = getValue('location', result.details).replace(new RegExp('/', 'g'), '\\');
|
249
|
-
if ((getValue('path', data) === '/') || (parent.hasId && getValue('path', data).match(/[/]/g).length === 1)) {
|
250
|
-
if (getValue('names', data).length === 0) {
|
251
|
-
setValue('name', rootName, result.details);
|
252
|
-
location_1 = rootName;
|
253
|
-
}
|
254
|
-
else {
|
255
|
-
location_1 = location_1.replace(location_1.substring(0, location_1.indexOf('\\')), rootName);
|
256
|
-
}
|
257
|
-
}
|
258
|
-
else {
|
259
|
-
location_1 = location_1.replace(location_1.substring(0, location_1.indexOf('\\')), rootName);
|
260
|
-
}
|
261
|
-
setValue('location', location_1, result.details);
|
262
|
-
}
|
263
|
-
fn(parent, result, event, operation, targetPath);
|
264
|
-
if (!isNOU(result.files) && (event === 'path-changed' || event === 'finalize-end' || event === 'open-end' || event === 'drop-path')) {
|
265
|
-
parent.notify(events.searchTextChange, result);
|
266
|
-
}
|
267
|
-
if (typeof getValue('onSuccess', beforeSendArgs.ajaxSettings) === 'function') {
|
268
|
-
getValue('onSuccess', beforeSendArgs.ajaxSettings)();
|
269
|
-
}
|
641
|
+
performReadOperation(parent, result, fn, data, event, operation, targetPath, beforeSendArgs);
|
270
642
|
},
|
271
643
|
onFailure: function () {
|
272
644
|
var result = {
|
@@ -284,6 +656,117 @@ parent, data, fn, event, operation, targetPath) {
|
|
284
656
|
}
|
285
657
|
});
|
286
658
|
}
|
659
|
+
/**
|
660
|
+
* Function to get file size.
|
661
|
+
*
|
662
|
+
* @param {number} size - specifies the size.
|
663
|
+
* @returns {string} - returns the size.
|
664
|
+
* @private
|
665
|
+
*/
|
666
|
+
function getSize(size) {
|
667
|
+
var hz;
|
668
|
+
if (size < 1024) {
|
669
|
+
hz = size + ' B';
|
670
|
+
}
|
671
|
+
else if (size < 1024 * 1024) {
|
672
|
+
hz = (size / 1024).toFixed(2) + ' KB';
|
673
|
+
}
|
674
|
+
else if (size < 1024 * 1024 * 1024) {
|
675
|
+
hz = (size / 1024 / 1024).toFixed(2) + ' MB';
|
676
|
+
}
|
677
|
+
else {
|
678
|
+
hz = (size / 1024 / 1024 / 1024).toFixed(2) + ' GB';
|
679
|
+
}
|
680
|
+
return hz;
|
681
|
+
}
|
682
|
+
/**
|
683
|
+
* Function to perform read operation.
|
684
|
+
*
|
685
|
+
* @param {IFileManager} parent - specifies the parent element.
|
686
|
+
* @param {ReadArgs} result - specifies the result.
|
687
|
+
* @param {Function} fn - specifies the function.
|
688
|
+
* @param {Object} data - specifies the data.
|
689
|
+
* @param {string} event - specifies the event.
|
690
|
+
* @param {string} operation - specifies the operation.
|
691
|
+
* @param {string} targetPath - specifies the targetPath.
|
692
|
+
* @param {BeforeSendEventArgs} beforeSendArgs - specifies the eventArgs.
|
693
|
+
* @returns {void}
|
694
|
+
* @private
|
695
|
+
*/
|
696
|
+
function performReadOperation(parent, result, fn, data, event, operation, targetPath, beforeSendArgs) {
|
697
|
+
parent.notify(events.afterRequest, { action: 'success' });
|
698
|
+
var id = parent.expandedId ? parent.expandedId : parent.pathId[parent.pathId.length - 1];
|
699
|
+
if (!isNOU(result.cwd) && (getValue('action', data) === 'read')) {
|
700
|
+
result.cwd.name = (parent.pathId.length === 1) ? (parent.rootAliasName || result.cwd.name) : result.cwd.name;
|
701
|
+
setValue('_fm_id', id, result.cwd);
|
702
|
+
setValue(id, result.cwd, parent.feParent);
|
703
|
+
if (!isNOU(result.files) || result.error.code === '401') {
|
704
|
+
if ((event === 'finalize-end' || event === 'initial-end') && parent.pathNames.length === 0) {
|
705
|
+
var root = getValue(parent.pathId[0], parent.feParent);
|
706
|
+
parent.pathNames[0] = getValue('name', root);
|
707
|
+
parent.hasId = !isNOU(getValue('id', root));
|
708
|
+
}
|
709
|
+
if (event === 'finalize-end') {
|
710
|
+
generatePath(parent);
|
711
|
+
}
|
712
|
+
}
|
713
|
+
}
|
714
|
+
var intl = new Internationalization(parent.locale);
|
715
|
+
if (!isNOU(result.files)) {
|
716
|
+
setDateObject(result.files, intl, getDateFormat(parent));
|
717
|
+
for (var i = 0, len = result.files.length; i < len; i++) {
|
718
|
+
var item = result.files[i];
|
719
|
+
setValue('_fm_iconClass', fileType(item), item);
|
720
|
+
}
|
721
|
+
if (getValue('action', data) === 'read' || isFileSystemData(parent) && getValue('action', data) === 'search') {
|
722
|
+
setNodeId(result, id);
|
723
|
+
setValue(id, result.files, parent.feFiles);
|
724
|
+
}
|
725
|
+
}
|
726
|
+
if (!isNOU(result.details) && !isNOU(parent.rootAliasName)) {
|
727
|
+
var rootName = parent.rootAliasName || getValue('name', result.details);
|
728
|
+
var location_1 = getValue('location', result.details).replace(new RegExp('/', 'g'), '\\');
|
729
|
+
if ((getValue('path', data) === '/') || (parent.hasId && getValue('path', data).match(/[/]/g).length === 1)) {
|
730
|
+
if (getValue('names', data).length === 0) {
|
731
|
+
setValue('name', rootName, result.details);
|
732
|
+
location_1 = rootName;
|
733
|
+
}
|
734
|
+
else {
|
735
|
+
location_1 = location_1.replace(location_1.substring(0, location_1.indexOf('\\')), rootName);
|
736
|
+
}
|
737
|
+
}
|
738
|
+
else {
|
739
|
+
location_1 = location_1.replace(location_1.substring(0, location_1.indexOf('\\')), rootName);
|
740
|
+
}
|
741
|
+
setValue('location', location_1, result.details);
|
742
|
+
}
|
743
|
+
fn(parent, result, event, operation, targetPath);
|
744
|
+
if (!isNOU(result.files) && (event === 'path-changed' || event === 'finalize-end' || event === 'open-end' || event === 'drop-path')) {
|
745
|
+
parent.notify(events.searchTextChange, result);
|
746
|
+
}
|
747
|
+
if (typeof getValue('onSuccess', beforeSendArgs.ajaxSettings) === 'function') {
|
748
|
+
getValue('onSuccess', beforeSendArgs.ajaxSettings)();
|
749
|
+
}
|
750
|
+
}
|
751
|
+
/**
|
752
|
+
* Function to copy operation.
|
753
|
+
*
|
754
|
+
* @param {IFileManager} parent - specifies the parent element.
|
755
|
+
* @param {Object} data - specifies the data.
|
756
|
+
* @param {string} target - specifies the target.
|
757
|
+
* @param {string} itemName - specifies the item name.
|
758
|
+
* @returns {void}
|
759
|
+
* @private
|
760
|
+
*/
|
761
|
+
function copyFolderItems(parent, data, target, itemName) {
|
762
|
+
var newObject = createNewItem(data, target, itemName, true);
|
763
|
+
parent.fileSystemData.push(newObject);
|
764
|
+
parent.pasteNodes.push(newObject.id);
|
765
|
+
var copiedItems = filterByParent(parent, data.id);
|
766
|
+
for (var i = 0; i < copiedItems.length; i++) {
|
767
|
+
copyFolderItems(parent, copiedItems[i], newObject, null);
|
768
|
+
}
|
769
|
+
}
|
287
770
|
/**
|
288
771
|
* Function for trigger Ajax failure in File Manager.
|
289
772
|
*
|
@@ -297,9 +780,7 @@ parent, data, fn, event, operation, targetPath) {
|
|
297
780
|
* @returns {void}
|
298
781
|
* @private
|
299
782
|
*/
|
300
|
-
function triggerAjaxFailure(
|
301
|
-
// eslint-disable-next-line
|
302
|
-
parent, beforeSendArgs, fn, result, event, operation, targetPath) {
|
783
|
+
function triggerAjaxFailure(parent, beforeSendArgs, fn, result, event, operation, targetPath) {
|
303
784
|
parent.notify(events.afterRequest, { action: 'failure' });
|
304
785
|
fn(parent, result, event, operation, targetPath);
|
305
786
|
if (typeof getValue('onFailure', beforeSendArgs.ajaxSettings) === 'function') {
|
@@ -375,8 +856,14 @@ function createSuccess(parent, result, itemName) {
|
|
375
856
|
if (parent.dialogObj && parent.dialogObj.visible) {
|
376
857
|
parent.dialogObj.hide();
|
377
858
|
}
|
378
|
-
parent.createdItem = result.files[0];
|
859
|
+
parent.createdItem = isFileSystemData(parent) ? result.files[result.files.length - 1] : result.files[0];
|
379
860
|
parent.breadcrumbbarModule.searchObj.value = '';
|
861
|
+
var createEventArgs = {
|
862
|
+
folderName: itemName,
|
863
|
+
path: parent.path,
|
864
|
+
parentFolder: parent.itemData
|
865
|
+
};
|
866
|
+
parent.trigger('folderCreate', createEventArgs);
|
380
867
|
var args = { action: 'create', result: result };
|
381
868
|
parent.trigger('success', args);
|
382
869
|
parent.itemData = [getPathObject(parent)];
|
@@ -417,11 +904,10 @@ function createSuccess(parent, result, itemName) {
|
|
417
904
|
*
|
418
905
|
* @param {IFileManager} parent - specifies the parent element.
|
419
906
|
* @param {ReadArgs} result - specifies the result.
|
420
|
-
* @param {string} path - specifies the path
|
421
907
|
* @returns {void}
|
422
908
|
* @private
|
423
909
|
*/
|
424
|
-
function renameSuccess(parent, result
|
910
|
+
function renameSuccess(parent, result) {
|
425
911
|
if (!isNOU(result.files)) {
|
426
912
|
if (!isNOU(parent.dialogObj)) {
|
427
913
|
parent.dialogObj.hide();
|
@@ -429,15 +915,22 @@ function renameSuccess(parent, result, path) {
|
|
429
915
|
var args = { action: 'rename', result: result };
|
430
916
|
parent.trigger('success', args);
|
431
917
|
parent.renamedItem = Array.isArray(result.files) ? result.files[0] : result.files;
|
918
|
+
var renameEventArgs = {
|
919
|
+
newName: parent.renamedItem.name,
|
920
|
+
itemData: parent.renamedItem,
|
921
|
+
path: parent.path
|
922
|
+
};
|
923
|
+
parent.trigger('rename', renameEventArgs);
|
432
924
|
if (parent.activeModule === 'navigationpane') {
|
433
925
|
parent.pathId.pop();
|
434
926
|
parent.itemData = [getValue(parent.pathId[parent.pathId.length - 1], parent.feParent)];
|
435
927
|
read(parent, events.renameEndParent, getValue('filterPath', parent.renamedItem).replace(/\\/g, '/'));
|
436
928
|
parent.itemData[0] = parent.renamedItem;
|
437
|
-
read(parent, events.pathChanged, parent.path === '/' ? parent.path : getValue('filterPath', parent.renamedItem).replace(/\\/g, '/') + parent.renamedItem.name + '/');
|
438
929
|
if (getValue('filterPath', parent.renamedItem) === getValue('filterPath', parent.itemData[0]) && parent.pathNames.length > 1) {
|
439
930
|
parent.pathNames[parent.pathNames.length - 1] = parent.renameText;
|
440
931
|
}
|
932
|
+
read(parent, events.pathChanged, parent.path === '/' ? parent.path : getValue('filterPath', parent.renamedItem).replace(/\\/g, '/') + parent.renamedItem.name + '/');
|
933
|
+
parent.renamedItem = null;
|
441
934
|
}
|
442
935
|
else {
|
443
936
|
parent.itemData = [getPathObject(parent)];
|
@@ -483,6 +976,14 @@ function renameSuccess(parent, result, path) {
|
|
483
976
|
* @private
|
484
977
|
*/
|
485
978
|
function pasteSuccess(parent, result, path, operation) {
|
979
|
+
var moveorcopyEventArgs = {
|
980
|
+
itemData: result.files,
|
981
|
+
isCopy: operation === 'copy' ? true : false,
|
982
|
+
path: path,
|
983
|
+
targetData: parent.itemData[0],
|
984
|
+
targetPath: parent.path
|
985
|
+
};
|
986
|
+
parent.trigger('move', moveorcopyEventArgs);
|
486
987
|
if (result.error && result.error.fileExists) {
|
487
988
|
parent.fileLength = 0;
|
488
989
|
if (!isNOU(result.files)) {
|
@@ -517,6 +1018,11 @@ function pasteSuccess(parent, result, path, operation) {
|
|
517
1018
|
* @private
|
518
1019
|
*/
|
519
1020
|
function deleteSuccess(parent, result, path) {
|
1021
|
+
var deleteEventArgs = {
|
1022
|
+
itemData: result.files,
|
1023
|
+
path: path
|
1024
|
+
};
|
1025
|
+
parent.trigger('delete', deleteEventArgs);
|
520
1026
|
if (!isNOU(result.files)) {
|
521
1027
|
parent.setProperties({ path: path }, true);
|
522
1028
|
parent.itemData = [getPathObject(parent)];
|
@@ -581,10 +1087,7 @@ function onFailure(parent, result, action) {
|
|
581
1087
|
* @returns {void}
|
582
1088
|
* @private
|
583
1089
|
*/
|
584
|
-
export function Search(
|
585
|
-
// eslint:disable-next-line
|
586
|
-
parent, event, path, searchString, showHiddenItems, caseSensitive) {
|
587
|
-
// eslint-disable-next-line
|
1090
|
+
export function Search(parent, event, path, searchString, showHiddenItems, caseSensitive) {
|
588
1091
|
var data = {
|
589
1092
|
action: 'search', path: path, searchString: searchString, showHiddenItems: showHiddenItems, caseSensitive: caseSensitive,
|
590
1093
|
data: parent.itemData
|
@@ -623,7 +1126,6 @@ function searchSuccess(parent, result, event) {
|
|
623
1126
|
*/
|
624
1127
|
export function Download(parent, path, items) {
|
625
1128
|
var downloadUrl = parent.ajaxSettings.downloadUrl ? parent.ajaxSettings.downloadUrl : parent.ajaxSettings.url;
|
626
|
-
// eslint-disable-next-line
|
627
1129
|
var data = { 'action': 'download', 'path': path, 'names': items, 'data': parent.itemData };
|
628
1130
|
var ajaxSettings = {
|
629
1131
|
url: downloadUrl,
|
@@ -687,12 +1189,12 @@ export function Download(parent, path, items) {
|
|
687
1189
|
var result = {
|
688
1190
|
error: {
|
689
1191
|
code: e.status.toString(),
|
690
|
-
message: getLocaleText(parent, 'Network-Error') + ' ' + parent.ajaxSettings.downloadUrl
|
691
|
-
}
|
1192
|
+
message: getLocaleText(parent, 'Network-Error') + ' ' + parent.ajaxSettings.downloadUrl
|
1193
|
+
}
|
692
1194
|
};
|
693
1195
|
createDialog(parent, 'Error', result);
|
694
1196
|
parent.trigger('failure', downloadArgs);
|
695
|
-
}
|
1197
|
+
}
|
696
1198
|
});
|
697
1199
|
fetch_1.send(JSON.stringify(downloadArgs.data));
|
698
1200
|
}
|