@syncfusion/ej2-filemanager 20.1.52-10459 → 20.1.52-10460
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 -20
- package/CHANGELOG.md +410 -0
- package/README.md +43 -54
- package/dist/ej2-filemanager.umd.min.js +10 -1
- package/dist/ej2-filemanager.umd.min.js.map +1 -1
- package/dist/es6/ej2-filemanager.es2015.js +659 -2353
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +708 -2421
- package/dist/es6/ej2-filemanager.es5.js.map +1 -1
- package/dist/global/ej2-filemanager.min.js +10 -1
- package/dist/global/ej2-filemanager.min.js.map +1 -1
- package/dist/global/index.d.ts +9 -0
- package/helpers/e2e/filemanagerHelper.js +166 -183
- package/package.json +71 -71
- package/src/file-manager/actions/breadcrumb-bar.js +5 -1
- package/src/file-manager/actions/index.d.ts +0 -1
- package/src/file-manager/actions/index.js +0 -1
- package/src/file-manager/actions/toolbar.d.ts +0 -1
- package/src/file-manager/actions/toolbar.js +17 -129
- package/src/file-manager/base/file-manager-model.d.ts +28 -154
- package/src/file-manager/base/file-manager.d.ts +27 -176
- package/src/file-manager/base/file-manager.js +28 -244
- package/src/file-manager/base/interface.d.ts +3 -329
- package/src/file-manager/base/interface.js +1 -0
- package/src/file-manager/common/operations.d.ts +0 -7
- package/src/file-manager/common/operations.js +185 -830
- package/src/file-manager/common/utility.d.ts +3 -46
- package/src/file-manager/common/utility.js +73 -249
- package/src/file-manager/index.d.ts +0 -1
- package/src/file-manager/index.js +0 -1
- package/src/file-manager/layout/details-view.d.ts +0 -10
- package/src/file-manager/layout/details-view.js +94 -203
- package/src/file-manager/layout/large-icons-view.d.ts +2 -4
- package/src/file-manager/layout/large-icons-view.js +72 -121
- package/src/file-manager/layout/navigation-pane.d.ts +0 -2
- package/src/file-manager/layout/navigation-pane.js +73 -97
- package/src/file-manager/models/column-model.d.ts +5 -23
- package/src/file-manager/models/column.d.ts +2 -21
- package/src/file-manager/models/column.js +0 -6
- package/src/file-manager/models/default-locale.js +1 -0
- package/src/file-manager/models/details-view-settings-model.d.ts +1 -1
- package/src/file-manager/models/details-view-settings.js +3 -8
- package/src/file-manager/models/search-settings.d.ts +0 -5
- package/src/file-manager/models/toolbar-settings-model.d.ts +2 -177
- package/src/file-manager/models/toolbar-settings.d.ts +2 -157
- package/src/file-manager/models/toolbar-settings.js +2 -64
- package/src/file-manager/models/upload-settings-model.d.ts +0 -13
- package/src/file-manager/models/upload-settings.d.ts +0 -12
- package/src/file-manager/models/upload-settings.js +0 -3
- package/src/file-manager/pop-up/context-menu.d.ts +1 -2
- package/src/file-manager/pop-up/context-menu.js +36 -111
- package/src/file-manager/pop-up/dialog.d.ts +2 -1
- package/src/file-manager/pop-up/dialog.js +40 -19
- package/src/global.js +1 -1
- package/styles/bootstrap-dark.css +665 -371
- package/styles/bootstrap-dark.scss +1 -17
- package/styles/bootstrap.css +644 -353
- package/styles/bootstrap.scss +1 -17
- package/styles/bootstrap4.css +680 -381
- package/styles/bootstrap4.scss +1 -17
- package/styles/bootstrap5-dark.css +694 -376
- package/styles/bootstrap5-dark.scss +1 -17
- package/styles/bootstrap5.css +695 -377
- package/styles/bootstrap5.scss +1 -17
- package/styles/fabric-dark.css +642 -358
- package/styles/fabric-dark.scss +1 -17
- package/styles/fabric.css +641 -357
- package/styles/fabric.scss +1 -17
- package/styles/file-manager/_all.scss +1 -1
- package/styles/file-manager/_bootstrap-dark-definition.scss +2 -6
- package/styles/file-manager/_bootstrap-definition.scss +2 -6
- package/styles/file-manager/_bootstrap4-definition.scss +2 -6
- package/styles/file-manager/_bootstrap5-definition.scss +15 -20
- package/styles/file-manager/_fabric-dark-definition.scss +2 -6
- package/styles/file-manager/_fabric-definition.scss +2 -6
- package/styles/file-manager/_fluent-definition.scss +15 -18
- package/styles/file-manager/_highcontrast-definition.scss +2 -6
- package/styles/file-manager/_highcontrast-light-definition.scss +2 -6
- package/styles/file-manager/_layout.scss +932 -369
- package/styles/file-manager/_material-dark-definition.scss +2 -7
- package/styles/file-manager/_material-definition.scss +2 -7
- package/styles/file-manager/_tailwind-definition.scss +16 -20
- package/styles/file-manager/_theme.scss +102 -123
- package/styles/file-manager/bootstrap-dark.css +665 -371
- package/styles/file-manager/bootstrap-dark.scss +1 -2
- package/styles/file-manager/bootstrap.css +644 -353
- package/styles/file-manager/bootstrap.scss +1 -2
- package/styles/file-manager/bootstrap4.css +680 -381
- package/styles/file-manager/bootstrap4.scss +1 -2
- package/styles/file-manager/bootstrap5-dark.css +694 -376
- package/styles/file-manager/bootstrap5-dark.scss +1 -2
- package/styles/file-manager/bootstrap5.css +695 -377
- package/styles/file-manager/bootstrap5.scss +1 -2
- package/styles/file-manager/fabric-dark.css +642 -358
- package/styles/file-manager/fabric-dark.scss +1 -2
- package/styles/file-manager/fabric.css +641 -357
- package/styles/file-manager/fabric.scss +1 -2
- package/styles/file-manager/fluent-dark.css +641 -356
- package/styles/file-manager/fluent-dark.scss +1 -2
- package/styles/file-manager/fluent.css +640 -355
- package/styles/file-manager/fluent.scss +1 -2
- package/styles/file-manager/highcontrast-light.css +644 -354
- package/styles/file-manager/highcontrast-light.scss +1 -2
- package/styles/file-manager/highcontrast.css +647 -377
- package/styles/file-manager/highcontrast.scss +1 -2
- package/styles/file-manager/icons/_bootstrap.scss +1 -0
- package/styles/file-manager/icons/_bootstrap4.scss +1 -0
- package/styles/file-manager/icons/_fabric-dark.scss +1 -0
- package/styles/file-manager/icons/_fabric.scss +1 -0
- package/styles/file-manager/material-dark.css +671 -392
- package/styles/file-manager/material-dark.scss +1 -2
- package/styles/file-manager/material.css +654 -391
- package/styles/file-manager/material.scss +1 -2
- package/styles/file-manager/tailwind-dark.css +667 -350
- package/styles/file-manager/tailwind-dark.scss +1 -2
- package/styles/file-manager/tailwind.css +667 -350
- package/styles/file-manager/tailwind.scss +1 -2
- package/styles/fluent-dark.css +641 -356
- package/styles/fluent-dark.scss +1 -17
- package/styles/fluent.css +640 -355
- package/styles/fluent.scss +1 -17
- package/styles/highcontrast-light.css +644 -354
- package/styles/highcontrast-light.scss +1 -17
- package/styles/highcontrast.css +647 -377
- package/styles/highcontrast.scss +1 -17
- package/styles/material-dark.css +671 -392
- package/styles/material-dark.scss +1 -17
- package/styles/material.css +654 -391
- package/styles/material.scss +1 -17
- package/styles/tailwind-dark.css +667 -350
- package/styles/tailwind-dark.scss +1 -17
- package/styles/tailwind.css +667 -350
- package/styles/tailwind.scss +1 -17
- package/dist/ej2-filemanager.min.js +0 -1
- package/src/file-manager/actions/virtualization.d.ts +0 -93
- package/src/file-manager/actions/virtualization.js +0 -279
- package/styles/bootstrap-dark-lite.css +0 -1058
- package/styles/bootstrap-dark-lite.scss +0 -16
- package/styles/bootstrap-lite.css +0 -1040
- package/styles/bootstrap-lite.scss +0 -16
- package/styles/bootstrap4-lite.css +0 -1068
- package/styles/bootstrap4-lite.scss +0 -16
- package/styles/bootstrap5-dark-lite.css +0 -1078
- package/styles/bootstrap5-dark-lite.scss +0 -16
- package/styles/bootstrap5-lite.css +0 -1078
- package/styles/bootstrap5-lite.scss +0 -16
- package/styles/bootstrap5.3-lite.css +0 -1035
- package/styles/bootstrap5.3-lite.scss +0 -16
- package/styles/bootstrap5.3.css +0 -1603
- package/styles/bootstrap5.3.scss +0 -17
- package/styles/fabric-dark-lite.css +0 -1039
- package/styles/fabric-dark-lite.scss +0 -16
- package/styles/fabric-lite.css +0 -1039
- package/styles/fabric-lite.scss +0 -16
- package/styles/file-manager/_bds-definition.scss +0 -236
- package/styles/file-manager/_bigger.scss +0 -758
- package/styles/file-manager/_bootstrap5.3-definition.scss +0 -242
- package/styles/file-manager/_fluent2-definition.scss +0 -255
- package/styles/file-manager/_fusionnew-definition.scss +0 -241
- package/styles/file-manager/_material3-dark-definition.scss +0 -1
- package/styles/file-manager/_material3-definition.scss +0 -235
- package/styles/file-manager/bootstrap5.3.css +0 -1603
- package/styles/file-manager/bootstrap5.3.scss +0 -17
- package/styles/file-manager/fluent2.css +0 -1886
- package/styles/file-manager/fluent2.scss +0 -17
- package/styles/file-manager/icons/_bds.scss +0 -235
- package/styles/file-manager/icons/_bootstrap5.3.scss +0 -235
- package/styles/file-manager/icons/_fluent2.scss +0 -235
- package/styles/file-manager/icons/_fusionnew.scss +0 -235
- package/styles/file-manager/icons/_material3-dark.scss +0 -1
- package/styles/file-manager/icons/_material3.scss +0 -235
- package/styles/file-manager/material3-dark.css +0 -1633
- package/styles/file-manager/material3-dark.scss +0 -18
- package/styles/file-manager/material3.css +0 -1635
- package/styles/file-manager/material3.scss +0 -18
- package/styles/fluent-dark-lite.css +0 -1037
- package/styles/fluent-dark-lite.scss +0 -16
- package/styles/fluent-lite.css +0 -1036
- package/styles/fluent-lite.scss +0 -16
- package/styles/fluent2-lite.css +0 -1272
- package/styles/fluent2-lite.scss +0 -16
- package/styles/fluent2.css +0 -1886
- package/styles/fluent2.scss +0 -17
- package/styles/highcontrast-light-lite.css +0 -1039
- package/styles/highcontrast-light-lite.scss +0 -16
- package/styles/highcontrast-lite.css +0 -1059
- package/styles/highcontrast-lite.scss +0 -16
- package/styles/material-dark-lite.css +0 -1092
- package/styles/material-dark-lite.scss +0 -16
- package/styles/material-lite.css +0 -1097
- package/styles/material-lite.scss +0 -16
- package/styles/material3-dark-lite.css +0 -1090
- package/styles/material3-dark-lite.scss +0 -16
- package/styles/material3-dark.css +0 -1633
- package/styles/material3-dark.scss +0 -19
- package/styles/material3-lite.css +0 -1092
- package/styles/material3-lite.scss +0 -16
- package/styles/material3.css +0 -1635
- package/styles/material3.scss +0 -19
- package/styles/tailwind-dark-lite.css +0 -1060
- package/styles/tailwind-dark-lite.scss +0 -16
- package/styles/tailwind-lite.css +0 -1060
- package/styles/tailwind-lite.scss +0 -16
@@ -1,11 +1,9 @@
|
|
1
|
-
import { Ajax,
|
1
|
+
import { Ajax, createElement, select, extend } from '@syncfusion/ej2-base';
|
2
2
|
import { isNullOrUndefined as isNOU, setValue, getValue } from '@syncfusion/ej2-base';
|
3
3
|
import * as events from '../base/constant';
|
4
4
|
import { createDialog, createExtDialog } from '../pop-up/dialog';
|
5
|
-
import { fileType, setNodeId, getLocaleText, setDateObject, doPasteUpdate, getPathObject } from '../common/utility';
|
6
|
-
import { generatePath
|
7
|
-
import { getUid } from '@syncfusion/ej2-grids';
|
8
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
5
|
+
import { fileType, setNodeId, getLocaleText, setDateObject, doPasteUpdate, getParentPath, getPathObject } from '../common/utility';
|
6
|
+
import { generatePath } from '../common/utility';
|
9
7
|
/**
|
10
8
|
* Function to read the content from given path in File Manager.
|
11
9
|
*
|
@@ -16,12 +14,14 @@ import { getUid } from '@syncfusion/ej2-grids';
|
|
16
14
|
* @private
|
17
15
|
*/
|
18
16
|
export function read(parent, event, path) {
|
17
|
+
// eslint-disable-next-line
|
19
18
|
var itemData = parent.itemData;
|
20
19
|
for (var i = 0; i < itemData.length; i++) {
|
21
20
|
if (isNOU(getValue('hasChild', itemData[i]))) {
|
22
21
|
setValue('hasChild', false, itemData[i]);
|
23
22
|
}
|
24
23
|
}
|
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,6 +34,7 @@ export function read(parent, event, path) {
|
|
34
34
|
* @private
|
35
35
|
*/
|
36
36
|
export function createFolder(parent, itemName) {
|
37
|
+
// eslint-disable-next-line
|
37
38
|
var data = { action: 'create', path: parent.path, name: itemName, data: parent.itemData };
|
38
39
|
createAjax(parent, data, createSuccess, itemName);
|
39
40
|
}
|
@@ -46,8 +47,11 @@ export function createFolder(parent, itemName) {
|
|
46
47
|
* @private
|
47
48
|
*/
|
48
49
|
export function filter(parent, event) {
|
50
|
+
// eslint-disable-next-line
|
49
51
|
var data = { action: 'filter', path: parent.path, showHiddenItems: parent.showHiddenItems, data: [getPathObject(parent)] };
|
52
|
+
// eslint-disable-next-line
|
50
53
|
var filterData;
|
54
|
+
// eslint-disable-next-line
|
51
55
|
var filterDataVal = parent.filterData ? extend(filterData, data, parent.filterData) : data;
|
52
56
|
createAjax(parent, filterDataVal, filterSuccess, event, getValue('action', filterDataVal));
|
53
57
|
}
|
@@ -79,8 +83,9 @@ export function rename(parent, path, itemNewName) {
|
|
79
83
|
newName = fPath.replace(path, '') + itemNewName;
|
80
84
|
}
|
81
85
|
}
|
86
|
+
// eslint-disable-next-line
|
82
87
|
var data = {
|
83
|
-
action: 'rename', path: path, name: name, newName: newName, data: parent.itemData
|
88
|
+
action: 'rename', path: path, name: name, newName: newName, data: parent.itemData
|
84
89
|
};
|
85
90
|
createAjax(parent, data, renameSuccess, path);
|
86
91
|
}
|
@@ -97,7 +102,10 @@ export function rename(parent, path, itemNewName) {
|
|
97
102
|
* @returns {void}
|
98
103
|
* @private
|
99
104
|
*/
|
100
|
-
export function paste(parent, path, names, targetPath, pasteOperation,
|
105
|
+
export function paste(parent, path, names, targetPath, pasteOperation,
|
106
|
+
// eslint-disable-next-line
|
107
|
+
renameItems, actionRecords) {
|
108
|
+
// eslint-disable-next-line
|
101
109
|
var data = {
|
102
110
|
action: pasteOperation, path: path, targetData: parent.itemData[0],
|
103
111
|
targetPath: targetPath, names: names, renameFiles: renameItems, data: actionRecords
|
@@ -116,6 +124,7 @@ export function paste(parent, path, names, targetPath, pasteOperation, renameIte
|
|
116
124
|
* @private
|
117
125
|
*/
|
118
126
|
export function Delete(parent, items, path, operation) {
|
127
|
+
// eslint-disable-next-line
|
119
128
|
var data = { action: operation, path: path, names: items, data: parent.itemData };
|
120
129
|
createAjax(parent, data, deleteSuccess, path);
|
121
130
|
}
|
@@ -131,420 +140,26 @@ export function Delete(parent, items, path, operation) {
|
|
131
140
|
* @private
|
132
141
|
*/
|
133
142
|
export function GetDetails(parent, names, path, operation) {
|
143
|
+
// eslint-disable-next-line
|
134
144
|
var data = { action: operation, path: path, names: names, data: parent.itemData };
|
135
145
|
createAjax(parent, data, detailsSuccess, path, operation);
|
136
146
|
}
|
137
147
|
/**
|
138
|
-
* Function for
|
139
|
-
*
|
140
|
-
* @param {IFileManager} parent - specifies the parent element.
|
141
|
-
* @returns {void}
|
142
|
-
* @private
|
143
|
-
*/
|
144
|
-
function getDateFormat(parent) {
|
145
|
-
var columns = parent.detailsViewSettings.columns;
|
146
|
-
var dateFormat;
|
147
|
-
if (!columns) {
|
148
|
-
return null;
|
149
|
-
}
|
150
|
-
for (var i = 0; i < columns.length; i++) {
|
151
|
-
if (columns[i].field === '_fm_modified') {
|
152
|
-
if (!isNOU(columns[i].format)) {
|
153
|
-
dateFormat = columns[i].format.toString();
|
154
|
-
}
|
155
|
-
break;
|
156
|
-
}
|
157
|
-
}
|
158
|
-
return dateFormat;
|
159
|
-
}
|
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.
|
148
|
+
* Function for createAjax in File Manager.
|
478
149
|
*
|
479
150
|
* @param {IFileManager} parent - specifies the parent element.
|
480
151
|
* @param {Object} data - specifies the data.
|
481
|
-
* @param {
|
482
|
-
* @
|
483
|
-
* @
|
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
|
-
setValue('data', args.searchResults, data);
|
496
|
-
if (args.cancel) {
|
497
|
-
eventArgs.cancel = true;
|
498
|
-
}
|
499
|
-
});
|
500
|
-
}
|
501
|
-
/**
|
502
|
-
* Function to trigger client side events.
|
503
|
-
*
|
504
|
-
* @param {IFileManager} parent - specifies the parent element.
|
505
|
-
* @param {Object} data - specifies the data.
|
506
|
-
* @param {BeforeSendEventArgs} eventArgs - specifies the eventArgs.
|
507
|
-
* @returns {void}
|
508
|
-
* @private
|
509
|
-
*/
|
510
|
-
function triggerClientEvents(parent, data, eventArgs) {
|
511
|
-
switch (getValue('action', data)) {
|
512
|
-
case 'create': {
|
513
|
-
triggerFolderCreation(parent, data, eventArgs);
|
514
|
-
break;
|
515
|
-
}
|
516
|
-
case 'delete': {
|
517
|
-
triggerDeleteOperation(parent, data, eventArgs);
|
518
|
-
break;
|
519
|
-
}
|
520
|
-
case 'rename': {
|
521
|
-
triggerRenameOperation(parent, data, eventArgs);
|
522
|
-
break;
|
523
|
-
}
|
524
|
-
case 'move':
|
525
|
-
case 'copy': {
|
526
|
-
triggerMoveOrCopyOperation(parent, data, eventArgs);
|
527
|
-
break;
|
528
|
-
}
|
529
|
-
case 'search': {
|
530
|
-
triggerSearchOperation(parent, data, eventArgs);
|
531
|
-
break;
|
532
|
-
}
|
533
|
-
}
|
534
|
-
}
|
535
|
-
/**
|
536
|
-
* Creates an AJAX request for the file manager.
|
537
|
-
*
|
538
|
-
* @param {IFileManager} parent - The parent file manager instance.
|
539
|
-
* @param {Object} data - The data object for the AJAX request.
|
540
|
-
* @param {Function} fn - The callback function to be executed after the AJAX request.
|
541
|
-
* @param {string} [event] - The event type for the AJAX request.
|
542
|
-
* @param {string} [operation] - The operation type for the AJAX request.
|
543
|
-
* @param {string} [targetPath] - The target path for the AJAX request.
|
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.
|
544
156
|
* @returns {void}
|
545
157
|
* @private
|
546
158
|
*/
|
547
|
-
function createAjax(
|
159
|
+
function createAjax(
|
160
|
+
// eslint-disable-next-line
|
161
|
+
parent, data, fn, event, operation, targetPath) {
|
162
|
+
// eslint-disable-next-line
|
548
163
|
var ajaxSettings = {
|
549
164
|
url: parent.ajaxSettings.url,
|
550
165
|
type: 'POST',
|
@@ -557,70 +172,9 @@ function createAjax(parent, data, fn, event, operation, targetPath) {
|
|
557
172
|
beforeSend: null
|
558
173
|
};
|
559
174
|
var eventArgs = { action: getValue('action', data), ajaxSettings: ajaxSettings, cancel: false };
|
560
|
-
triggerClientEvents(parent, data, eventArgs);
|
561
175
|
parent.trigger('beforeSend', eventArgs, function (beforeSendArgs) {
|
562
176
|
if (!beforeSendArgs.cancel) {
|
563
177
|
parent.notify(events.beforeRequest, {});
|
564
|
-
if (isFileSystemData(parent)) {
|
565
|
-
var filePath = event === 'node-expand' || event === 'finalize-end' ? getValue('path', data) : parent.path;
|
566
|
-
var pathArray = filePath.replace(/^\/|\/$/g, '').split('/');
|
567
|
-
var idValue = event === 'rename-end-parent' || (event === 'path-changed' && getValue('data', data).length !== 0)
|
568
|
-
|| (event === 'paste-end' && (parent.targetModule === 'largeiconsview' || parent.targetModule === 'detailsview'))
|
569
|
-
? getValue('data', data)[0].id : pathArray[pathArray.length - 1];
|
570
|
-
var action = getValue('action', data);
|
571
|
-
var isFileOperation = (action === 'move' || action === 'rename' || action === 'copy' || action === 'delete' || action === 'search') && event !== 'rename-end';
|
572
|
-
if (action === 'read' || action === 'create' || event === 'rename-end') {
|
573
|
-
var rootId = parent.fileSystemData
|
574
|
-
.filter(function (item) { return isNOU(item.parentId); })
|
575
|
-
.length > 0
|
576
|
-
? parent.fileSystemData
|
577
|
-
.filter(function (item) { return isNOU(item.parentId); })[0].id
|
578
|
-
: 0;
|
579
|
-
parent.responseData = {
|
580
|
-
cwd: filterById(parent, parent.path === '/' && event !== 'node-expand' && event !== 'rename-end-parent' ? rootId : idValue),
|
581
|
-
details: null,
|
582
|
-
error: null,
|
583
|
-
files: filterByParent(parent, parent.path === '/' && event !== 'node-expand' && event !== 'rename-end-parent' ? rootId : idValue)
|
584
|
-
};
|
585
|
-
if (isNOU(parent.responseData.cwd)) {
|
586
|
-
var message = 'Cannot load empty data within the File Manager.';
|
587
|
-
createErrorObject(parent, message, '400', null);
|
588
|
-
}
|
589
|
-
}
|
590
|
-
else if (isFileOperation && parent.responseData.error === null) {
|
591
|
-
var itemData = action === 'search' || action === 'delete' ? getValue('data', data) : [];
|
592
|
-
if (itemData.length === 0) {
|
593
|
-
itemData = getValue('data', data).map(function (item) { return filterById(parent, item.id); });
|
594
|
-
}
|
595
|
-
parent.responseData = {
|
596
|
-
cwd: null,
|
597
|
-
details: null,
|
598
|
-
error: null,
|
599
|
-
files: itemData
|
600
|
-
};
|
601
|
-
}
|
602
|
-
else if (getValue('action', data) === 'details') {
|
603
|
-
var itemData = getValue('data', data);
|
604
|
-
var details = itemData[0];
|
605
|
-
var isMultipleFiles = itemData.length > 1;
|
606
|
-
var itemNames = itemData.map(function (item) { return item.name; });
|
607
|
-
var totalSize = isMultipleFiles ? getSize(itemData.reduce(function (accumulator, currentObject) { return accumulator + (currentObject.size || 0); }, 0)) : getSize(details.size);
|
608
|
-
var path = (parent.pathNames.includes(details.name) ? parent.pathNames.join('/') : parent.pathNames.join('/') + '/' + details.name);
|
609
|
-
parent.responseData.details = Object.assign({
|
610
|
-
location: isMultipleFiles ? null : path,
|
611
|
-
multipleFiles: isMultipleFiles,
|
612
|
-
name: itemNames.join(', '),
|
613
|
-
size: totalSize
|
614
|
-
}, isMultipleFiles ? {} : {
|
615
|
-
created: details.dateCreated,
|
616
|
-
isFile: details.isFile,
|
617
|
-
modified: details.dateModified,
|
618
|
-
permission: details.permission
|
619
|
-
});
|
620
|
-
}
|
621
|
-
performReadOperation(parent, parent.responseData, fn, data, event, operation, targetPath, beforeSendArgs);
|
622
|
-
return;
|
623
|
-
}
|
624
178
|
var ajax = new Ajax({
|
625
179
|
url: getValue('url', beforeSendArgs.ajaxSettings),
|
626
180
|
type: getValue('type', beforeSendArgs.ajaxSettings),
|
@@ -645,7 +199,60 @@ function createAjax(parent, data, fn, event, operation, targetPath) {
|
|
645
199
|
if (typeof (result) === 'string') {
|
646
200
|
result = JSON.parse(result);
|
647
201
|
}
|
648
|
-
|
202
|
+
parent.notify(events.afterRequest, { action: 'success' });
|
203
|
+
var id = parent.expandedId ? parent.expandedId : parent.pathId[parent.pathId.length - 1];
|
204
|
+
if (!isNOU(result.cwd) && (getValue('action', data) === 'read')) {
|
205
|
+
result.cwd.name = (parent.pathId.length === 1) ? (parent.rootAliasName || result.cwd.name) : result.cwd.name;
|
206
|
+
setValue('_fm_id', id, result.cwd);
|
207
|
+
setValue(id, result.cwd, parent.feParent);
|
208
|
+
if (!isNOU(result.files) || result.error.code === '401') {
|
209
|
+
if ((event === 'finalize-end' || event === 'initial-end') && parent.pathNames.length === 0) {
|
210
|
+
// eslint-disable-next-line
|
211
|
+
var root = getValue(parent.pathId[0], parent.feParent);
|
212
|
+
parent.pathNames[0] = getValue('name', root);
|
213
|
+
parent.hasId = !isNOU(getValue('id', root));
|
214
|
+
}
|
215
|
+
if (event === 'finalize-end') {
|
216
|
+
generatePath(parent);
|
217
|
+
}
|
218
|
+
}
|
219
|
+
}
|
220
|
+
if (!isNOU(result.files)) {
|
221
|
+
setDateObject(result.files);
|
222
|
+
for (var i = 0, len = result.files.length; i < len; i++) {
|
223
|
+
// eslint-disable-next-line
|
224
|
+
var item = result.files[i];
|
225
|
+
setValue('_fm_iconClass', fileType(item), item);
|
226
|
+
}
|
227
|
+
if (getValue('action', data) === 'read') {
|
228
|
+
setNodeId(result, id);
|
229
|
+
setValue(id, result.files, parent.feFiles);
|
230
|
+
}
|
231
|
+
}
|
232
|
+
if (!isNOU(result.details) && !isNOU(parent.rootAliasName)) {
|
233
|
+
var rootName = parent.rootAliasName || getValue('name', result.details);
|
234
|
+
var location_1 = getValue('location', result.details).replace(new RegExp('/', 'g'), '\\');
|
235
|
+
if ((getValue('path', data) === '/') || (parent.hasId && getValue('path', data).match(/[/]/g).length === 1)) {
|
236
|
+
if (getValue('names', data).length === 0) {
|
237
|
+
setValue('name', rootName, result.details);
|
238
|
+
location_1 = rootName;
|
239
|
+
}
|
240
|
+
else {
|
241
|
+
location_1 = location_1.replace(location_1.substring(0, location_1.indexOf('\\')), rootName);
|
242
|
+
}
|
243
|
+
}
|
244
|
+
else {
|
245
|
+
location_1 = location_1.replace(location_1.substring(0, location_1.indexOf('\\')), rootName);
|
246
|
+
}
|
247
|
+
setValue('location', location_1, result.details);
|
248
|
+
}
|
249
|
+
fn(parent, result, event, operation, targetPath);
|
250
|
+
if (!isNOU(result.files) && (event === 'path-changed' || event === 'finalize-end' || event === 'open-end')) {
|
251
|
+
parent.notify(events.searchTextChange, result);
|
252
|
+
}
|
253
|
+
if (typeof getValue('onSuccess', beforeSendArgs.ajaxSettings) === 'function') {
|
254
|
+
getValue('onSuccess', beforeSendArgs.ajaxSettings)();
|
255
|
+
}
|
649
256
|
},
|
650
257
|
onFailure: function () {
|
651
258
|
var result = {
|
@@ -663,117 +270,6 @@ function createAjax(parent, data, fn, event, operation, targetPath) {
|
|
663
270
|
}
|
664
271
|
});
|
665
272
|
}
|
666
|
-
/**
|
667
|
-
* Function to get file size.
|
668
|
-
*
|
669
|
-
* @param {number} size - specifies the size.
|
670
|
-
* @returns {string} - returns the size.
|
671
|
-
* @private
|
672
|
-
*/
|
673
|
-
function getSize(size) {
|
674
|
-
var hz;
|
675
|
-
if (size < 1024) {
|
676
|
-
hz = size + ' B';
|
677
|
-
}
|
678
|
-
else if (size < 1024 * 1024) {
|
679
|
-
hz = (size / 1024).toFixed(2) + ' KB';
|
680
|
-
}
|
681
|
-
else if (size < 1024 * 1024 * 1024) {
|
682
|
-
hz = (size / 1024 / 1024).toFixed(2) + ' MB';
|
683
|
-
}
|
684
|
-
else {
|
685
|
-
hz = (size / 1024 / 1024 / 1024).toFixed(2) + ' GB';
|
686
|
-
}
|
687
|
-
return hz;
|
688
|
-
}
|
689
|
-
/**
|
690
|
-
* Function to perform read operation.
|
691
|
-
*
|
692
|
-
* @param {IFileManager} parent - specifies the parent element.
|
693
|
-
* @param {ReadArgs} result - specifies the result.
|
694
|
-
* @param {Function} fn - specifies the function.
|
695
|
-
* @param {Object} data - specifies the data.
|
696
|
-
* @param {string} event - specifies the event.
|
697
|
-
* @param {string} operation - specifies the operation.
|
698
|
-
* @param {string} targetPath - specifies the targetPath.
|
699
|
-
* @param {BeforeSendEventArgs} beforeSendArgs - specifies the eventArgs.
|
700
|
-
* @returns {void}
|
701
|
-
* @private
|
702
|
-
*/
|
703
|
-
function performReadOperation(parent, result, fn, data, event, operation, targetPath, beforeSendArgs) {
|
704
|
-
parent.notify(events.afterRequest, { action: 'success' });
|
705
|
-
var id = parent.expandedId ? parent.expandedId : parent.pathId[parent.pathId.length - 1];
|
706
|
-
if (!isNOU(result.cwd) && (getValue('action', data) === 'read')) {
|
707
|
-
result.cwd.name = (parent.pathId.length === 1) ? (parent.rootAliasName || result.cwd.name) : result.cwd.name;
|
708
|
-
setValue('_fm_id', id, result.cwd);
|
709
|
-
setValue(id, result.cwd, parent.feParent);
|
710
|
-
if (!isNOU(result.files) || result.error.code === '401') {
|
711
|
-
if ((event === 'finalize-end' || event === 'initial-end') && parent.pathNames.length === 0) {
|
712
|
-
var root = getValue(parent.pathId[0], parent.feParent);
|
713
|
-
parent.pathNames[0] = getValue('name', root);
|
714
|
-
parent.hasId = !isNOU(getValue('id', root));
|
715
|
-
}
|
716
|
-
if (event === 'finalize-end') {
|
717
|
-
generatePath(parent);
|
718
|
-
}
|
719
|
-
}
|
720
|
-
}
|
721
|
-
var intl = new Internationalization(parent.locale);
|
722
|
-
if (!isNOU(result.files)) {
|
723
|
-
setDateObject(result.files, intl, getDateFormat(parent));
|
724
|
-
for (var i = 0, len = result.files.length; i < len; i++) {
|
725
|
-
var item = result.files[i];
|
726
|
-
setValue('_fm_iconClass', fileType(item), item);
|
727
|
-
}
|
728
|
-
if (getValue('action', data) === 'read' || isFileSystemData(parent) && getValue('action', data) === 'search') {
|
729
|
-
setNodeId(result, id);
|
730
|
-
setValue(id, result.files, parent.feFiles);
|
731
|
-
}
|
732
|
-
}
|
733
|
-
if (!isNOU(result.details) && !isNOU(parent.rootAliasName)) {
|
734
|
-
var rootName = parent.rootAliasName || getValue('name', result.details);
|
735
|
-
var location_1 = getValue('location', result.details).replace(new RegExp('/', 'g'), '\\');
|
736
|
-
if ((getValue('path', data) === '/') || (parent.hasId && getValue('path', data).match(/[/]/g).length === 1)) {
|
737
|
-
if (getValue('names', data).length === 0) {
|
738
|
-
setValue('name', rootName, result.details);
|
739
|
-
location_1 = rootName;
|
740
|
-
}
|
741
|
-
else {
|
742
|
-
location_1 = location_1.replace(location_1.substring(0, location_1.indexOf('\\')), rootName);
|
743
|
-
}
|
744
|
-
}
|
745
|
-
else {
|
746
|
-
location_1 = location_1.replace(location_1.substring(0, location_1.indexOf('\\')), rootName);
|
747
|
-
}
|
748
|
-
setValue('location', location_1, result.details);
|
749
|
-
}
|
750
|
-
fn(parent, result, event, operation, targetPath);
|
751
|
-
if (!isNOU(result.files) && (event === 'path-changed' || event === 'finalize-end' || event === 'open-end' || event === 'drop-path')) {
|
752
|
-
parent.notify(events.searchTextChange, result);
|
753
|
-
}
|
754
|
-
if (typeof getValue('onSuccess', beforeSendArgs.ajaxSettings) === 'function') {
|
755
|
-
getValue('onSuccess', beforeSendArgs.ajaxSettings)();
|
756
|
-
}
|
757
|
-
}
|
758
|
-
/**
|
759
|
-
* Function to copy operation.
|
760
|
-
*
|
761
|
-
* @param {IFileManager} parent - specifies the parent element.
|
762
|
-
* @param {Object} data - specifies the data.
|
763
|
-
* @param {string} target - specifies the target.
|
764
|
-
* @param {string} itemName - specifies the item name.
|
765
|
-
* @returns {void}
|
766
|
-
* @private
|
767
|
-
*/
|
768
|
-
function copyFolderItems(parent, data, target, itemName) {
|
769
|
-
var newObject = createNewItem(data, target, itemName, true);
|
770
|
-
parent.fileSystemData.push(newObject);
|
771
|
-
parent.pasteNodes.push(newObject.id);
|
772
|
-
var copiedItems = filterByParent(parent, data.id);
|
773
|
-
for (var i = 0; i < copiedItems.length; i++) {
|
774
|
-
copyFolderItems(parent, copiedItems[i], newObject, null);
|
775
|
-
}
|
776
|
-
}
|
777
273
|
/**
|
778
274
|
* Function for trigger Ajax failure in File Manager.
|
779
275
|
*
|
@@ -787,7 +283,9 @@ function copyFolderItems(parent, data, target, itemName) {
|
|
787
283
|
* @returns {void}
|
788
284
|
* @private
|
789
285
|
*/
|
790
|
-
function triggerAjaxFailure(
|
286
|
+
function triggerAjaxFailure(
|
287
|
+
// eslint-disable-next-line
|
288
|
+
parent, beforeSendArgs, fn, result, event, operation, targetPath) {
|
791
289
|
parent.notify(events.afterRequest, { action: 'failure' });
|
792
290
|
fn(parent, result, event, operation, targetPath);
|
793
291
|
if (typeof getValue('onFailure', beforeSendArgs.ajaxSettings) === 'function') {
|
@@ -804,28 +302,19 @@ function triggerAjaxFailure(parent, beforeSendArgs, fn, result, event, operation
|
|
804
302
|
* @private
|
805
303
|
*/
|
806
304
|
function readSuccess(parent, result, event) {
|
807
|
-
|
808
|
-
|
305
|
+
if (!isNOU(result.files)) {
|
306
|
+
parent.notify(event, result);
|
307
|
+
parent.notify(events.selectionChanged, {});
|
308
|
+
var args = { action: 'read', result: result };
|
309
|
+
parent.trigger('success', args);
|
310
|
+
}
|
311
|
+
else {
|
312
|
+
if (result.error.code === '401') {
|
313
|
+
result.files = [];
|
809
314
|
parent.notify(event, result);
|
810
315
|
parent.notify(events.selectionChanged, {});
|
811
|
-
var args = { action: 'read', result: result };
|
812
|
-
parent.trigger('success', args);
|
813
|
-
}
|
814
|
-
else {
|
815
|
-
if (!isNOU(result.error) && result.error.code === '401') {
|
816
|
-
result.files = [];
|
817
|
-
parent.notify(event, result);
|
818
|
-
parent.notify(events.selectionChanged, {});
|
819
|
-
}
|
820
|
-
onFailure(parent, result, 'read');
|
821
|
-
parent.setProperties({ path: parent.oldPath }, true);
|
822
|
-
parent.pathNames.pop();
|
823
316
|
}
|
824
|
-
|
825
|
-
catch (error) {
|
826
|
-
handleCatchError(parent, error, 'read');
|
827
|
-
parent.setProperties({ path: parent.oldPath }, true);
|
828
|
-
parent.pathNames.pop();
|
317
|
+
onFailure(parent, result, 'read');
|
829
318
|
}
|
830
319
|
if (parent.isDragDrop && parent.isDropEnd) {
|
831
320
|
if (parent.droppedObjects.length !== 0) {
|
@@ -870,14 +359,8 @@ function createSuccess(parent, result, itemName) {
|
|
870
359
|
if (parent.dialogObj && parent.dialogObj.visible) {
|
871
360
|
parent.dialogObj.hide();
|
872
361
|
}
|
873
|
-
parent.createdItem =
|
362
|
+
parent.createdItem = result.files[0];
|
874
363
|
parent.breadcrumbbarModule.searchObj.value = '';
|
875
|
-
var createEventArgs = {
|
876
|
-
folderName: itemName,
|
877
|
-
path: parent.path,
|
878
|
-
parentFolder: parent.itemData
|
879
|
-
};
|
880
|
-
parent.trigger('folderCreate', createEventArgs);
|
881
364
|
var args = { action: 'create', result: result };
|
882
365
|
parent.trigger('success', args);
|
883
366
|
parent.itemData = [getPathObject(parent)];
|
@@ -918,73 +401,54 @@ function createSuccess(parent, result, itemName) {
|
|
918
401
|
*
|
919
402
|
* @param {IFileManager} parent - specifies the parent element.
|
920
403
|
* @param {ReadArgs} result - specifies the result.
|
404
|
+
* @param {string} path - specifies the path
|
921
405
|
* @returns {void}
|
922
406
|
* @private
|
923
407
|
*/
|
924
|
-
function renameSuccess(parent, result) {
|
925
|
-
|
926
|
-
if (!isNOU(
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
933
|
-
|
934
|
-
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
parent.
|
939
|
-
if (parent.
|
940
|
-
parent.
|
941
|
-
parent.itemData = [getValue(parent.pathId[parent.pathId.length - 1], parent.feParent)];
|
942
|
-
read(parent, events.renameEndParent, getValue('filterPath', parent.renamedItem).replace(/\\/g, '/'));
|
943
|
-
parent.itemData[0] = parent.renamedItem;
|
944
|
-
if (getValue('filterPath', parent.renamedItem) === getValue('filterPath', parent.itemData[0]) && parent.pathNames.length > 1) {
|
945
|
-
parent.pathNames[parent.pathNames.length - 1] = parent.renameText;
|
946
|
-
}
|
947
|
-
read(parent, events.pathChanged, parent.path === '/' ? parent.path : getValue('filterPath', parent.renamedItem).replace(/\\/g, '/') + parent.renamedItem.name + '/');
|
948
|
-
parent.renamedItem = null;
|
408
|
+
function renameSuccess(parent, result, path) {
|
409
|
+
if (!isNOU(result.files)) {
|
410
|
+
if (!isNOU(parent.dialogObj)) {
|
411
|
+
parent.dialogObj.hide();
|
412
|
+
}
|
413
|
+
var args = { action: 'rename', result: result };
|
414
|
+
parent.trigger('success', args);
|
415
|
+
parent.renamedItem = result.files[0];
|
416
|
+
if (parent.activeModule === 'navigationpane') {
|
417
|
+
parent.pathId.pop();
|
418
|
+
parent.itemData = [getValue(parent.pathId[parent.pathId.length - 1], parent.feParent)];
|
419
|
+
read(parent, events.renameEndParent, getParentPath(parent.path));
|
420
|
+
}
|
421
|
+
else {
|
422
|
+
parent.itemData = [getPathObject(parent)];
|
423
|
+
if (parent.breadcrumbbarModule.searchObj.value !== '') {
|
424
|
+
Search(parent, events.renameEnd, parent.path, parent.searchWord, parent.showHiddenItems, !parent.searchSettings.ignoreCase);
|
949
425
|
}
|
950
426
|
else {
|
951
|
-
|
952
|
-
|
953
|
-
Search(parent, events.renameEnd, parent.path, parent.searchWord, parent.showHiddenItems, !parent.searchSettings.ignoreCase);
|
427
|
+
if (parent.isFiltered) {
|
428
|
+
filter(parent, events.renameEnd);
|
954
429
|
}
|
955
430
|
else {
|
956
|
-
|
957
|
-
filter(parent, events.renameEnd);
|
958
|
-
}
|
959
|
-
else {
|
960
|
-
read(parent, events.renameEnd, parent.path);
|
961
|
-
}
|
431
|
+
read(parent, events.renameEnd, parent.path);
|
962
432
|
}
|
963
433
|
}
|
964
434
|
}
|
435
|
+
}
|
436
|
+
else {
|
437
|
+
if (result.error.code === '400' && parent.dialogObj && parent.dialogObj.visible) {
|
438
|
+
var ele = select('#rename', parent.dialogObj.element);
|
439
|
+
var error = getLocaleText(parent, 'Validation-Rename-Exists').replace('{0}', '"' + parent.currentItemText + '"');
|
440
|
+
error = error.replace('{1}', '"' + ele.value + '"');
|
441
|
+
ele.parentElement.nextElementSibling.innerHTML = error;
|
442
|
+
var args = { action: 'rename', error: result.error };
|
443
|
+
parent.trigger('failure', args);
|
444
|
+
}
|
965
445
|
else {
|
966
|
-
if (
|
967
|
-
|
968
|
-
var error = getLocaleText(parent, 'Validation-Rename-Exists').replace('{0}', '"' + parent.currentItemText + '"');
|
969
|
-
error = error.replace('{1}', '"' + ele.value + '"');
|
970
|
-
ele.parentElement.nextElementSibling.innerHTML = error;
|
971
|
-
var args = { action: 'rename', error: result.error };
|
972
|
-
parent.trigger('failure', args);
|
973
|
-
}
|
974
|
-
else {
|
975
|
-
if (!isNOU(parent.dialogObj)) {
|
976
|
-
parent.dialogObj.hide();
|
977
|
-
}
|
978
|
-
onFailure(parent, result, 'rename');
|
446
|
+
if (!isNOU(parent.dialogObj)) {
|
447
|
+
parent.dialogObj.hide();
|
979
448
|
}
|
449
|
+
onFailure(parent, result, 'rename');
|
980
450
|
}
|
981
451
|
}
|
982
|
-
catch (error) {
|
983
|
-
if (!isNOU(parent.dialogObj)) {
|
984
|
-
parent.dialogObj.hide();
|
985
|
-
}
|
986
|
-
handleCatchError(parent, error, 'rename');
|
987
|
-
}
|
988
452
|
}
|
989
453
|
/* istanbul ignore next */
|
990
454
|
/**
|
@@ -998,41 +462,28 @@ function renameSuccess(parent, result) {
|
|
998
462
|
* @private
|
999
463
|
*/
|
1000
464
|
function pasteSuccess(parent, result, path, operation) {
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
isCopy: operation === 'copy' ? true : false,
|
1005
|
-
path: path,
|
1006
|
-
targetData: parent.itemData[0],
|
1007
|
-
targetPath: parent.path
|
1008
|
-
};
|
1009
|
-
parent.trigger('move', moveorcopyEventArgs);
|
1010
|
-
if (result.error && result.error.fileExists) {
|
1011
|
-
parent.fileLength = 0;
|
1012
|
-
if (!isNOU(result.files)) {
|
1013
|
-
parent.isPasteError = true;
|
1014
|
-
doPasteUpdate(parent, operation, result);
|
1015
|
-
}
|
1016
|
-
createExtDialog(parent, 'DuplicateItems', result.error.fileExists);
|
1017
|
-
if (result.error.code === '404') {
|
1018
|
-
createDialog(parent, 'Error', result);
|
1019
|
-
}
|
1020
|
-
}
|
1021
|
-
else if (!result.error && !isNOU(result.files)) {
|
1022
|
-
parent.isPasteError = false;
|
1023
|
-
doPasteUpdate(parent, operation, result);
|
1024
|
-
}
|
1025
|
-
else if (result.error && !isNOU(result.files)) {
|
465
|
+
if (result.error && result.error.fileExists) {
|
466
|
+
parent.fileLength = 0;
|
467
|
+
if (!isNOU(result.files)) {
|
1026
468
|
parent.isPasteError = true;
|
1027
469
|
doPasteUpdate(parent, operation, result);
|
1028
|
-
createDialog(parent, 'Error', result);
|
1029
470
|
}
|
1030
|
-
|
1031
|
-
|
471
|
+
createExtDialog(parent, 'DuplicateItems', result.error.fileExists);
|
472
|
+
if (result.error.code === '404') {
|
473
|
+
createDialog(parent, 'Error', result);
|
1032
474
|
}
|
1033
475
|
}
|
1034
|
-
|
1035
|
-
|
476
|
+
else if (!result.error && !isNOU(result.files)) {
|
477
|
+
parent.isPasteError = false;
|
478
|
+
doPasteUpdate(parent, operation, result);
|
479
|
+
}
|
480
|
+
else if (result.error && !isNOU(result.files)) {
|
481
|
+
parent.isPasteError = true;
|
482
|
+
doPasteUpdate(parent, operation, result);
|
483
|
+
createDialog(parent, 'Error', result);
|
484
|
+
}
|
485
|
+
else {
|
486
|
+
onFailure(parent, result, operation);
|
1036
487
|
}
|
1037
488
|
}
|
1038
489
|
/**
|
@@ -1045,30 +496,20 @@ function pasteSuccess(parent, result, path, operation) {
|
|
1045
496
|
* @private
|
1046
497
|
*/
|
1047
498
|
function deleteSuccess(parent, result, path) {
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
if (!isNOU(result.files)) {
|
1055
|
-
parent.setProperties({ path: path }, true);
|
1056
|
-
parent.itemData = [getPathObject(parent)];
|
1057
|
-
read(parent, events.deleteEnd, parent.path);
|
1058
|
-
if (result.error) {
|
1059
|
-
onFailure(parent, result, 'delete');
|
1060
|
-
}
|
1061
|
-
else {
|
1062
|
-
var args = { action: 'delete', result: result };
|
1063
|
-
parent.trigger('success', args);
|
1064
|
-
}
|
499
|
+
if (!isNOU(result.files)) {
|
500
|
+
parent.setProperties({ path: path }, true);
|
501
|
+
parent.itemData = [getPathObject(parent)];
|
502
|
+
read(parent, events.deleteEnd, parent.path);
|
503
|
+
if (result.error) {
|
504
|
+
onFailure(parent, result, 'delete');
|
1065
505
|
}
|
1066
506
|
else {
|
1067
|
-
|
507
|
+
var args = { action: 'delete', result: result };
|
508
|
+
parent.trigger('success', args);
|
1068
509
|
}
|
1069
510
|
}
|
1070
|
-
|
1071
|
-
|
511
|
+
else {
|
512
|
+
onFailure(parent, result, 'delete');
|
1072
513
|
}
|
1073
514
|
}
|
1074
515
|
/**
|
@@ -1084,18 +525,13 @@ function deleteSuccess(parent, result, path) {
|
|
1084
525
|
function detailsSuccess(
|
1085
526
|
// eslint:disable-next-line
|
1086
527
|
parent, result, path, operation) {
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
parent.trigger('success', args);
|
1092
|
-
}
|
1093
|
-
else {
|
1094
|
-
onFailure(parent, result, 'details');
|
1095
|
-
}
|
528
|
+
if (!isNOU(result.details)) {
|
529
|
+
createDialog(parent, operation, null, result.details);
|
530
|
+
var args = { action: 'details', result: result };
|
531
|
+
parent.trigger('success', args);
|
1096
532
|
}
|
1097
|
-
|
1098
|
-
|
533
|
+
else {
|
534
|
+
onFailure(parent, result, 'details');
|
1099
535
|
}
|
1100
536
|
}
|
1101
537
|
/**
|
@@ -1124,7 +560,10 @@ function onFailure(parent, result, action) {
|
|
1124
560
|
* @returns {void}
|
1125
561
|
* @private
|
1126
562
|
*/
|
1127
|
-
export function Search(
|
563
|
+
export function Search(
|
564
|
+
// eslint:disable-next-line
|
565
|
+
parent, event, path, searchString, showHiddenItems, caseSensitive) {
|
566
|
+
// eslint-disable-next-line
|
1128
567
|
var data = {
|
1129
568
|
action: 'search', path: path, searchString: searchString, showHiddenItems: showHiddenItems, caseSensitive: caseSensitive,
|
1130
569
|
data: parent.itemData
|
@@ -1142,18 +581,13 @@ export function Search(parent, event, path, searchString, showHiddenItems, caseS
|
|
1142
581
|
* @private
|
1143
582
|
*/
|
1144
583
|
function searchSuccess(parent, result, event) {
|
1145
|
-
|
1146
|
-
|
1147
|
-
|
1148
|
-
|
1149
|
-
parent.trigger('success', args);
|
1150
|
-
}
|
1151
|
-
else {
|
1152
|
-
onFailure(parent, result, 'search');
|
1153
|
-
}
|
584
|
+
if (!isNOU(result.files)) {
|
585
|
+
parent.notify(event, result);
|
586
|
+
var args = { action: 'search', result: result };
|
587
|
+
parent.trigger('success', args);
|
1154
588
|
}
|
1155
|
-
|
1156
|
-
|
589
|
+
else {
|
590
|
+
onFailure(parent, result, 'search');
|
1157
591
|
}
|
1158
592
|
}
|
1159
593
|
/* istanbul ignore next */
|
@@ -1168,102 +602,23 @@ function searchSuccess(parent, result, event) {
|
|
1168
602
|
*/
|
1169
603
|
export function Download(parent, path, items) {
|
1170
604
|
var downloadUrl = parent.ajaxSettings.downloadUrl ? parent.ajaxSettings.downloadUrl : parent.ajaxSettings.url;
|
605
|
+
// eslint-disable-next-line
|
1171
606
|
var data = { 'action': 'download', 'path': path, 'names': items, 'data': parent.itemData };
|
1172
|
-
var
|
1173
|
-
url: downloadUrl,
|
1174
|
-
type: 'POST',
|
1175
|
-
contentType: 'application/json',
|
1176
|
-
responseType: 'blob',
|
1177
|
-
data: JSON.stringify(data),
|
1178
|
-
onSuccess: null,
|
1179
|
-
onFailure: null,
|
1180
|
-
beforeSend: null
|
1181
|
-
};
|
1182
|
-
var eventArgs = { data: data, cancel: false, useFormPost: true, ajaxSettings: ajaxSettings };
|
607
|
+
var eventArgs = { data: data, cancel: false };
|
1183
608
|
parent.trigger('beforeDownload', eventArgs, function (downloadArgs) {
|
1184
609
|
if (!downloadArgs.cancel) {
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
parent.element.removeChild(form);
|
1198
|
-
}
|
1199
|
-
else {
|
1200
|
-
try {
|
1201
|
-
var contentDisposition_1;
|
1202
|
-
var fileName_1;
|
1203
|
-
var fetch_1 = new Fetch({
|
1204
|
-
url: getValue('url', downloadArgs.ajaxSettings),
|
1205
|
-
type: getValue('type', downloadArgs.ajaxSettings),
|
1206
|
-
contentType: getValue('contentType', downloadArgs.ajaxSettings),
|
1207
|
-
responseType: getValue('responseType', downloadArgs.ajaxSettings),
|
1208
|
-
beforeSend: getValue('beforeSend', downloadArgs.ajaxSettings),
|
1209
|
-
onLoad: function (e) {
|
1210
|
-
contentDisposition_1 = e.headers.get('Content-Disposition');
|
1211
|
-
if (contentDisposition_1) {
|
1212
|
-
var filenameMatch = contentDisposition_1.match(/filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/);
|
1213
|
-
var extractedFilename = filenameMatch && filenameMatch[1];
|
1214
|
-
fileName_1 = extractedFilename ? extractedFilename.replace(/['"]/g, '') : fileName_1;
|
1215
|
-
}
|
1216
|
-
else {
|
1217
|
-
fileName_1 = parent.itemData.length > 1 ? 'files.zip' : getValue('isFile', parent.itemData[0]) ? getValue('name', parent.itemData[0]) : getValue('name', parent.itemData[0]) + '.zip';
|
1218
|
-
}
|
1219
|
-
},
|
1220
|
-
onSuccess: function (e) {
|
1221
|
-
parent.trigger('success', downloadArgs);
|
1222
|
-
var blob = e;
|
1223
|
-
var blobUrl = URL.createObjectURL(blob);
|
1224
|
-
var link = document.createElement('a');
|
1225
|
-
link.href = blobUrl;
|
1226
|
-
link.download = fileName_1;
|
1227
|
-
document.body.appendChild(link);
|
1228
|
-
link.click();
|
1229
|
-
document.body.removeChild(link);
|
1230
|
-
},
|
1231
|
-
onFailure: function (e) {
|
1232
|
-
var result = {
|
1233
|
-
error: {
|
1234
|
-
code: e.status.toString(),
|
1235
|
-
message: getLocaleText(parent, 'Network-Error') + ' ' + parent.ajaxSettings.downloadUrl
|
1236
|
-
}
|
1237
|
-
};
|
1238
|
-
createDialog(parent, 'Error', result);
|
1239
|
-
parent.trigger('failure', downloadArgs);
|
1240
|
-
}
|
1241
|
-
});
|
1242
|
-
fetch_1.send(JSON.stringify(downloadArgs.data));
|
1243
|
-
}
|
1244
|
-
catch (error) {
|
1245
|
-
handleCatchError(parent, error, 'download');
|
1246
|
-
}
|
1247
|
-
}
|
610
|
+
var form = createElement('form', {
|
611
|
+
id: parent.element.id + '_downloadForm',
|
612
|
+
attrs: { action: downloadUrl, method: 'post', name: 'downloadForm', 'download': '' }
|
613
|
+
});
|
614
|
+
var input = createElement('input', {
|
615
|
+
id: parent.element.id + '_hiddenForm',
|
616
|
+
attrs: { name: 'downloadInput', value: JSON.stringify(downloadArgs.data), type: 'hidden' }
|
617
|
+
});
|
618
|
+
form.appendChild(input);
|
619
|
+
parent.element.appendChild(form);
|
620
|
+
document.forms.namedItem('downloadForm').submit();
|
621
|
+
parent.element.removeChild(form);
|
1248
622
|
}
|
1249
623
|
});
|
1250
624
|
}
|
1251
|
-
/**
|
1252
|
-
* Function for on catch handler in File Manager.
|
1253
|
-
*
|
1254
|
-
* @param {IFileManager} parent - specifies the parent element.
|
1255
|
-
* @param {any} error - specifies the catch error.
|
1256
|
-
* @param {string} action - specifies the action.
|
1257
|
-
* @returns {void}
|
1258
|
-
* @private
|
1259
|
-
*/
|
1260
|
-
function handleCatchError(parent, error, action) {
|
1261
|
-
var errorResult = {
|
1262
|
-
files: null,
|
1263
|
-
error: {
|
1264
|
-
message: error.message,
|
1265
|
-
fileExists: null
|
1266
|
-
}
|
1267
|
-
};
|
1268
|
-
onFailure(parent, errorResult, action);
|
1269
|
-
}
|