@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.
Files changed (203) hide show
  1. package/.eslintrc.json +3 -20
  2. package/CHANGELOG.md +410 -0
  3. package/README.md +43 -54
  4. package/dist/ej2-filemanager.umd.min.js +10 -1
  5. package/dist/ej2-filemanager.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-filemanager.es2015.js +659 -2353
  7. package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
  8. package/dist/es6/ej2-filemanager.es5.js +708 -2421
  9. package/dist/es6/ej2-filemanager.es5.js.map +1 -1
  10. package/dist/global/ej2-filemanager.min.js +10 -1
  11. package/dist/global/ej2-filemanager.min.js.map +1 -1
  12. package/dist/global/index.d.ts +9 -0
  13. package/helpers/e2e/filemanagerHelper.js +166 -183
  14. package/package.json +71 -71
  15. package/src/file-manager/actions/breadcrumb-bar.js +5 -1
  16. package/src/file-manager/actions/index.d.ts +0 -1
  17. package/src/file-manager/actions/index.js +0 -1
  18. package/src/file-manager/actions/toolbar.d.ts +0 -1
  19. package/src/file-manager/actions/toolbar.js +17 -129
  20. package/src/file-manager/base/file-manager-model.d.ts +28 -154
  21. package/src/file-manager/base/file-manager.d.ts +27 -176
  22. package/src/file-manager/base/file-manager.js +28 -244
  23. package/src/file-manager/base/interface.d.ts +3 -329
  24. package/src/file-manager/base/interface.js +1 -0
  25. package/src/file-manager/common/operations.d.ts +0 -7
  26. package/src/file-manager/common/operations.js +185 -830
  27. package/src/file-manager/common/utility.d.ts +3 -46
  28. package/src/file-manager/common/utility.js +73 -249
  29. package/src/file-manager/index.d.ts +0 -1
  30. package/src/file-manager/index.js +0 -1
  31. package/src/file-manager/layout/details-view.d.ts +0 -10
  32. package/src/file-manager/layout/details-view.js +94 -203
  33. package/src/file-manager/layout/large-icons-view.d.ts +2 -4
  34. package/src/file-manager/layout/large-icons-view.js +72 -121
  35. package/src/file-manager/layout/navigation-pane.d.ts +0 -2
  36. package/src/file-manager/layout/navigation-pane.js +73 -97
  37. package/src/file-manager/models/column-model.d.ts +5 -23
  38. package/src/file-manager/models/column.d.ts +2 -21
  39. package/src/file-manager/models/column.js +0 -6
  40. package/src/file-manager/models/default-locale.js +1 -0
  41. package/src/file-manager/models/details-view-settings-model.d.ts +1 -1
  42. package/src/file-manager/models/details-view-settings.js +3 -8
  43. package/src/file-manager/models/search-settings.d.ts +0 -5
  44. package/src/file-manager/models/toolbar-settings-model.d.ts +2 -177
  45. package/src/file-manager/models/toolbar-settings.d.ts +2 -157
  46. package/src/file-manager/models/toolbar-settings.js +2 -64
  47. package/src/file-manager/models/upload-settings-model.d.ts +0 -13
  48. package/src/file-manager/models/upload-settings.d.ts +0 -12
  49. package/src/file-manager/models/upload-settings.js +0 -3
  50. package/src/file-manager/pop-up/context-menu.d.ts +1 -2
  51. package/src/file-manager/pop-up/context-menu.js +36 -111
  52. package/src/file-manager/pop-up/dialog.d.ts +2 -1
  53. package/src/file-manager/pop-up/dialog.js +40 -19
  54. package/src/global.js +1 -1
  55. package/styles/bootstrap-dark.css +665 -371
  56. package/styles/bootstrap-dark.scss +1 -17
  57. package/styles/bootstrap.css +644 -353
  58. package/styles/bootstrap.scss +1 -17
  59. package/styles/bootstrap4.css +680 -381
  60. package/styles/bootstrap4.scss +1 -17
  61. package/styles/bootstrap5-dark.css +694 -376
  62. package/styles/bootstrap5-dark.scss +1 -17
  63. package/styles/bootstrap5.css +695 -377
  64. package/styles/bootstrap5.scss +1 -17
  65. package/styles/fabric-dark.css +642 -358
  66. package/styles/fabric-dark.scss +1 -17
  67. package/styles/fabric.css +641 -357
  68. package/styles/fabric.scss +1 -17
  69. package/styles/file-manager/_all.scss +1 -1
  70. package/styles/file-manager/_bootstrap-dark-definition.scss +2 -6
  71. package/styles/file-manager/_bootstrap-definition.scss +2 -6
  72. package/styles/file-manager/_bootstrap4-definition.scss +2 -6
  73. package/styles/file-manager/_bootstrap5-definition.scss +15 -20
  74. package/styles/file-manager/_fabric-dark-definition.scss +2 -6
  75. package/styles/file-manager/_fabric-definition.scss +2 -6
  76. package/styles/file-manager/_fluent-definition.scss +15 -18
  77. package/styles/file-manager/_highcontrast-definition.scss +2 -6
  78. package/styles/file-manager/_highcontrast-light-definition.scss +2 -6
  79. package/styles/file-manager/_layout.scss +932 -369
  80. package/styles/file-manager/_material-dark-definition.scss +2 -7
  81. package/styles/file-manager/_material-definition.scss +2 -7
  82. package/styles/file-manager/_tailwind-definition.scss +16 -20
  83. package/styles/file-manager/_theme.scss +102 -123
  84. package/styles/file-manager/bootstrap-dark.css +665 -371
  85. package/styles/file-manager/bootstrap-dark.scss +1 -2
  86. package/styles/file-manager/bootstrap.css +644 -353
  87. package/styles/file-manager/bootstrap.scss +1 -2
  88. package/styles/file-manager/bootstrap4.css +680 -381
  89. package/styles/file-manager/bootstrap4.scss +1 -2
  90. package/styles/file-manager/bootstrap5-dark.css +694 -376
  91. package/styles/file-manager/bootstrap5-dark.scss +1 -2
  92. package/styles/file-manager/bootstrap5.css +695 -377
  93. package/styles/file-manager/bootstrap5.scss +1 -2
  94. package/styles/file-manager/fabric-dark.css +642 -358
  95. package/styles/file-manager/fabric-dark.scss +1 -2
  96. package/styles/file-manager/fabric.css +641 -357
  97. package/styles/file-manager/fabric.scss +1 -2
  98. package/styles/file-manager/fluent-dark.css +641 -356
  99. package/styles/file-manager/fluent-dark.scss +1 -2
  100. package/styles/file-manager/fluent.css +640 -355
  101. package/styles/file-manager/fluent.scss +1 -2
  102. package/styles/file-manager/highcontrast-light.css +644 -354
  103. package/styles/file-manager/highcontrast-light.scss +1 -2
  104. package/styles/file-manager/highcontrast.css +647 -377
  105. package/styles/file-manager/highcontrast.scss +1 -2
  106. package/styles/file-manager/icons/_bootstrap.scss +1 -0
  107. package/styles/file-manager/icons/_bootstrap4.scss +1 -0
  108. package/styles/file-manager/icons/_fabric-dark.scss +1 -0
  109. package/styles/file-manager/icons/_fabric.scss +1 -0
  110. package/styles/file-manager/material-dark.css +671 -392
  111. package/styles/file-manager/material-dark.scss +1 -2
  112. package/styles/file-manager/material.css +654 -391
  113. package/styles/file-manager/material.scss +1 -2
  114. package/styles/file-manager/tailwind-dark.css +667 -350
  115. package/styles/file-manager/tailwind-dark.scss +1 -2
  116. package/styles/file-manager/tailwind.css +667 -350
  117. package/styles/file-manager/tailwind.scss +1 -2
  118. package/styles/fluent-dark.css +641 -356
  119. package/styles/fluent-dark.scss +1 -17
  120. package/styles/fluent.css +640 -355
  121. package/styles/fluent.scss +1 -17
  122. package/styles/highcontrast-light.css +644 -354
  123. package/styles/highcontrast-light.scss +1 -17
  124. package/styles/highcontrast.css +647 -377
  125. package/styles/highcontrast.scss +1 -17
  126. package/styles/material-dark.css +671 -392
  127. package/styles/material-dark.scss +1 -17
  128. package/styles/material.css +654 -391
  129. package/styles/material.scss +1 -17
  130. package/styles/tailwind-dark.css +667 -350
  131. package/styles/tailwind-dark.scss +1 -17
  132. package/styles/tailwind.css +667 -350
  133. package/styles/tailwind.scss +1 -17
  134. package/dist/ej2-filemanager.min.js +0 -1
  135. package/src/file-manager/actions/virtualization.d.ts +0 -93
  136. package/src/file-manager/actions/virtualization.js +0 -279
  137. package/styles/bootstrap-dark-lite.css +0 -1058
  138. package/styles/bootstrap-dark-lite.scss +0 -16
  139. package/styles/bootstrap-lite.css +0 -1040
  140. package/styles/bootstrap-lite.scss +0 -16
  141. package/styles/bootstrap4-lite.css +0 -1068
  142. package/styles/bootstrap4-lite.scss +0 -16
  143. package/styles/bootstrap5-dark-lite.css +0 -1078
  144. package/styles/bootstrap5-dark-lite.scss +0 -16
  145. package/styles/bootstrap5-lite.css +0 -1078
  146. package/styles/bootstrap5-lite.scss +0 -16
  147. package/styles/bootstrap5.3-lite.css +0 -1035
  148. package/styles/bootstrap5.3-lite.scss +0 -16
  149. package/styles/bootstrap5.3.css +0 -1603
  150. package/styles/bootstrap5.3.scss +0 -17
  151. package/styles/fabric-dark-lite.css +0 -1039
  152. package/styles/fabric-dark-lite.scss +0 -16
  153. package/styles/fabric-lite.css +0 -1039
  154. package/styles/fabric-lite.scss +0 -16
  155. package/styles/file-manager/_bds-definition.scss +0 -236
  156. package/styles/file-manager/_bigger.scss +0 -758
  157. package/styles/file-manager/_bootstrap5.3-definition.scss +0 -242
  158. package/styles/file-manager/_fluent2-definition.scss +0 -255
  159. package/styles/file-manager/_fusionnew-definition.scss +0 -241
  160. package/styles/file-manager/_material3-dark-definition.scss +0 -1
  161. package/styles/file-manager/_material3-definition.scss +0 -235
  162. package/styles/file-manager/bootstrap5.3.css +0 -1603
  163. package/styles/file-manager/bootstrap5.3.scss +0 -17
  164. package/styles/file-manager/fluent2.css +0 -1886
  165. package/styles/file-manager/fluent2.scss +0 -17
  166. package/styles/file-manager/icons/_bds.scss +0 -235
  167. package/styles/file-manager/icons/_bootstrap5.3.scss +0 -235
  168. package/styles/file-manager/icons/_fluent2.scss +0 -235
  169. package/styles/file-manager/icons/_fusionnew.scss +0 -235
  170. package/styles/file-manager/icons/_material3-dark.scss +0 -1
  171. package/styles/file-manager/icons/_material3.scss +0 -235
  172. package/styles/file-manager/material3-dark.css +0 -1633
  173. package/styles/file-manager/material3-dark.scss +0 -18
  174. package/styles/file-manager/material3.css +0 -1635
  175. package/styles/file-manager/material3.scss +0 -18
  176. package/styles/fluent-dark-lite.css +0 -1037
  177. package/styles/fluent-dark-lite.scss +0 -16
  178. package/styles/fluent-lite.css +0 -1036
  179. package/styles/fluent-lite.scss +0 -16
  180. package/styles/fluent2-lite.css +0 -1272
  181. package/styles/fluent2-lite.scss +0 -16
  182. package/styles/fluent2.css +0 -1886
  183. package/styles/fluent2.scss +0 -17
  184. package/styles/highcontrast-light-lite.css +0 -1039
  185. package/styles/highcontrast-light-lite.scss +0 -16
  186. package/styles/highcontrast-lite.css +0 -1059
  187. package/styles/highcontrast-lite.scss +0 -16
  188. package/styles/material-dark-lite.css +0 -1092
  189. package/styles/material-dark-lite.scss +0 -16
  190. package/styles/material-lite.css +0 -1097
  191. package/styles/material-lite.scss +0 -16
  192. package/styles/material3-dark-lite.css +0 -1090
  193. package/styles/material3-dark-lite.scss +0 -16
  194. package/styles/material3-dark.css +0 -1633
  195. package/styles/material3-dark.scss +0 -19
  196. package/styles/material3-lite.css +0 -1092
  197. package/styles/material3-lite.scss +0 -16
  198. package/styles/material3.css +0 -1635
  199. package/styles/material3.scss +0 -19
  200. package/styles/tailwind-dark-lite.css +0 -1060
  201. package/styles/tailwind-dark-lite.scss +0 -16
  202. package/styles/tailwind-lite.css +0 -1060
  203. package/styles/tailwind-lite.scss +0 -16
@@ -1,11 +1,9 @@
1
- import { Ajax, Fetch, createElement, select, extend, Internationalization } from '@syncfusion/ej2-base';
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, getAccessDetails } from '../common/utility';
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, showFileExtension: parent.showFileExtension
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, renameItems, actionRecords) {
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 getDateFormat in File Manager.
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 {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
- 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(parent, data, fn, event, operation, targetPath) {
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
- performReadOperation(parent, result, fn, data, event, operation, targetPath, beforeSendArgs);
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(parent, beforeSendArgs, fn, result, event, operation, targetPath) {
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
- try {
808
- if (!isNOU(result.files)) {
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 = isFileSystemData(parent) ? result.files[result.files.length - 1] : result.files[0];
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
- try {
926
- if (!isNOU(result.files)) {
927
- if (!isNOU(parent.dialogObj)) {
928
- parent.dialogObj.hide();
929
- }
930
- var args = { action: 'rename', result: result };
931
- parent.trigger('success', args);
932
- parent.renamedItem = Array.isArray(result.files) ? result.files[0] : result.files;
933
- var renameEventArgs = {
934
- newName: parent.renamedItem.name,
935
- itemData: parent.renamedItem,
936
- path: parent.path
937
- };
938
- parent.trigger('rename', renameEventArgs);
939
- if (parent.activeModule === 'navigationpane') {
940
- parent.pathId.pop();
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
- parent.itemData = [getPathObject(parent)];
952
- if (parent.breadcrumbbarModule.searchObj.value !== '') {
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
- if (parent.isFiltered) {
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 (result.error.code === '400' && parent.dialogObj && parent.dialogObj.visible) {
967
- var ele = select('#rename', parent.dialogObj.element);
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
- try {
1002
- var moveorcopyEventArgs = {
1003
- itemData: result.files,
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
- else {
1031
- onFailure(parent, result, operation);
471
+ createExtDialog(parent, 'DuplicateItems', result.error.fileExists);
472
+ if (result.error.code === '404') {
473
+ createDialog(parent, 'Error', result);
1032
474
  }
1033
475
  }
1034
- catch (error) {
1035
- handleCatchError(parent, error, operation);
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
- try {
1049
- var deleteEventArgs = {
1050
- itemData: result.files,
1051
- path: path
1052
- };
1053
- parent.trigger('delete', deleteEventArgs);
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
- onFailure(parent, result, 'delete');
507
+ var args = { action: 'delete', result: result };
508
+ parent.trigger('success', args);
1068
509
  }
1069
510
  }
1070
- catch (error) {
1071
- handleCatchError(parent, error, 'delete');
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
- try {
1088
- if (!isNOU(result.details)) {
1089
- createDialog(parent, operation, null, result.details);
1090
- var args = { action: 'details', result: result };
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
- catch (error) {
1098
- handleCatchError(parent, error, 'details');
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(parent, event, path, searchString, showHiddenItems, caseSensitive) {
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
- try {
1146
- if (!isNOU(result.files)) {
1147
- parent.notify(event, result);
1148
- var args = { action: 'search', result: result };
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
- catch (error) {
1156
- handleCatchError(parent, error, 'search');
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 ajaxSettings = {
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
- if (downloadArgs.useFormPost) {
1186
- var form = createElement('form', {
1187
- id: parent.element.id + '_downloadForm',
1188
- attrs: { action: downloadUrl, method: 'post', name: 'downloadForm', 'download': '' }
1189
- });
1190
- var input = createElement('input', {
1191
- id: parent.element.id + '_hiddenForm',
1192
- attrs: { name: 'downloadInput', value: JSON.stringify(downloadArgs.data), type: 'hidden' }
1193
- });
1194
- form.appendChild(input);
1195
- parent.element.appendChild(form);
1196
- document.forms.namedItem('downloadForm').submit();
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
- }