@syncfusion/ej2-filemanager 20.1.47 → 20.1.52-10459
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 +20 -3
- package/README.md +54 -43
- package/dist/ej2-filemanager.min.js +1 -0
- package/dist/ej2-filemanager.umd.min.js +1 -10
- package/dist/ej2-filemanager.umd.min.js.map +1 -1
- package/dist/es6/ej2-filemanager.es2015.js +2353 -659
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +2422 -709
- package/dist/es6/ej2-filemanager.es5.js.map +1 -1
- package/dist/global/ej2-filemanager.min.js +1 -10
- package/dist/global/ej2-filemanager.min.js.map +1 -1
- package/dist/global/index.d.ts +0 -9
- package/helpers/e2e/filemanagerHelper.js +183 -166
- package/package.json +71 -71
- package/src/file-manager/actions/breadcrumb-bar.js +1 -5
- package/src/file-manager/actions/index.d.ts +1 -0
- package/src/file-manager/actions/index.js +1 -0
- package/src/file-manager/actions/toolbar.d.ts +1 -0
- package/src/file-manager/actions/toolbar.js +129 -17
- package/src/file-manager/actions/virtualization.d.ts +93 -0
- package/src/file-manager/actions/virtualization.js +279 -0
- package/src/file-manager/base/file-manager-model.d.ts +154 -28
- package/src/file-manager/base/file-manager.d.ts +176 -27
- package/src/file-manager/base/file-manager.js +244 -28
- package/src/file-manager/base/interface.d.ts +329 -3
- package/src/file-manager/base/interface.js +0 -1
- package/src/file-manager/common/operations.d.ts +7 -0
- package/src/file-manager/common/operations.js +830 -185
- package/src/file-manager/common/utility.d.ts +46 -3
- package/src/file-manager/common/utility.js +249 -73
- package/src/file-manager/index.d.ts +1 -0
- package/src/file-manager/index.js +1 -0
- package/src/file-manager/layout/details-view.d.ts +10 -0
- package/src/file-manager/layout/details-view.js +203 -94
- package/src/file-manager/layout/large-icons-view.d.ts +4 -2
- package/src/file-manager/layout/large-icons-view.js +122 -73
- package/src/file-manager/layout/navigation-pane.d.ts +2 -0
- package/src/file-manager/layout/navigation-pane.js +97 -73
- package/src/file-manager/models/column-model.d.ts +23 -5
- package/src/file-manager/models/column.d.ts +21 -2
- package/src/file-manager/models/column.js +6 -0
- package/src/file-manager/models/default-locale.js +0 -1
- package/src/file-manager/models/details-view-settings-model.d.ts +1 -1
- package/src/file-manager/models/details-view-settings.js +8 -3
- package/src/file-manager/models/search-settings.d.ts +5 -0
- package/src/file-manager/models/toolbar-settings-model.d.ts +177 -2
- package/src/file-manager/models/toolbar-settings.d.ts +157 -2
- package/src/file-manager/models/toolbar-settings.js +64 -2
- package/src/file-manager/models/upload-settings-model.d.ts +13 -0
- package/src/file-manager/models/upload-settings.d.ts +12 -0
- package/src/file-manager/models/upload-settings.js +3 -0
- package/src/file-manager/pop-up/context-menu.d.ts +2 -1
- package/src/file-manager/pop-up/context-menu.js +111 -36
- package/src/file-manager/pop-up/dialog.d.ts +1 -2
- package/src/file-manager/pop-up/dialog.js +19 -40
- package/src/global.js +1 -1
- package/styles/bootstrap-dark-lite.css +1058 -0
- package/styles/bootstrap-dark-lite.scss +16 -0
- package/styles/bootstrap-dark.css +371 -665
- package/styles/bootstrap-dark.scss +17 -1
- package/styles/bootstrap-lite.css +1040 -0
- package/styles/bootstrap-lite.scss +16 -0
- package/styles/bootstrap.css +353 -644
- package/styles/bootstrap.scss +17 -1
- package/styles/bootstrap4-lite.css +1068 -0
- package/styles/bootstrap4-lite.scss +16 -0
- package/styles/bootstrap4.css +381 -680
- package/styles/bootstrap4.scss +17 -1
- package/styles/bootstrap5-dark-lite.css +1078 -0
- package/styles/bootstrap5-dark-lite.scss +16 -0
- package/styles/bootstrap5-dark.css +376 -694
- package/styles/bootstrap5-dark.scss +17 -1
- package/styles/bootstrap5-lite.css +1078 -0
- package/styles/bootstrap5-lite.scss +16 -0
- package/styles/bootstrap5.3-lite.css +1035 -0
- package/styles/bootstrap5.3-lite.scss +16 -0
- package/styles/bootstrap5.3.css +1603 -0
- package/styles/bootstrap5.3.scss +17 -0
- package/styles/bootstrap5.css +376 -694
- package/styles/bootstrap5.scss +17 -1
- package/styles/fabric-dark-lite.css +1039 -0
- package/styles/fabric-dark-lite.scss +16 -0
- package/styles/fabric-dark.css +358 -642
- package/styles/fabric-dark.scss +17 -1
- package/styles/fabric-lite.css +1039 -0
- package/styles/fabric-lite.scss +16 -0
- package/styles/fabric.css +357 -641
- package/styles/fabric.scss +17 -1
- package/styles/file-manager/_all.scss +1 -1
- package/styles/file-manager/_bds-definition.scss +236 -0
- package/styles/file-manager/_bigger.scss +758 -0
- package/styles/file-manager/_bootstrap-dark-definition.scss +6 -2
- package/styles/file-manager/_bootstrap-definition.scss +6 -2
- package/styles/file-manager/_bootstrap4-definition.scss +6 -2
- package/styles/file-manager/_bootstrap5-definition.scss +20 -15
- package/styles/file-manager/_bootstrap5.3-definition.scss +242 -0
- package/styles/file-manager/_fabric-dark-definition.scss +6 -2
- package/styles/file-manager/_fabric-definition.scss +6 -2
- package/styles/file-manager/_fluent-definition.scss +20 -16
- package/styles/file-manager/_fluent2-definition.scss +255 -0
- package/styles/file-manager/_fusionnew-definition.scss +241 -0
- package/styles/file-manager/_highcontrast-definition.scss +6 -2
- package/styles/file-manager/_highcontrast-light-definition.scss +6 -2
- package/styles/file-manager/_layout.scss +367 -921
- package/styles/file-manager/_material-dark-definition.scss +7 -2
- package/styles/file-manager/_material-definition.scss +7 -2
- package/styles/file-manager/_material3-dark-definition.scss +1 -0
- package/styles/file-manager/_material3-definition.scss +235 -0
- package/styles/file-manager/_tailwind-definition.scss +20 -16
- package/styles/file-manager/_theme.scss +126 -102
- package/styles/file-manager/bootstrap-dark.css +371 -665
- package/styles/file-manager/bootstrap-dark.scss +2 -1
- package/styles/file-manager/bootstrap.css +353 -644
- package/styles/file-manager/bootstrap.scss +2 -1
- package/styles/file-manager/bootstrap4.css +381 -680
- package/styles/file-manager/bootstrap4.scss +2 -1
- package/styles/file-manager/bootstrap5-dark.css +376 -694
- package/styles/file-manager/bootstrap5-dark.scss +2 -1
- package/styles/file-manager/bootstrap5.3.css +1603 -0
- package/styles/file-manager/bootstrap5.3.scss +17 -0
- package/styles/file-manager/bootstrap5.css +376 -694
- package/styles/file-manager/bootstrap5.scss +2 -1
- package/styles/file-manager/fabric-dark.css +358 -642
- package/styles/file-manager/fabric-dark.scss +2 -1
- package/styles/file-manager/fabric.css +357 -641
- package/styles/file-manager/fabric.scss +2 -1
- package/styles/file-manager/fluent-dark.css +359 -641
- package/styles/file-manager/fluent-dark.scss +2 -1
- package/styles/file-manager/fluent.css +358 -641
- package/styles/file-manager/fluent.scss +2 -1
- package/styles/file-manager/fluent2.css +1886 -0
- package/styles/file-manager/fluent2.scss +17 -0
- package/styles/file-manager/highcontrast-light.css +354 -644
- package/styles/file-manager/highcontrast-light.scss +2 -1
- package/styles/file-manager/highcontrast.css +377 -647
- package/styles/file-manager/highcontrast.scss +2 -1
- package/styles/file-manager/icons/_bds.scss +235 -0
- package/styles/file-manager/icons/_bootstrap.scss +0 -1
- package/styles/file-manager/icons/_bootstrap4.scss +0 -1
- package/styles/file-manager/icons/_bootstrap5.3.scss +235 -0
- package/styles/file-manager/icons/_fabric-dark.scss +0 -1
- package/styles/file-manager/icons/_fabric.scss +0 -1
- package/styles/file-manager/icons/_fluent2.scss +235 -0
- package/styles/file-manager/icons/_fusionnew.scss +235 -0
- package/styles/file-manager/icons/_material3-dark.scss +1 -0
- package/styles/file-manager/icons/_material3.scss +235 -0
- package/styles/file-manager/material-dark.css +392 -671
- package/styles/file-manager/material-dark.scss +2 -1
- package/styles/file-manager/material.css +391 -654
- package/styles/file-manager/material.scss +2 -1
- package/styles/file-manager/material3-dark.css +1633 -0
- package/styles/file-manager/material3-dark.scss +18 -0
- package/styles/file-manager/material3.css +1635 -0
- package/styles/file-manager/material3.scss +18 -0
- package/styles/file-manager/tailwind-dark.css +347 -664
- package/styles/file-manager/tailwind-dark.scss +2 -1
- package/styles/file-manager/tailwind.css +347 -664
- package/styles/file-manager/tailwind.scss +2 -1
- package/styles/fluent-dark-lite.css +1037 -0
- package/styles/fluent-dark-lite.scss +16 -0
- package/styles/fluent-dark.css +359 -641
- package/styles/fluent-dark.scss +17 -1
- package/styles/fluent-lite.css +1036 -0
- package/styles/fluent-lite.scss +16 -0
- package/styles/fluent.css +358 -641
- package/styles/fluent.scss +17 -1
- package/styles/fluent2-lite.css +1272 -0
- package/styles/fluent2-lite.scss +16 -0
- package/styles/fluent2.css +1886 -0
- package/styles/fluent2.scss +17 -0
- package/styles/highcontrast-light-lite.css +1039 -0
- package/styles/highcontrast-light-lite.scss +16 -0
- package/styles/highcontrast-light.css +354 -644
- package/styles/highcontrast-light.scss +17 -1
- package/styles/highcontrast-lite.css +1059 -0
- package/styles/highcontrast-lite.scss +16 -0
- package/styles/highcontrast.css +377 -647
- package/styles/highcontrast.scss +17 -1
- package/styles/material-dark-lite.css +1092 -0
- package/styles/material-dark-lite.scss +16 -0
- package/styles/material-dark.css +392 -671
- package/styles/material-dark.scss +17 -1
- package/styles/material-lite.css +1097 -0
- package/styles/material-lite.scss +16 -0
- package/styles/material.css +391 -654
- package/styles/material.scss +17 -1
- package/styles/material3-dark-lite.css +1090 -0
- package/styles/material3-dark-lite.scss +16 -0
- package/styles/material3-dark.css +1633 -0
- package/styles/material3-dark.scss +19 -0
- package/styles/material3-lite.css +1092 -0
- package/styles/material3-lite.scss +16 -0
- package/styles/material3.css +1635 -0
- package/styles/material3.scss +19 -0
- package/styles/tailwind-dark-lite.css +1060 -0
- package/styles/tailwind-dark-lite.scss +16 -0
- package/styles/tailwind-dark.css +347 -664
- package/styles/tailwind-dark.scss +17 -1
- package/styles/tailwind-lite.css +1060 -0
- package/styles/tailwind-lite.scss +16 -0
- package/styles/tailwind.css +347 -664
- package/styles/tailwind.scss +17 -1
- package/CHANGELOG.md +0 -404
@@ -1,10 +1,47 @@
|
|
1
1
|
import * as CLS from '../base/classes';
|
2
2
|
import * as events from '../base/constant';
|
3
|
-
import { read, paste, Search, filter, Download, Delete } from '../common/operations';
|
4
|
-
import { getValue, setValue, isNullOrUndefined as isNOU, matches, select, createElement } from '@syncfusion/ej2-base';
|
3
|
+
import { read, paste, Search, filter, Download, Delete, isFileSystemData } from '../common/operations';
|
4
|
+
import { getValue, setValue, isNullOrUndefined as isNOU, matches, select, createElement, isNullOrUndefined } from '@syncfusion/ej2-base';
|
5
5
|
import { closest, detach } from '@syncfusion/ej2-base';
|
6
6
|
import { DataManager, Query } from '@syncfusion/ej2-data';
|
7
7
|
import { createDialog } from '../pop-up/dialog';
|
8
|
+
/**
|
9
|
+
* Utility function to compare two strings in a way similar to Windows Explorer.
|
10
|
+
* Files and folders are sorted separately, with folders coming before files.
|
11
|
+
*
|
12
|
+
* @param {string} reference - The first string to compare. This could be a file or folder name.
|
13
|
+
* @param {string} comparer - The second string to compare. This could be a file or folder name.
|
14
|
+
* @returns {number} - A negative number if `reference` should come before `comparer`, a positive number if `comparer` should come before `reference`, and 0 if they are considered equal.
|
15
|
+
*/
|
16
|
+
export function sortComparer(reference, comparer) {
|
17
|
+
// Check if reference and comparer are files or folders
|
18
|
+
var referenceIsFile = /\.\S+/.test(reference);
|
19
|
+
var comparerIsFile = /\.\S+/.test(comparer);
|
20
|
+
// If one is a file and the other is a folder, the folder should come first
|
21
|
+
if (referenceIsFile && !comparerIsFile) {
|
22
|
+
return 1;
|
23
|
+
}
|
24
|
+
if (!referenceIsFile && comparerIsFile) {
|
25
|
+
return -1;
|
26
|
+
}
|
27
|
+
var referenceParts = [];
|
28
|
+
var comparerParts = [];
|
29
|
+
(reference + '').replace(/(\d+)|(\D+)/g, function (_, $1, $2) { referenceParts.push([$1 || Infinity, $2 || '']); return ''; });
|
30
|
+
(comparer + '').replace(/(\d+)|(\D+)/g, function (_, $1, $2) { comparerParts.push([$1 || Infinity, $2 || '']); return ''; });
|
31
|
+
// Compare each part of reference and comparer
|
32
|
+
while (referenceParts.length && comparerParts.length) {
|
33
|
+
var referencePart = referenceParts.shift();
|
34
|
+
var comparerPart = comparerParts.shift();
|
35
|
+
if (referencePart && comparerPart) {
|
36
|
+
var comparisonResult = referencePart[0] - comparerPart[0] ||
|
37
|
+
referencePart[1].localeCompare(comparerPart[1]);
|
38
|
+
if (comparisonResult) {
|
39
|
+
return comparisonResult;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
return referenceParts.length - comparerParts.length;
|
44
|
+
}
|
8
45
|
/**
|
9
46
|
* Utility file for common actions
|
10
47
|
*
|
@@ -14,7 +51,6 @@ import { createDialog } from '../pop-up/dialog';
|
|
14
51
|
* @returns {void}
|
15
52
|
* @private
|
16
53
|
*/
|
17
|
-
// eslint-disable-next-line
|
18
54
|
export function updatePath(node, data, instance) {
|
19
55
|
var text = getValue('name', data);
|
20
56
|
var id = node.getAttribute('data-id');
|
@@ -34,8 +70,8 @@ export function updatePath(node, data, instance) {
|
|
34
70
|
*/
|
35
71
|
export function getPath(element, text, hasId) {
|
36
72
|
var matched = getParents(element, text, false, hasId);
|
37
|
-
var path =
|
38
|
-
var len = matched.length - (
|
73
|
+
var path = '/';
|
74
|
+
var len = matched.length - (2);
|
39
75
|
for (var i = len; i >= 0; i--) {
|
40
76
|
path += matched[i] + '/';
|
41
77
|
}
|
@@ -107,11 +143,10 @@ export function getParents(element, text, isId, hasId) {
|
|
107
143
|
*/
|
108
144
|
export function generatePath(parent) {
|
109
145
|
var key = parent.hasId ? 'id' : 'name';
|
110
|
-
var newPath =
|
111
|
-
var i =
|
146
|
+
var newPath = '/';
|
147
|
+
var i = 1;
|
112
148
|
for (i; i < parent.pathId.length; i++) {
|
113
|
-
|
114
|
-
var data = getValue(parent.pathId[i], parent.feParent);
|
149
|
+
var data = getValue(parent.pathId[parseInt(i.toString(), 10)], parent.feParent);
|
115
150
|
newPath += getValue(key, data) + '/';
|
116
151
|
}
|
117
152
|
parent.setProperties({ path: newPath }, true);
|
@@ -249,6 +284,22 @@ export function searchWordHandler(parent, value, isLayoutChange) {
|
|
249
284
|
if (value.length === 0 && !parent.isFiltered) {
|
250
285
|
parent.notify(events.pathColumn, { args: parent });
|
251
286
|
}
|
287
|
+
if (isFileSystemData(parent)) {
|
288
|
+
if (value === '') {
|
289
|
+
parent.itemData = parent.fileSystemData;
|
290
|
+
read(parent, events.layoutChange, parent.path);
|
291
|
+
}
|
292
|
+
else {
|
293
|
+
parent.searchSettings.filterType = isNOU(parent.searchSettings.filterType) ? 'contains' : parent.searchSettings.filterType;
|
294
|
+
var filteredData = parent.fileSystemData.filter(function (obj) { return obj.parentId !== null; });
|
295
|
+
var data = new DataManager(filteredData).
|
296
|
+
executeLocal(new Query().where('name', parent.searchSettings.filterType, value, parent.searchSettings.ignoreCase));
|
297
|
+
var searchValue = parent.searchSettings.ignoreCase ? value.toLowerCase() : value;
|
298
|
+
parent.itemData = data;
|
299
|
+
Search(parent, isLayoutChange ? events.layoutChange : events.search, parent.path, searchValue, parent.showHiddenItems, !parent.searchSettings.ignoreCase);
|
300
|
+
}
|
301
|
+
return;
|
302
|
+
}
|
252
303
|
if (parent.searchSettings.filterType === 'startsWith') {
|
253
304
|
searchWord = value + '*';
|
254
305
|
}
|
@@ -268,7 +319,7 @@ export function searchWordHandler(parent, value, isLayoutChange) {
|
|
268
319
|
else {
|
269
320
|
if (!parent.isFiltered) {
|
270
321
|
if (parent.isSortByClicked) {
|
271
|
-
parent.notify(events.layoutChange, { files: parent.largeiconsviewModule.
|
322
|
+
parent.notify(events.layoutChange, { files: (parent.oldView === 'Details') ? parent.detailsviewModule.gridObj.dataSource : parent.largeiconsviewModule.allItems });
|
272
323
|
parent.isSortByClicked = false;
|
273
324
|
}
|
274
325
|
else {
|
@@ -289,6 +340,7 @@ export function searchWordHandler(parent, value, isLayoutChange) {
|
|
289
340
|
* @private
|
290
341
|
*/
|
291
342
|
export function updateLayout(parent, view) {
|
343
|
+
parent.oldView = parent.view;
|
292
344
|
parent.setProperties({ view: view }, true);
|
293
345
|
if (parent.breadcrumbbarModule.searchObj.element.value !== '' || parent.isFiltered) {
|
294
346
|
parent.layoutSelectedItems = parent.selectedItems;
|
@@ -365,7 +417,6 @@ export function openAction(parent) {
|
|
365
417
|
* @returns {Object} - returns the path data.
|
366
418
|
* @private
|
367
419
|
*/
|
368
|
-
// eslint-disable-next-line
|
369
420
|
export function getPathObject(parent) {
|
370
421
|
return getValue(parent.pathId[parent.pathId.length - 1], parent.feParent);
|
371
422
|
}
|
@@ -407,7 +458,6 @@ export function cutFiles(parent) {
|
|
407
458
|
* @returns {string} - returns the file type.
|
408
459
|
* @private
|
409
460
|
*/
|
410
|
-
// eslint-disable-next-line
|
411
461
|
export function fileType(file) {
|
412
462
|
var isFile = getValue('isFile', file);
|
413
463
|
if (!isFile) {
|
@@ -450,21 +500,29 @@ export function fileType(file) {
|
|
450
500
|
* @returns {string} - returns the image url.
|
451
501
|
* @private
|
452
502
|
*/
|
453
|
-
// eslint-disable-next-line
|
454
503
|
export function getImageUrl(parent, item) {
|
504
|
+
var imgUrl = isFileSystemData(parent) ? getValue('imageUrl', item) : '';
|
505
|
+
if (isFileSystemData(parent)) {
|
506
|
+
var eventArgs_1 = {
|
507
|
+
fileDetails: [item],
|
508
|
+
imageUrl: imgUrl
|
509
|
+
};
|
510
|
+
parent.trigger('beforeImageLoad', eventArgs_1);
|
511
|
+
return eventArgs_1.imageUrl;
|
512
|
+
}
|
455
513
|
var baseUrl = parent.ajaxSettings.getImageUrl ? parent.ajaxSettings.getImageUrl : parent.ajaxSettings.url;
|
456
|
-
var
|
514
|
+
var pathUrl = (baseUrl.indexOf('?') !== -1) ? '&path=' : '?path=';
|
457
515
|
var fileName = encodeURIComponent(getValue('name', item));
|
458
516
|
var fPath = getValue('filterPath', item);
|
459
517
|
if (parent.hasId) {
|
460
518
|
var imgId = getValue('id', item);
|
461
|
-
imgUrl = baseUrl +
|
519
|
+
imgUrl = baseUrl + pathUrl + parent.path + '&id=' + imgId;
|
462
520
|
}
|
463
521
|
else if (!isNOU(fPath)) {
|
464
|
-
imgUrl = baseUrl +
|
522
|
+
imgUrl = baseUrl + pathUrl + encodeURIComponent(fPath.replace(/\\/g, '/')) + fileName;
|
465
523
|
}
|
466
524
|
else {
|
467
|
-
imgUrl = baseUrl +
|
525
|
+
imgUrl = baseUrl + pathUrl + parent.path + fileName;
|
468
526
|
}
|
469
527
|
imgUrl = imgUrl + '&time=' + (new Date().getTime()).toString();
|
470
528
|
var eventArgs = {
|
@@ -484,7 +542,6 @@ export function getImageUrl(parent, item) {
|
|
484
542
|
* @returns {string} - returns the image url.
|
485
543
|
* @private
|
486
544
|
*/
|
487
|
-
// eslint-disable-next-line
|
488
545
|
export function getFullPath(parent, data, path) {
|
489
546
|
var filePath = getValue(parent.hasId ? 'id' : 'name', data) + '/';
|
490
547
|
var fPath = getValue(parent.hasId ? 'filterId' : 'filterPath', data);
|
@@ -503,7 +560,6 @@ export function getFullPath(parent, data, path) {
|
|
503
560
|
* @returns {string} - returns the name.
|
504
561
|
* @private
|
505
562
|
*/
|
506
|
-
// eslint-disable-next-line
|
507
563
|
export function getName(parent, data) {
|
508
564
|
var name = getValue('name', data);
|
509
565
|
var fPath = getValue('filterPath', data);
|
@@ -521,19 +577,17 @@ export function getName(parent, data) {
|
|
521
577
|
* @returns {Object[]} - returns the sorted data.
|
522
578
|
* @private
|
523
579
|
*/
|
524
|
-
// eslint-disable-next-line
|
525
580
|
export function getSortedData(parent, items) {
|
526
581
|
if (items.length === 0) {
|
527
582
|
return items;
|
528
583
|
}
|
529
584
|
var query;
|
530
|
-
if (parent.sortOrder !== 'None') {
|
585
|
+
if (parent.sortOrder !== 'None' && !isNullOrUndefined(parent.sortOrder)) {
|
531
586
|
query = new Query().sortBy(parent.sortBy, parent.sortOrder.toLowerCase(), true).group('isFile');
|
532
587
|
}
|
533
588
|
else {
|
534
589
|
query = new Query().group('isFile');
|
535
590
|
}
|
536
|
-
// eslint-disable-next-line
|
537
591
|
var lists = new DataManager(items).executeLocal(query);
|
538
592
|
return getValue('records', lists);
|
539
593
|
}
|
@@ -546,12 +600,9 @@ export function getSortedData(parent, items) {
|
|
546
600
|
* @returns {Object} - returns the sorted data.
|
547
601
|
* @private
|
548
602
|
*/
|
549
|
-
// eslint-disable-next-line
|
550
603
|
export function getObject(parent, key, value) {
|
551
|
-
// eslint-disable-next-line
|
552
604
|
var currFiles = getValue(parent.pathId[parent.pathId.length - 1], parent.feFiles);
|
553
605
|
var query = new Query().where(key, 'equal', value);
|
554
|
-
// eslint-disable-next-line
|
555
606
|
var lists = new DataManager(currFiles).executeLocal(query);
|
556
607
|
return lists[0];
|
557
608
|
}
|
@@ -616,7 +667,6 @@ export function createEmptyElement(parent, element, args) {
|
|
616
667
|
* @returns {Object[]} - returns the sorted data.
|
617
668
|
* @private
|
618
669
|
*/
|
619
|
-
// eslint-disable-next-line
|
620
670
|
export function getDirectories(files) {
|
621
671
|
return new DataManager(files).executeLocal(new Query().where(events.isFile, 'equal', false, false));
|
622
672
|
}
|
@@ -629,7 +679,6 @@ export function getDirectories(files) {
|
|
629
679
|
* @private
|
630
680
|
*/
|
631
681
|
export function setNodeId(result, rootId) {
|
632
|
-
// eslint-disable-next-line
|
633
682
|
var dirs = getDirectories(result.files);
|
634
683
|
for (var i = 0, len = dirs.length; i < len; i++) {
|
635
684
|
setValue('_fm_id', rootId + '_' + i, dirs[i]);
|
@@ -639,14 +688,20 @@ export function setNodeId(result, rootId) {
|
|
639
688
|
* set the date object
|
640
689
|
*
|
641
690
|
* @param {Object[]} args - specifies the file object.
|
691
|
+
* @param {Internationalization} localeString - The internationalization object for formatting dates.
|
692
|
+
* @param {string} dateFormat - The date format string.
|
642
693
|
* @returns {void}
|
643
694
|
* @private
|
644
695
|
*/
|
645
|
-
|
646
|
-
export function setDateObject(args) {
|
696
|
+
export function setDateObject(args, localeString, dateFormat) {
|
647
697
|
for (var i = 0; i < args.length; i++) {
|
648
|
-
|
649
|
-
|
698
|
+
var createdDate = new Date(getValue('dateCreated', args[i]));
|
699
|
+
var modifiedDate = new Date(getValue('dateModified', args[i]));
|
700
|
+
if (isNOU(dateFormat)) {
|
701
|
+
dateFormat = 'MM/dd/yyyy';
|
702
|
+
}
|
703
|
+
setValue('_fm_created', localeString.formatDate(createdDate, { format: dateFormat }), args[i]);
|
704
|
+
setValue('_fm_modified', localeString.formatDate(modifiedDate, { format: dateFormat }), args[i]);
|
650
705
|
}
|
651
706
|
}
|
652
707
|
/**
|
@@ -692,7 +747,7 @@ export function sortbyClickHandler(parent, args) {
|
|
692
747
|
tick = false;
|
693
748
|
}
|
694
749
|
if (!tick) {
|
695
|
-
parent.sortBy = getSortField(args.item.id);
|
750
|
+
parent.sortBy = getSortField(args.item.id, parent);
|
696
751
|
}
|
697
752
|
else {
|
698
753
|
parent.sortOrder = getSortField(args.item.id);
|
@@ -704,6 +759,7 @@ export function sortbyClickHandler(parent, args) {
|
|
704
759
|
}
|
705
760
|
else {
|
706
761
|
parent.notify(events.sortColumn, { module: 'detailsview' });
|
762
|
+
parent.isSortByClicked = false;
|
707
763
|
}
|
708
764
|
}
|
709
765
|
if (parent.view === 'LargeIcons') {
|
@@ -715,15 +771,28 @@ export function sortbyClickHandler(parent, args) {
|
|
715
771
|
* Gets the sorted fields
|
716
772
|
*
|
717
773
|
* @param {string} id - specifies the id.
|
774
|
+
* @param {IFileManager} [parent] - optional parameter representing the parent IFileManager.
|
718
775
|
* @returns {string} - returns the sorted fields
|
719
776
|
* @private
|
720
777
|
*/
|
721
|
-
export function getSortField(id) {
|
778
|
+
export function getSortField(id, parent) {
|
722
779
|
var text = id.substring(id.lastIndexOf('_') + 1);
|
723
780
|
var field = text;
|
781
|
+
var column;
|
782
|
+
if (parent) {
|
783
|
+
column = parent.detailsViewSettings.columns;
|
784
|
+
}
|
724
785
|
switch (text) {
|
725
786
|
case 'date':
|
726
|
-
|
787
|
+
for (var i = 0, len = column.length; i < len; i++) {
|
788
|
+
if (column[i].field === 'dateModified' || column[i].field === 'dateCreated') {
|
789
|
+
field = column[i].field;
|
790
|
+
break;
|
791
|
+
}
|
792
|
+
else {
|
793
|
+
field = '_fm_modified';
|
794
|
+
}
|
795
|
+
}
|
727
796
|
break;
|
728
797
|
case 'ascending':
|
729
798
|
field = 'Ascending';
|
@@ -748,19 +817,22 @@ export function getSortField(id) {
|
|
748
817
|
export function setNextPath(parent, path) {
|
749
818
|
var currfolders = path.split('/');
|
750
819
|
var folders = parent.originalPath.split('/');
|
751
|
-
// eslint-disable-next-line
|
752
820
|
var root = getValue(parent.pathId[0], parent.feParent);
|
753
821
|
var key = isNOU(getValue('id', root)) ? 'name' : 'id';
|
754
822
|
for (var i = currfolders.length - 1, len = folders.length - 1; i < len; i++) {
|
755
823
|
var eventName = (folders[i + 1] === '') ? events.finalizeEnd : events.initialEnd;
|
756
824
|
var newPath = (folders[i] === '') ? '/' : (parent.path + folders[i] + '/');
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
763
|
-
|
825
|
+
var data = getObject(parent, key, folders[parseInt(i.toString(), 10)]);
|
826
|
+
if (!isNullOrUndefined(data)) {
|
827
|
+
var id = getValue('_fm_id', data);
|
828
|
+
parent.setProperties({ path: newPath }, true);
|
829
|
+
parent.pathId.push(id);
|
830
|
+
parent.itemData = [data];
|
831
|
+
parent.pathNames.push(getValue('name', data));
|
832
|
+
}
|
833
|
+
else {
|
834
|
+
parent.originalPath = newPath;
|
835
|
+
}
|
764
836
|
read(parent, eventName, parent.path);
|
765
837
|
break;
|
766
838
|
}
|
@@ -773,10 +845,28 @@ export function setNextPath(parent, path) {
|
|
773
845
|
* @returns {void}
|
774
846
|
* @private
|
775
847
|
*/
|
776
|
-
// eslint-disable-next-line
|
777
848
|
export function openSearchFolder(parent, data) {
|
778
|
-
parent.notify(events.clearPathInit, { selectedNode: parent.pathId[parent.pathId.length - 1] });
|
779
849
|
parent.originalPath = getFullPath(parent, data, parent.path);
|
850
|
+
var root = getValue(parent.pathId[0], parent.feParent);
|
851
|
+
var isRoot = getValue('_fm_id', parent.itemData[0]) === 'fe_tree';
|
852
|
+
var key = isNOU(getValue('id', root)) ? 'name' : 'id';
|
853
|
+
var searchData = getObject(parent, key, isFileSystemData(parent) ? getValue('id', data) : getValue('name', data));
|
854
|
+
if (isNullOrUndefined(searchData)) {
|
855
|
+
if (!isRoot) {
|
856
|
+
parent.notify(events.clearPathInit, { selectedNode: parent.pathId[parent.pathId.length - 1] });
|
857
|
+
}
|
858
|
+
else {
|
859
|
+
setNextPath(parent, parent.path);
|
860
|
+
return;
|
861
|
+
}
|
862
|
+
}
|
863
|
+
else {
|
864
|
+
var id = getValue('_fm_id', searchData);
|
865
|
+
parent.setProperties({ path: parent.originalPath }, true);
|
866
|
+
parent.pathId.push(id);
|
867
|
+
parent.itemData = [searchData];
|
868
|
+
parent.pathNames.push(getValue('name', searchData));
|
869
|
+
}
|
780
870
|
read(parent, (parent.path !== parent.originalPath) ? events.initialEnd : events.finalizeEnd, parent.path);
|
781
871
|
}
|
782
872
|
/**
|
@@ -790,7 +880,9 @@ export function pasteHandler(parent) {
|
|
790
880
|
parent.isDragDrop = false;
|
791
881
|
if (parent.selectedNodes.length !== 0 && parent.enablePaste) {
|
792
882
|
var path = (parent.folderPath === '') ? parent.path : parent.folderPath;
|
793
|
-
|
883
|
+
if (parent.activeModule === 'navigationpane' && !parent.selectedNodes[0].includes('/')) {
|
884
|
+
parent.targetPath = getValue('filterPath', parent.actionRecords[0]).replace(/\\/g, '/');
|
885
|
+
}
|
794
886
|
var subFolder = validateSubFolder(parent, parent.actionRecords, path, parent.path);
|
795
887
|
if (!subFolder) {
|
796
888
|
if ((parent.fileAction === 'move' && parent.targetPath !== path) || parent.fileAction === 'copy') {
|
@@ -801,6 +893,15 @@ export function pasteHandler(parent) {
|
|
801
893
|
parent.enablePaste = false;
|
802
894
|
parent.notify(events.hidePaste, {});
|
803
895
|
removeBlur(parent);
|
896
|
+
var result = {
|
897
|
+
files: null,
|
898
|
+
error: {
|
899
|
+
code: '402',
|
900
|
+
message: getLocaleText(parent, 'Same-Folder-Error'),
|
901
|
+
fileExists: null
|
902
|
+
}
|
903
|
+
};
|
904
|
+
createDialog(parent, 'Error', result);
|
804
905
|
}
|
805
906
|
}
|
806
907
|
}
|
@@ -815,7 +916,6 @@ export function pasteHandler(parent) {
|
|
815
916
|
* @returns {boolean} - returns the validated sub folder.
|
816
917
|
* @private
|
817
918
|
*/
|
818
|
-
// eslint-disable-next-line
|
819
919
|
export function validateSubFolder(parent, data, dropPath, dragPath) {
|
820
920
|
var subFolder = false;
|
821
921
|
for (var i = 0; i < data.length; i++) {
|
@@ -836,7 +936,8 @@ export function validateSubFolder(parent, data, dropPath, dragPath) {
|
|
836
936
|
}
|
837
937
|
}
|
838
938
|
else {
|
839
|
-
var
|
939
|
+
var name_1 = parent.dragData[i] ? parent.dragData[i].name : null;
|
940
|
+
var srcData = isFileSystemData(parent) ? name_1 : parent.dragNodes[i];
|
840
941
|
var len = 0;
|
841
942
|
if (srcData) {
|
842
943
|
len = srcData.lastIndexOf('/');
|
@@ -907,15 +1008,15 @@ export function getParentPath(oldPath) {
|
|
907
1008
|
*/
|
908
1009
|
export function getDirectoryPath(parent, args) {
|
909
1010
|
var filePath = getValue(parent.hasId ? 'id' : 'name', args.cwd) + '/';
|
910
|
-
var fPath = getValue(parent.hasId ? 'filterId' : 'filterPath', args.cwd);
|
1011
|
+
var fPath = getValue(parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? 'filterId' : 'filterPath', args.cwd);
|
911
1012
|
if (!isNOU(fPath)) {
|
912
1013
|
if (fPath === '') {
|
913
|
-
return parent.hasId ? filePath : '/';
|
1014
|
+
return parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? filePath : '/';
|
914
1015
|
}
|
915
1016
|
return fPath.replace(/\\/g, '/') + filePath;
|
916
1017
|
}
|
917
1018
|
else {
|
918
|
-
return parent.path + filePath;
|
1019
|
+
return isFileSystemData(parent) ? filePath : parent.path + filePath;
|
919
1020
|
}
|
920
1021
|
}
|
921
1022
|
/**
|
@@ -983,6 +1084,11 @@ export function readDropPath(parent) {
|
|
983
1084
|
else {
|
984
1085
|
if (parent.navigationpaneModule) {
|
985
1086
|
var node = select('[data-uid="' + pathId + '"]', parent.navigationpaneModule.treeObj.element);
|
1087
|
+
if (!node) {
|
1088
|
+
var liElement = document.querySelector('[data-id = "' + getValue('id', parent.dropData) + '"]');
|
1089
|
+
pathId = liElement.getAttribute('data-uid');
|
1090
|
+
node = select('[data-uid="' + pathId + '"]', parent.navigationpaneModule.treeObj.element);
|
1091
|
+
}
|
986
1092
|
updatePath(node, parent.dropData, parent);
|
987
1093
|
}
|
988
1094
|
read(parent, events.dropPath, parent.dropPath);
|
@@ -996,11 +1102,8 @@ export function readDropPath(parent) {
|
|
996
1102
|
* @returns {object} - returns the duplicated path.
|
997
1103
|
* @private
|
998
1104
|
*/
|
999
|
-
// eslint-disable-next-line
|
1000
1105
|
export function getDuplicateData(parent, name) {
|
1001
|
-
// eslint-disable-next-line
|
1002
1106
|
var data = null;
|
1003
|
-
// eslint-disable-next-line
|
1004
1107
|
var records = parent.isDragDrop ? parent.dragData : parent.actionRecords;
|
1005
1108
|
for (var i = 0; i < records.length; i++) {
|
1006
1109
|
if (getValue('name', records[i]) === name) {
|
@@ -1180,6 +1283,30 @@ export function removeItemClass(parent, value) {
|
|
1180
1283
|
ele[i].classList.remove(value);
|
1181
1284
|
}
|
1182
1285
|
}
|
1286
|
+
/**
|
1287
|
+
* Remove item class handler
|
1288
|
+
*
|
1289
|
+
* @param {Element} scrollParent - specifies the scrolling target.
|
1290
|
+
* @param {IFileManager} parent - specifies the parent.
|
1291
|
+
* @param {string} nodeClass - specifies the node class.
|
1292
|
+
* @param {number} screenY - specifies the vertical (Y) coordinate of the mouse cursor position relative to the entire screen.
|
1293
|
+
* @param {number} clientY - specifies the vertical (Y) coordinate of the mouse cursor position relative to the target element.
|
1294
|
+
* @returns {void}
|
1295
|
+
* @private
|
1296
|
+
*/
|
1297
|
+
export function scrollHandler(scrollParent, parent, nodeClass, screenY, clientY) {
|
1298
|
+
var position;
|
1299
|
+
var elementData = scrollParent.getBoundingClientRect();
|
1300
|
+
var node = select('.' + nodeClass, scrollParent);
|
1301
|
+
if ((screenY >= (elementData.top + scrollParent.clientHeight - 30)) && !isNullOrUndefined(node)) {
|
1302
|
+
position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
|
1303
|
+
scrollParent.scrollBy(0, position);
|
1304
|
+
}
|
1305
|
+
if (!isNullOrUndefined(node) && (clientY <= (elementData.top + 30))) {
|
1306
|
+
position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
|
1307
|
+
scrollParent.scrollBy(0, -position);
|
1308
|
+
}
|
1309
|
+
}
|
1183
1310
|
/**
|
1184
1311
|
* Dragging handler
|
1185
1312
|
*
|
@@ -1200,12 +1327,15 @@ export function draggingHandler(parent, args) {
|
|
1200
1327
|
}
|
1201
1328
|
removeBlur(parent, 'hover');
|
1202
1329
|
var node = null;
|
1330
|
+
var scrollParent;
|
1203
1331
|
if (parent.targetModule === 'navigationpane') {
|
1204
1332
|
node = closest(args.target, 'li');
|
1205
1333
|
node.classList.add(CLS.HOVER, CLS.DROP_FOLDER);
|
1206
1334
|
canDrop = true;
|
1207
1335
|
/* istanbul ignore next */
|
1208
1336
|
parent.treeExpandTimer = window.setTimeout(function () { parent.notify(events.dragging, args); }, 800);
|
1337
|
+
scrollParent = parent.navigationpaneModule.treeObj.element.parentElement;
|
1338
|
+
scrollHandler(scrollParent, parent, 'e-level-2', args.event.screenY, args.event.y);
|
1209
1339
|
}
|
1210
1340
|
else if (parent.targetModule === 'detailsview') {
|
1211
1341
|
node = closest(args.target, 'tr');
|
@@ -1216,6 +1346,8 @@ export function draggingHandler(parent, args) {
|
|
1216
1346
|
node.classList.add(CLS.DROP_FILE);
|
1217
1347
|
}
|
1218
1348
|
canDrop = true;
|
1349
|
+
scrollParent = parent.detailsviewModule.gridObj.element.querySelector('.e-content');
|
1350
|
+
scrollHandler(scrollParent, parent, 'e-row', args.event.screenY, args.event.y);
|
1219
1351
|
}
|
1220
1352
|
else if (parent.targetModule === 'largeiconsview') {
|
1221
1353
|
node = closest(args.target, 'li');
|
@@ -1223,6 +1355,8 @@ export function draggingHandler(parent, args) {
|
|
1223
1355
|
node.classList.add(CLS.HOVER, CLS.DROP_FOLDER);
|
1224
1356
|
}
|
1225
1357
|
canDrop = true;
|
1358
|
+
scrollParent = parent.largeiconsviewModule.element.firstElementChild;
|
1359
|
+
scrollHandler(scrollParent, parent, 'e-large-icon', args.event.screenY, args.event.y);
|
1226
1360
|
/* istanbul ignore next */
|
1227
1361
|
}
|
1228
1362
|
else if (parent.targetModule === 'breadcrumbbar') {
|
@@ -1241,7 +1375,6 @@ export function draggingHandler(parent, args) {
|
|
1241
1375
|
* @private
|
1242
1376
|
*/
|
1243
1377
|
// Ignored the message key value in permission object
|
1244
|
-
// eslint-disable-next-line
|
1245
1378
|
export function objectToString(data) {
|
1246
1379
|
var str = '';
|
1247
1380
|
var keys = Object.keys(data);
|
@@ -1260,7 +1393,6 @@ export function objectToString(data) {
|
|
1260
1393
|
* @returns {string} returns the item name.
|
1261
1394
|
* @private
|
1262
1395
|
*/
|
1263
|
-
// eslint-disable-next-line
|
1264
1396
|
export function getItemName(parent, data) {
|
1265
1397
|
if (parent.hasId) {
|
1266
1398
|
return getValue('id', data);
|
@@ -1275,7 +1407,6 @@ export function getItemName(parent, data) {
|
|
1275
1407
|
* @returns {void}
|
1276
1408
|
* @private
|
1277
1409
|
*/
|
1278
|
-
// eslint-disable-next-line
|
1279
1410
|
export function updateRenamingData(parent, data) {
|
1280
1411
|
parent.itemData = [data];
|
1281
1412
|
parent.currentItemText = getValue('name', data);
|
@@ -1306,7 +1437,6 @@ export function doRename(parent) {
|
|
1306
1437
|
* @private
|
1307
1438
|
*/
|
1308
1439
|
export function doDownload(parent) {
|
1309
|
-
// eslint-disable-next-line
|
1310
1440
|
var items = parent.itemData;
|
1311
1441
|
for (var i = 0; i < items.length; i++) {
|
1312
1442
|
if (!hasDownloadAccess(items[i])) {
|
@@ -1327,7 +1457,6 @@ export function doDownload(parent) {
|
|
1327
1457
|
* @returns {void}
|
1328
1458
|
* @private
|
1329
1459
|
*/
|
1330
|
-
// eslint-disable-next-line
|
1331
1460
|
export function doDeleteFiles(parent, data, newIds) {
|
1332
1461
|
for (var i = 0; i < data.length; i++) {
|
1333
1462
|
if (!hasEditAccess(data[i])) {
|
@@ -1348,7 +1477,6 @@ export function doDeleteFiles(parent, data, newIds) {
|
|
1348
1477
|
* @returns {void}
|
1349
1478
|
* @private
|
1350
1479
|
*/
|
1351
|
-
// eslint-disable-next-line
|
1352
1480
|
export function doDownloadFiles(parent, data, newIds) {
|
1353
1481
|
for (var i = 0; i < data.length; i++) {
|
1354
1482
|
if (!hasDownloadAccess(data[i])) {
|
@@ -1370,7 +1498,6 @@ export function doDownloadFiles(parent, data, newIds) {
|
|
1370
1498
|
* @returns {void}
|
1371
1499
|
* @private
|
1372
1500
|
*/
|
1373
|
-
// eslint-disable-next-line
|
1374
1501
|
export function createDeniedDialog(parent, data, action) {
|
1375
1502
|
var message = getValue('message', getValue('permission', data));
|
1376
1503
|
if (message === '') {
|
@@ -1392,7 +1519,6 @@ export function createDeniedDialog(parent, data, action) {
|
|
1392
1519
|
* @returns {string} - returns accesses classes.
|
1393
1520
|
* @private
|
1394
1521
|
*/
|
1395
|
-
// eslint-disable-next-line
|
1396
1522
|
export function getAccessClass(data) {
|
1397
1523
|
return !hasReadAccess(data) ? 'e-fe-locked e-fe-hidden' : 'e-fe-locked';
|
1398
1524
|
}
|
@@ -1403,9 +1529,7 @@ export function getAccessClass(data) {
|
|
1403
1529
|
* @returns {boolean} - returns read access.
|
1404
1530
|
* @private
|
1405
1531
|
*/
|
1406
|
-
// eslint-disable-next-line
|
1407
1532
|
export function hasReadAccess(data) {
|
1408
|
-
// eslint-disable-next-line
|
1409
1533
|
var permission = getValue('permission', data);
|
1410
1534
|
return (permission && !getValue('read', permission)) ? false : true;
|
1411
1535
|
}
|
@@ -1416,9 +1540,7 @@ export function hasReadAccess(data) {
|
|
1416
1540
|
* @returns {boolean} - returns edit access.
|
1417
1541
|
* @private
|
1418
1542
|
*/
|
1419
|
-
// eslint-disable-next-line
|
1420
1543
|
export function hasEditAccess(data) {
|
1421
|
-
// eslint-disable-next-line
|
1422
1544
|
var permission = getValue('permission', data);
|
1423
1545
|
return permission ? ((getValue('read', permission) && getValue('write', permission))) : true;
|
1424
1546
|
}
|
@@ -1429,9 +1551,7 @@ export function hasEditAccess(data) {
|
|
1429
1551
|
* @returns {boolean} - returns content access.
|
1430
1552
|
* @private
|
1431
1553
|
*/
|
1432
|
-
// eslint-disable-next-line
|
1433
1554
|
export function hasContentAccess(data) {
|
1434
|
-
// eslint-disable-next-line
|
1435
1555
|
var permission = getValue('permission', data);
|
1436
1556
|
return permission ? ((getValue('read', permission) && getValue('writeContents', permission))) : true;
|
1437
1557
|
}
|
@@ -1442,9 +1562,7 @@ export function hasContentAccess(data) {
|
|
1442
1562
|
* @returns {boolean} - returns upload access.
|
1443
1563
|
* @private
|
1444
1564
|
*/
|
1445
|
-
// eslint-disable-next-line
|
1446
1565
|
export function hasUploadAccess(data) {
|
1447
|
-
// eslint-disable-next-line
|
1448
1566
|
var permission = getValue('permission', data);
|
1449
1567
|
return permission ? ((getValue('read', permission) && getValue('upload', permission))) : true;
|
1450
1568
|
}
|
@@ -1455,9 +1573,7 @@ export function hasUploadAccess(data) {
|
|
1455
1573
|
* @returns {boolean} - returns download access.
|
1456
1574
|
* @private
|
1457
1575
|
*/
|
1458
|
-
// eslint-disable-next-line
|
1459
1576
|
export function hasDownloadAccess(data) {
|
1460
|
-
// eslint-disable-next-line
|
1461
1577
|
var permission = getValue('permission', data);
|
1462
1578
|
return permission ? ((getValue('read', permission) && getValue('download', permission))) : true;
|
1463
1579
|
}
|
@@ -1469,7 +1585,6 @@ export function hasDownloadAccess(data) {
|
|
1469
1585
|
* @private
|
1470
1586
|
*/
|
1471
1587
|
export function createNewFolder(parent) {
|
1472
|
-
// eslint-disable-next-line
|
1473
1588
|
var details = parent.itemData[0];
|
1474
1589
|
if (!hasContentAccess(details)) {
|
1475
1590
|
createDeniedDialog(parent, details, events.permissionEditContents);
|
@@ -1486,7 +1601,6 @@ export function createNewFolder(parent) {
|
|
1486
1601
|
* @private
|
1487
1602
|
*/
|
1488
1603
|
export function uploadItem(parent) {
|
1489
|
-
// eslint-disable-next-line
|
1490
1604
|
var details = parent.itemData[0];
|
1491
1605
|
if (!hasUploadAccess(details)) {
|
1492
1606
|
createDeniedDialog(parent, details, events.permissionUpload);
|
@@ -1497,3 +1611,65 @@ export function uploadItem(parent) {
|
|
1497
1611
|
uploadEle.click();
|
1498
1612
|
}
|
1499
1613
|
}
|
1614
|
+
/**
|
1615
|
+
* Close dialog popup handler
|
1616
|
+
*
|
1617
|
+
* @param {IFileManager} parent - specifies the parent.
|
1618
|
+
* @returns {void}
|
1619
|
+
* @private
|
1620
|
+
*/
|
1621
|
+
export function closePopup(parent) {
|
1622
|
+
if (!isNullOrUndefined(parent.dialogObj)) {
|
1623
|
+
parent.dialogObj.hide();
|
1624
|
+
}
|
1625
|
+
}
|
1626
|
+
/**
|
1627
|
+
* Access control handler
|
1628
|
+
*
|
1629
|
+
* @param {IFileManager} parent - specifies the parent.
|
1630
|
+
* @param {Object[]} itemData - specifies the item elements.
|
1631
|
+
* @param {string} action - specifies the action.
|
1632
|
+
* @param {boolean} isPathPermision - specifies the path permission.
|
1633
|
+
* @returns {string} returns the path.
|
1634
|
+
* @private
|
1635
|
+
*/
|
1636
|
+
export function getAccessDetails(parent, itemData, action, isPathPermision) {
|
1637
|
+
var accessMessage = '';
|
1638
|
+
for (var i = 0; i < itemData.length; i++) {
|
1639
|
+
var permission = getValue('permission', itemData[i]);
|
1640
|
+
if (permission == null) {
|
1641
|
+
permission = undefined;
|
1642
|
+
}
|
1643
|
+
if (isPathPermision) {
|
1644
|
+
if (permission && (!getValue('read', permission) || !getValue('writeContents', permission))) {
|
1645
|
+
accessMessage = getValue('message', getValue('permission', itemData[i]));
|
1646
|
+
if (accessMessage === '') {
|
1647
|
+
accessMessage = getLocaleText(parent, 'Access-Message').replace('{0}', getValue('name', itemData[i])).replace('{1}', 'writeContents');
|
1648
|
+
}
|
1649
|
+
}
|
1650
|
+
}
|
1651
|
+
else {
|
1652
|
+
var copyOrMovePermission = action === 'copy' ? getValue('copy', permission) : getValue('write', permission);
|
1653
|
+
if (permission && (!getValue('read', permission) || !copyOrMovePermission)) {
|
1654
|
+
accessMessage = getValue('message', getValue('permission', itemData[i]));
|
1655
|
+
if (accessMessage === '') {
|
1656
|
+
accessMessage = getLocaleText(parent, 'Access-Message').replace('{0}', getValue('name', itemData[i])).replace('{1}', action);
|
1657
|
+
}
|
1658
|
+
}
|
1659
|
+
}
|
1660
|
+
if (accessMessage !== '') {
|
1661
|
+
parent.responseData = {
|
1662
|
+
cwd: null,
|
1663
|
+
details: null,
|
1664
|
+
error: {
|
1665
|
+
code: '401',
|
1666
|
+
message: accessMessage,
|
1667
|
+
fileExists: null
|
1668
|
+
},
|
1669
|
+
files: null
|
1670
|
+
};
|
1671
|
+
break;
|
1672
|
+
}
|
1673
|
+
}
|
1674
|
+
return accessMessage;
|
1675
|
+
}
|