@syncfusion/ej2-filemanager 25.2.6 → 26.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +3 -2
- package/dist/ej2-filemanager.min.js +2 -2
- package/dist/ej2-filemanager.umd.min.js +2 -2
- package/dist/ej2-filemanager.umd.min.js.map +1 -1
- package/dist/es6/ej2-filemanager.es2015.js +914 -462
- package/dist/es6/ej2-filemanager.es2015.js.map +1 -1
- package/dist/es6/ej2-filemanager.es5.js +958 -515
- package/dist/es6/ej2-filemanager.es5.js.map +1 -1
- package/dist/global/ej2-filemanager.min.js +2 -2
- package/dist/global/ej2-filemanager.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +16 -16
- package/src/file-manager/actions/breadcrumb-bar.js +0 -4
- package/src/file-manager/actions/toolbar.js +1 -13
- package/src/file-manager/actions/virtualization.d.ts +28 -8
- package/src/file-manager/actions/virtualization.js +36 -13
- package/src/file-manager/base/file-manager-model.d.ts +107 -36
- package/src/file-manager/base/file-manager.d.ts +100 -25
- package/src/file-manager/base/file-manager.js +46 -20
- package/src/file-manager/base/interface.d.ts +224 -2
- package/src/file-manager/base/interface.js +0 -1
- package/src/file-manager/common/operations.d.ts +7 -0
- package/src/file-manager/common/operations.js +596 -94
- package/src/file-manager/common/utility.d.ts +22 -0
- package/src/file-manager/common/utility.js +117 -65
- package/src/file-manager/layout/details-view.d.ts +1 -1
- package/src/file-manager/layout/details-view.js +23 -68
- package/src/file-manager/layout/large-icons-view.js +24 -46
- package/src/file-manager/layout/navigation-pane.js +18 -41
- package/src/file-manager/models/column-model.d.ts +1 -3
- package/src/file-manager/models/default-locale.js +0 -1
- package/src/file-manager/models/details-view-settings.js +2 -1
- package/src/file-manager/pop-up/context-menu.js +9 -24
- package/src/file-manager/pop-up/dialog.d.ts +1 -2
- package/src/file-manager/pop-up/dialog.js +12 -35
- package/styles/bootstrap-dark.css +116 -105
- package/styles/bootstrap-dark.scss +16 -1
- package/styles/bootstrap.css +117 -106
- package/styles/bootstrap.scss +16 -1
- package/styles/bootstrap4.css +116 -105
- package/styles/bootstrap4.scss +16 -1
- package/styles/bootstrap5-dark.css +98 -98
- package/styles/bootstrap5-dark.scss +16 -1
- package/styles/bootstrap5.css +98 -98
- package/styles/bootstrap5.scss +16 -1
- package/styles/fabric-dark.css +116 -105
- package/styles/fabric-dark.scss +16 -1
- package/styles/fabric.css +116 -105
- package/styles/fabric.scss +16 -1
- package/styles/file-manager/_bds-definition.scss +1 -1
- package/styles/file-manager/_bootstrap5-definition.scss +2 -1
- package/styles/file-manager/_bootstrap5.3-definition.scss +240 -0
- package/styles/file-manager/_fluent-definition.scss +1 -1
- package/styles/file-manager/_fluent2-definition.scss +249 -0
- package/styles/file-manager/_layout.scss +255 -396
- package/styles/file-manager/_material-dark-definition.scss +1 -0
- package/styles/file-manager/_material-definition.scss +1 -0
- package/styles/file-manager/_material3-definition.scss +1 -27
- package/styles/file-manager/_tailwind-definition.scss +1 -1
- package/styles/file-manager/_theme.scss +37 -85
- package/styles/file-manager/bootstrap-dark.css +116 -105
- package/styles/file-manager/bootstrap.css +117 -106
- package/styles/file-manager/bootstrap4.css +116 -105
- package/styles/file-manager/bootstrap5-dark.css +98 -98
- package/styles/file-manager/bootstrap5.css +98 -98
- package/styles/file-manager/fabric-dark.css +116 -105
- package/styles/file-manager/fabric.css +116 -105
- package/styles/file-manager/fluent-dark.css +107 -102
- package/styles/file-manager/fluent.css +107 -102
- package/styles/file-manager/fluent2.css +2872 -0
- package/styles/file-manager/fluent2.scss +16 -0
- package/styles/file-manager/highcontrast-light.css +116 -105
- package/styles/file-manager/highcontrast.css +116 -105
- package/styles/file-manager/icons/_bootstrap5.3.scss +235 -0
- package/styles/file-manager/icons/_fluent2.scss +235 -0
- package/styles/file-manager/material-dark.css +140 -108
- package/styles/file-manager/material.css +156 -112
- package/styles/file-manager/material3-dark.css +134 -109
- package/styles/file-manager/material3.css +134 -109
- package/styles/file-manager/tailwind-dark.css +93 -95
- package/styles/file-manager/tailwind.css +93 -95
- package/styles/fluent-dark.css +107 -102
- package/styles/fluent-dark.scss +16 -1
- package/styles/fluent.css +107 -102
- package/styles/fluent.scss +16 -1
- package/styles/fluent2.css +2872 -0
- package/styles/fluent2.scss +16 -0
- package/styles/highcontrast-light.css +116 -105
- package/styles/highcontrast-light.scss +16 -1
- package/styles/highcontrast.css +116 -105
- package/styles/highcontrast.scss +16 -1
- package/styles/material-dark.css +140 -108
- package/styles/material-dark.scss +16 -1
- package/styles/material.css +156 -112
- package/styles/material.scss +16 -1
- package/styles/material3-dark.css +134 -109
- package/styles/material3-dark.scss +16 -1
- package/styles/material3.css +134 -109
- package/styles/material3.scss +16 -1
- package/styles/tailwind-dark.css +93 -95
- package/styles/tailwind-dark.scss +16 -1
- package/styles/tailwind.css +93 -95
- package/styles/tailwind.scss +16 -1
- package/CHANGELOG.md +0 -475
@@ -264,6 +264,8 @@ export declare function setNodeId(result: ReadArgs, rootId: string): void;
|
|
264
264
|
* set the date object
|
265
265
|
*
|
266
266
|
* @param {Object[]} args - specifies the file object.
|
267
|
+
* @param {Internationalization} localeString - The internationalization object for formatting dates.
|
268
|
+
* @param {string} dateFormat - The date format string.
|
267
269
|
* @returns {void}
|
268
270
|
* @private
|
269
271
|
*/
|
@@ -299,6 +301,7 @@ export declare function sortbyClickHandler(parent: IFileManager, args: MenuEvent
|
|
299
301
|
* Gets the sorted fields
|
300
302
|
*
|
301
303
|
* @param {string} id - specifies the id.
|
304
|
+
* @param {IFileManager} [parent] - optional parameter representing the parent IFileManager.
|
302
305
|
* @returns {string} - returns the sorted fields
|
303
306
|
* @private
|
304
307
|
*/
|
@@ -603,3 +606,22 @@ export declare function createNewFolder(parent: IFileManager): void;
|
|
603
606
|
* @private
|
604
607
|
*/
|
605
608
|
export declare function uploadItem(parent: IFileManager): void;
|
609
|
+
/**
|
610
|
+
* Close dialog popup handler
|
611
|
+
*
|
612
|
+
* @param {IFileManager} parent - specifies the parent.
|
613
|
+
* @returns {void}
|
614
|
+
* @private
|
615
|
+
*/
|
616
|
+
export declare function closePopup(parent: IFileManager): void;
|
617
|
+
/**
|
618
|
+
* Access control handler
|
619
|
+
*
|
620
|
+
* @param {IFileManager} parent - specifies the parent.
|
621
|
+
* @param {Object[]} itemData - specifies the item elements.
|
622
|
+
* @param {string} action - specifies the action.
|
623
|
+
* @param {boolean} isPathPermision - specifies the path permission.
|
624
|
+
* @returns {string} returns the path.
|
625
|
+
* @private
|
626
|
+
*/
|
627
|
+
export declare function getAccessDetails(parent: IFileManager, itemData: Object[], action: string, isPathPermision: boolean): string;
|
@@ -1,6 +1,6 @@
|
|
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';
|
3
|
+
import { read, paste, Search, filter, Download, Delete, isFileSystemData } from '../common/operations';
|
4
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';
|
@@ -18,22 +18,27 @@ export function sortComparer(reference, comparer) {
|
|
18
18
|
var referenceIsFile = /\.\S+/.test(reference);
|
19
19
|
var comparerIsFile = /\.\S+/.test(comparer);
|
20
20
|
// If one is a file and the other is a folder, the folder should come first
|
21
|
-
if (referenceIsFile && !comparerIsFile)
|
21
|
+
if (referenceIsFile && !comparerIsFile) {
|
22
22
|
return 1;
|
23
|
-
|
23
|
+
}
|
24
|
+
if (!referenceIsFile && comparerIsFile) {
|
24
25
|
return -1;
|
26
|
+
}
|
25
27
|
var referenceParts = [];
|
26
28
|
var comparerParts = [];
|
27
|
-
(reference + '').replace(/(\d+)|(\D+)/g, function (_, $1, $2) { referenceParts.push([$1 || Infinity, $2 ||
|
28
|
-
(comparer + '').replace(/(\d+)|(\D+)/g, function (_, $1, $2) { comparerParts.push([$1 || Infinity, $2 ||
|
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 ''; });
|
29
31
|
// Compare each part of reference and comparer
|
30
32
|
while (referenceParts.length && comparerParts.length) {
|
31
33
|
var referencePart = referenceParts.shift();
|
32
34
|
var comparerPart = comparerParts.shift();
|
33
|
-
|
34
|
-
referencePart[
|
35
|
-
|
36
|
-
|
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
|
+
}
|
37
42
|
}
|
38
43
|
return referenceParts.length - comparerParts.length;
|
39
44
|
}
|
@@ -46,7 +51,6 @@ export function sortComparer(reference, comparer) {
|
|
46
51
|
* @returns {void}
|
47
52
|
* @private
|
48
53
|
*/
|
49
|
-
// eslint-disable-next-line
|
50
54
|
export function updatePath(node, data, instance) {
|
51
55
|
var text = getValue('name', data);
|
52
56
|
var id = node.getAttribute('data-id');
|
@@ -142,8 +146,7 @@ export function generatePath(parent) {
|
|
142
146
|
var newPath = '/';
|
143
147
|
var i = 1;
|
144
148
|
for (i; i < parent.pathId.length; i++) {
|
145
|
-
|
146
|
-
var data = getValue(parent.pathId[i], parent.feParent);
|
149
|
+
var data = getValue(parent.pathId[parseInt(i.toString(), 10)], parent.feParent);
|
147
150
|
newPath += getValue(key, data) + '/';
|
148
151
|
}
|
149
152
|
parent.setProperties({ path: newPath }, true);
|
@@ -281,6 +284,22 @@ export function searchWordHandler(parent, value, isLayoutChange) {
|
|
281
284
|
if (value.length === 0 && !parent.isFiltered) {
|
282
285
|
parent.notify(events.pathColumn, { args: parent });
|
283
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
|
+
}
|
284
303
|
if (parent.searchSettings.filterType === 'startsWith') {
|
285
304
|
searchWord = value + '*';
|
286
305
|
}
|
@@ -398,7 +417,6 @@ export function openAction(parent) {
|
|
398
417
|
* @returns {Object} - returns the path data.
|
399
418
|
* @private
|
400
419
|
*/
|
401
|
-
// eslint-disable-next-line
|
402
420
|
export function getPathObject(parent) {
|
403
421
|
return getValue(parent.pathId[parent.pathId.length - 1], parent.feParent);
|
404
422
|
}
|
@@ -440,7 +458,6 @@ export function cutFiles(parent) {
|
|
440
458
|
* @returns {string} - returns the file type.
|
441
459
|
* @private
|
442
460
|
*/
|
443
|
-
// eslint-disable-next-line
|
444
461
|
export function fileType(file) {
|
445
462
|
var isFile = getValue('isFile', file);
|
446
463
|
if (!isFile) {
|
@@ -483,11 +500,18 @@ export function fileType(file) {
|
|
483
500
|
* @returns {string} - returns the image url.
|
484
501
|
* @private
|
485
502
|
*/
|
486
|
-
// eslint-disable-next-line
|
487
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
|
+
}
|
488
513
|
var baseUrl = parent.ajaxSettings.getImageUrl ? parent.ajaxSettings.getImageUrl : parent.ajaxSettings.url;
|
489
514
|
var pathUrl = (baseUrl.indexOf('?') !== -1) ? '&path=' : '?path=';
|
490
|
-
var imgUrl;
|
491
515
|
var fileName = encodeURIComponent(getValue('name', item));
|
492
516
|
var fPath = getValue('filterPath', item);
|
493
517
|
if (parent.hasId) {
|
@@ -518,7 +542,6 @@ export function getImageUrl(parent, item) {
|
|
518
542
|
* @returns {string} - returns the image url.
|
519
543
|
* @private
|
520
544
|
*/
|
521
|
-
// eslint-disable-next-line
|
522
545
|
export function getFullPath(parent, data, path) {
|
523
546
|
var filePath = getValue(parent.hasId ? 'id' : 'name', data) + '/';
|
524
547
|
var fPath = getValue(parent.hasId ? 'filterId' : 'filterPath', data);
|
@@ -537,7 +560,6 @@ export function getFullPath(parent, data, path) {
|
|
537
560
|
* @returns {string} - returns the name.
|
538
561
|
* @private
|
539
562
|
*/
|
540
|
-
// eslint-disable-next-line
|
541
563
|
export function getName(parent, data) {
|
542
564
|
var name = getValue('name', data);
|
543
565
|
var fPath = getValue('filterPath', data);
|
@@ -555,19 +577,17 @@ export function getName(parent, data) {
|
|
555
577
|
* @returns {Object[]} - returns the sorted data.
|
556
578
|
* @private
|
557
579
|
*/
|
558
|
-
// eslint-disable-next-line
|
559
580
|
export function getSortedData(parent, items) {
|
560
581
|
if (items.length === 0) {
|
561
582
|
return items;
|
562
583
|
}
|
563
584
|
var query;
|
564
|
-
if (parent.sortOrder !== 'None') {
|
585
|
+
if (parent.sortOrder !== 'None' && !isNullOrUndefined(parent.sortOrder)) {
|
565
586
|
query = new Query().sortBy(parent.sortBy, parent.sortOrder.toLowerCase(), true).group('isFile');
|
566
587
|
}
|
567
588
|
else {
|
568
589
|
query = new Query().group('isFile');
|
569
590
|
}
|
570
|
-
// eslint-disable-next-line
|
571
591
|
var lists = new DataManager(items).executeLocal(query);
|
572
592
|
return getValue('records', lists);
|
573
593
|
}
|
@@ -580,12 +600,9 @@ export function getSortedData(parent, items) {
|
|
580
600
|
* @returns {Object} - returns the sorted data.
|
581
601
|
* @private
|
582
602
|
*/
|
583
|
-
// eslint-disable-next-line
|
584
603
|
export function getObject(parent, key, value) {
|
585
|
-
// eslint-disable-next-line
|
586
604
|
var currFiles = getValue(parent.pathId[parent.pathId.length - 1], parent.feFiles);
|
587
605
|
var query = new Query().where(key, 'equal', value);
|
588
|
-
// eslint-disable-next-line
|
589
606
|
var lists = new DataManager(currFiles).executeLocal(query);
|
590
607
|
return lists[0];
|
591
608
|
}
|
@@ -650,7 +667,6 @@ export function createEmptyElement(parent, element, args) {
|
|
650
667
|
* @returns {Object[]} - returns the sorted data.
|
651
668
|
* @private
|
652
669
|
*/
|
653
|
-
// eslint-disable-next-line
|
654
670
|
export function getDirectories(files) {
|
655
671
|
return new DataManager(files).executeLocal(new Query().where(events.isFile, 'equal', false, false));
|
656
672
|
}
|
@@ -663,7 +679,6 @@ export function getDirectories(files) {
|
|
663
679
|
* @private
|
664
680
|
*/
|
665
681
|
export function setNodeId(result, rootId) {
|
666
|
-
// eslint-disable-next-line
|
667
682
|
var dirs = getDirectories(result.files);
|
668
683
|
for (var i = 0, len = dirs.length; i < len; i++) {
|
669
684
|
setValue('_fm_id', rootId + '_' + i, dirs[i]);
|
@@ -673,16 +688,17 @@ export function setNodeId(result, rootId) {
|
|
673
688
|
* set the date object
|
674
689
|
*
|
675
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.
|
676
693
|
* @returns {void}
|
677
694
|
* @private
|
678
695
|
*/
|
679
|
-
// eslint-disable-next-line
|
680
696
|
export function setDateObject(args, localeString, dateFormat) {
|
681
697
|
for (var i = 0; i < args.length; i++) {
|
682
698
|
var createdDate = new Date(getValue('dateCreated', args[i]));
|
683
699
|
var modifiedDate = new Date(getValue('dateModified', args[i]));
|
684
700
|
if (isNOU(dateFormat)) {
|
685
|
-
dateFormat =
|
701
|
+
dateFormat = 'MM/dd/yyyy';
|
686
702
|
}
|
687
703
|
setValue('_fm_created', localeString.formatDate(createdDate, { format: dateFormat }), args[i]);
|
688
704
|
setValue('_fm_modified', localeString.formatDate(modifiedDate, { format: dateFormat }), args[i]);
|
@@ -755,6 +771,7 @@ export function sortbyClickHandler(parent, args) {
|
|
755
771
|
* Gets the sorted fields
|
756
772
|
*
|
757
773
|
* @param {string} id - specifies the id.
|
774
|
+
* @param {IFileManager} [parent] - optional parameter representing the parent IFileManager.
|
758
775
|
* @returns {string} - returns the sorted fields
|
759
776
|
* @private
|
760
777
|
*/
|
@@ -800,14 +817,12 @@ export function getSortField(id, parent) {
|
|
800
817
|
export function setNextPath(parent, path) {
|
801
818
|
var currfolders = path.split('/');
|
802
819
|
var folders = parent.originalPath.split('/');
|
803
|
-
// eslint-disable-next-line
|
804
820
|
var root = getValue(parent.pathId[0], parent.feParent);
|
805
821
|
var key = isNOU(getValue('id', root)) ? 'name' : 'id';
|
806
822
|
for (var i = currfolders.length - 1, len = folders.length - 1; i < len; i++) {
|
807
823
|
var eventName = (folders[i + 1] === '') ? events.finalizeEnd : events.initialEnd;
|
808
824
|
var newPath = (folders[i] === '') ? '/' : (parent.path + folders[i] + '/');
|
809
|
-
|
810
|
-
var data = getObject(parent, key, folders[i]);
|
825
|
+
var data = getObject(parent, key, folders[parseInt(i.toString(), 10)]);
|
811
826
|
if (!isNullOrUndefined(data)) {
|
812
827
|
var id = getValue('_fm_id', data);
|
813
828
|
parent.setProperties({ path: newPath }, true);
|
@@ -830,13 +845,12 @@ export function setNextPath(parent, path) {
|
|
830
845
|
* @returns {void}
|
831
846
|
* @private
|
832
847
|
*/
|
833
|
-
// eslint-disable-next-line
|
834
848
|
export function openSearchFolder(parent, data) {
|
835
849
|
parent.originalPath = getFullPath(parent, data, parent.path);
|
836
850
|
var root = getValue(parent.pathId[0], parent.feParent);
|
837
|
-
var isRoot = getValue('_fm_id', parent.itemData[0])
|
851
|
+
var isRoot = getValue('_fm_id', parent.itemData[0]) === 'fe_tree';
|
838
852
|
var key = isNOU(getValue('id', root)) ? 'name' : 'id';
|
839
|
-
var searchData = getObject(parent, key, getValue('name', data));
|
853
|
+
var searchData = getObject(parent, key, isFileSystemData(parent) ? getValue('id', data) : getValue('name', data));
|
840
854
|
if (isNullOrUndefined(searchData)) {
|
841
855
|
if (!isRoot) {
|
842
856
|
parent.notify(events.clearPathInit, { selectedNode: parent.pathId[parent.pathId.length - 1] });
|
@@ -866,7 +880,6 @@ export function pasteHandler(parent) {
|
|
866
880
|
parent.isDragDrop = false;
|
867
881
|
if (parent.selectedNodes.length !== 0 && parent.enablePaste) {
|
868
882
|
var path = (parent.folderPath === '') ? parent.path : parent.folderPath;
|
869
|
-
// eslint-disable-next-line
|
870
883
|
var subFolder = validateSubFolder(parent, parent.actionRecords, path, parent.path);
|
871
884
|
if (!subFolder) {
|
872
885
|
if ((parent.fileAction === 'move' && parent.targetPath !== path) || parent.fileAction === 'copy') {
|
@@ -900,7 +913,6 @@ export function pasteHandler(parent) {
|
|
900
913
|
* @returns {boolean} - returns the validated sub folder.
|
901
914
|
* @private
|
902
915
|
*/
|
903
|
-
// eslint-disable-next-line
|
904
916
|
export function validateSubFolder(parent, data, dropPath, dragPath) {
|
905
917
|
var subFolder = false;
|
906
918
|
for (var i = 0; i < data.length; i++) {
|
@@ -921,7 +933,8 @@ export function validateSubFolder(parent, data, dropPath, dragPath) {
|
|
921
933
|
}
|
922
934
|
}
|
923
935
|
else {
|
924
|
-
var
|
936
|
+
var name_1 = parent.dragData[i] ? parent.dragData[i].name : null;
|
937
|
+
var srcData = isFileSystemData(parent) ? name_1 : parent.dragNodes[i];
|
925
938
|
var len = 0;
|
926
939
|
if (srcData) {
|
927
940
|
len = srcData.lastIndexOf('/');
|
@@ -992,15 +1005,15 @@ export function getParentPath(oldPath) {
|
|
992
1005
|
*/
|
993
1006
|
export function getDirectoryPath(parent, args) {
|
994
1007
|
var filePath = getValue(parent.hasId ? 'id' : 'name', args.cwd) + '/';
|
995
|
-
var fPath = getValue(parent.hasId ? 'filterId' : 'filterPath', args.cwd);
|
1008
|
+
var fPath = getValue(parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? 'filterId' : 'filterPath', args.cwd);
|
996
1009
|
if (!isNOU(fPath)) {
|
997
1010
|
if (fPath === '') {
|
998
|
-
return parent.hasId ? filePath : '/';
|
1011
|
+
return parent.hasId && !isNullOrUndefined(parent.ajaxSettings.url) ? filePath : '/';
|
999
1012
|
}
|
1000
1013
|
return fPath.replace(/\\/g, '/') + filePath;
|
1001
1014
|
}
|
1002
1015
|
else {
|
1003
|
-
return parent.path + filePath;
|
1016
|
+
return isFileSystemData(parent) ? filePath : parent.path + filePath;
|
1004
1017
|
}
|
1005
1018
|
}
|
1006
1019
|
/**
|
@@ -1070,7 +1083,7 @@ export function readDropPath(parent) {
|
|
1070
1083
|
var node = select('[data-uid="' + pathId + '"]', parent.navigationpaneModule.treeObj.element);
|
1071
1084
|
if (!node) {
|
1072
1085
|
var liElement = document.querySelector('[data-id = "' + getValue('id', parent.dropData) + '"]');
|
1073
|
-
pathId = liElement.getAttribute(
|
1086
|
+
pathId = liElement.getAttribute('data-uid');
|
1074
1087
|
node = select('[data-uid="' + pathId + '"]', parent.navigationpaneModule.treeObj.element);
|
1075
1088
|
}
|
1076
1089
|
updatePath(node, parent.dropData, parent);
|
@@ -1086,11 +1099,8 @@ export function readDropPath(parent) {
|
|
1086
1099
|
* @returns {object} - returns the duplicated path.
|
1087
1100
|
* @private
|
1088
1101
|
*/
|
1089
|
-
// eslint-disable-next-line
|
1090
1102
|
export function getDuplicateData(parent, name) {
|
1091
|
-
// eslint-disable-next-line
|
1092
1103
|
var data = null;
|
1093
|
-
// eslint-disable-next-line
|
1094
1104
|
var records = parent.isDragDrop ? parent.dragData : parent.actionRecords;
|
1095
1105
|
for (var i = 0; i < records.length; i++) {
|
1096
1106
|
if (getValue('name', records[i]) === name) {
|
@@ -1284,7 +1294,7 @@ export function removeItemClass(parent, value) {
|
|
1284
1294
|
export function scrollHandler(scrollParent, parent, nodeClass, screenY, clientY) {
|
1285
1295
|
var position;
|
1286
1296
|
var elementData = scrollParent.getBoundingClientRect();
|
1287
|
-
var node = select(
|
1297
|
+
var node = select('.' + nodeClass, scrollParent);
|
1288
1298
|
if ((screenY >= (elementData.top + scrollParent.clientHeight - 30)) && !isNullOrUndefined(node)) {
|
1289
1299
|
position = (parent.targetModule === 'navigationpane' || parent.targetModule === 'detailsview') ? node.offsetHeight / 2.5 : node.offsetHeight / 4.5;
|
1290
1300
|
scrollParent.scrollBy(0, position);
|
@@ -1362,7 +1372,6 @@ export function draggingHandler(parent, args) {
|
|
1362
1372
|
* @private
|
1363
1373
|
*/
|
1364
1374
|
// Ignored the message key value in permission object
|
1365
|
-
// eslint-disable-next-line
|
1366
1375
|
export function objectToString(data) {
|
1367
1376
|
var str = '';
|
1368
1377
|
var keys = Object.keys(data);
|
@@ -1381,7 +1390,6 @@ export function objectToString(data) {
|
|
1381
1390
|
* @returns {string} returns the item name.
|
1382
1391
|
* @private
|
1383
1392
|
*/
|
1384
|
-
// eslint-disable-next-line
|
1385
1393
|
export function getItemName(parent, data) {
|
1386
1394
|
if (parent.hasId) {
|
1387
1395
|
return getValue('id', data);
|
@@ -1396,7 +1404,6 @@ export function getItemName(parent, data) {
|
|
1396
1404
|
* @returns {void}
|
1397
1405
|
* @private
|
1398
1406
|
*/
|
1399
|
-
// eslint-disable-next-line
|
1400
1407
|
export function updateRenamingData(parent, data) {
|
1401
1408
|
parent.itemData = [data];
|
1402
1409
|
parent.currentItemText = getValue('name', data);
|
@@ -1427,7 +1434,6 @@ export function doRename(parent) {
|
|
1427
1434
|
* @private
|
1428
1435
|
*/
|
1429
1436
|
export function doDownload(parent) {
|
1430
|
-
// eslint-disable-next-line
|
1431
1437
|
var items = parent.itemData;
|
1432
1438
|
for (var i = 0; i < items.length; i++) {
|
1433
1439
|
if (!hasDownloadAccess(items[i])) {
|
@@ -1448,7 +1454,6 @@ export function doDownload(parent) {
|
|
1448
1454
|
* @returns {void}
|
1449
1455
|
* @private
|
1450
1456
|
*/
|
1451
|
-
// eslint-disable-next-line
|
1452
1457
|
export function doDeleteFiles(parent, data, newIds) {
|
1453
1458
|
for (var i = 0; i < data.length; i++) {
|
1454
1459
|
if (!hasEditAccess(data[i])) {
|
@@ -1469,7 +1474,6 @@ export function doDeleteFiles(parent, data, newIds) {
|
|
1469
1474
|
* @returns {void}
|
1470
1475
|
* @private
|
1471
1476
|
*/
|
1472
|
-
// eslint-disable-next-line
|
1473
1477
|
export function doDownloadFiles(parent, data, newIds) {
|
1474
1478
|
for (var i = 0; i < data.length; i++) {
|
1475
1479
|
if (!hasDownloadAccess(data[i])) {
|
@@ -1491,7 +1495,6 @@ export function doDownloadFiles(parent, data, newIds) {
|
|
1491
1495
|
* @returns {void}
|
1492
1496
|
* @private
|
1493
1497
|
*/
|
1494
|
-
// eslint-disable-next-line
|
1495
1498
|
export function createDeniedDialog(parent, data, action) {
|
1496
1499
|
var message = getValue('message', getValue('permission', data));
|
1497
1500
|
if (message === '') {
|
@@ -1513,7 +1516,6 @@ export function createDeniedDialog(parent, data, action) {
|
|
1513
1516
|
* @returns {string} - returns accesses classes.
|
1514
1517
|
* @private
|
1515
1518
|
*/
|
1516
|
-
// eslint-disable-next-line
|
1517
1519
|
export function getAccessClass(data) {
|
1518
1520
|
return !hasReadAccess(data) ? 'e-fe-locked e-fe-hidden' : 'e-fe-locked';
|
1519
1521
|
}
|
@@ -1524,9 +1526,7 @@ export function getAccessClass(data) {
|
|
1524
1526
|
* @returns {boolean} - returns read access.
|
1525
1527
|
* @private
|
1526
1528
|
*/
|
1527
|
-
// eslint-disable-next-line
|
1528
1529
|
export function hasReadAccess(data) {
|
1529
|
-
// eslint-disable-next-line
|
1530
1530
|
var permission = getValue('permission', data);
|
1531
1531
|
return (permission && !getValue('read', permission)) ? false : true;
|
1532
1532
|
}
|
@@ -1537,9 +1537,7 @@ export function hasReadAccess(data) {
|
|
1537
1537
|
* @returns {boolean} - returns edit access.
|
1538
1538
|
* @private
|
1539
1539
|
*/
|
1540
|
-
// eslint-disable-next-line
|
1541
1540
|
export function hasEditAccess(data) {
|
1542
|
-
// eslint-disable-next-line
|
1543
1541
|
var permission = getValue('permission', data);
|
1544
1542
|
return permission ? ((getValue('read', permission) && getValue('write', permission))) : true;
|
1545
1543
|
}
|
@@ -1550,9 +1548,7 @@ export function hasEditAccess(data) {
|
|
1550
1548
|
* @returns {boolean} - returns content access.
|
1551
1549
|
* @private
|
1552
1550
|
*/
|
1553
|
-
// eslint-disable-next-line
|
1554
1551
|
export function hasContentAccess(data) {
|
1555
|
-
// eslint-disable-next-line
|
1556
1552
|
var permission = getValue('permission', data);
|
1557
1553
|
return permission ? ((getValue('read', permission) && getValue('writeContents', permission))) : true;
|
1558
1554
|
}
|
@@ -1563,9 +1559,7 @@ export function hasContentAccess(data) {
|
|
1563
1559
|
* @returns {boolean} - returns upload access.
|
1564
1560
|
* @private
|
1565
1561
|
*/
|
1566
|
-
// eslint-disable-next-line
|
1567
1562
|
export function hasUploadAccess(data) {
|
1568
|
-
// eslint-disable-next-line
|
1569
1563
|
var permission = getValue('permission', data);
|
1570
1564
|
return permission ? ((getValue('read', permission) && getValue('upload', permission))) : true;
|
1571
1565
|
}
|
@@ -1576,9 +1570,7 @@ export function hasUploadAccess(data) {
|
|
1576
1570
|
* @returns {boolean} - returns download access.
|
1577
1571
|
* @private
|
1578
1572
|
*/
|
1579
|
-
// eslint-disable-next-line
|
1580
1573
|
export function hasDownloadAccess(data) {
|
1581
|
-
// eslint-disable-next-line
|
1582
1574
|
var permission = getValue('permission', data);
|
1583
1575
|
return permission ? ((getValue('read', permission) && getValue('download', permission))) : true;
|
1584
1576
|
}
|
@@ -1590,7 +1582,6 @@ export function hasDownloadAccess(data) {
|
|
1590
1582
|
* @private
|
1591
1583
|
*/
|
1592
1584
|
export function createNewFolder(parent) {
|
1593
|
-
// eslint-disable-next-line
|
1594
1585
|
var details = parent.itemData[0];
|
1595
1586
|
if (!hasContentAccess(details)) {
|
1596
1587
|
createDeniedDialog(parent, details, events.permissionEditContents);
|
@@ -1607,7 +1598,6 @@ export function createNewFolder(parent) {
|
|
1607
1598
|
* @private
|
1608
1599
|
*/
|
1609
1600
|
export function uploadItem(parent) {
|
1610
|
-
// eslint-disable-next-line
|
1611
1601
|
var details = parent.itemData[0];
|
1612
1602
|
if (!hasUploadAccess(details)) {
|
1613
1603
|
createDeniedDialog(parent, details, events.permissionUpload);
|
@@ -1618,3 +1608,65 @@ export function uploadItem(parent) {
|
|
1618
1608
|
uploadEle.click();
|
1619
1609
|
}
|
1620
1610
|
}
|
1611
|
+
/**
|
1612
|
+
* Close dialog popup handler
|
1613
|
+
*
|
1614
|
+
* @param {IFileManager} parent - specifies the parent.
|
1615
|
+
* @returns {void}
|
1616
|
+
* @private
|
1617
|
+
*/
|
1618
|
+
export function closePopup(parent) {
|
1619
|
+
if (!isNullOrUndefined(parent.dialogObj)) {
|
1620
|
+
parent.dialogObj.hide();
|
1621
|
+
}
|
1622
|
+
}
|
1623
|
+
/**
|
1624
|
+
* Access control handler
|
1625
|
+
*
|
1626
|
+
* @param {IFileManager} parent - specifies the parent.
|
1627
|
+
* @param {Object[]} itemData - specifies the item elements.
|
1628
|
+
* @param {string} action - specifies the action.
|
1629
|
+
* @param {boolean} isPathPermision - specifies the path permission.
|
1630
|
+
* @returns {string} returns the path.
|
1631
|
+
* @private
|
1632
|
+
*/
|
1633
|
+
export function getAccessDetails(parent, itemData, action, isPathPermision) {
|
1634
|
+
var accessMessage = '';
|
1635
|
+
for (var i = 0; i < itemData.length; i++) {
|
1636
|
+
var permission = getValue('permission', itemData[i]);
|
1637
|
+
if (permission == null) {
|
1638
|
+
permission = undefined;
|
1639
|
+
}
|
1640
|
+
if (isPathPermision) {
|
1641
|
+
if (permission && (!getValue('read', permission) || !getValue('writeContents', permission))) {
|
1642
|
+
accessMessage = getValue('message', getValue('permission', itemData[i]));
|
1643
|
+
if (accessMessage === '') {
|
1644
|
+
accessMessage = getLocaleText(parent, 'Access-Message').replace('{0}', getValue('name', itemData[i])).replace('{1}', 'writeContents');
|
1645
|
+
}
|
1646
|
+
}
|
1647
|
+
}
|
1648
|
+
else {
|
1649
|
+
var copyOrMovePermission = action === 'copy' ? getValue('copy', permission) : getValue('write', permission);
|
1650
|
+
if (permission && (!getValue('read', permission) || !copyOrMovePermission)) {
|
1651
|
+
accessMessage = getValue('message', getValue('permission', itemData[i]));
|
1652
|
+
if (accessMessage === '') {
|
1653
|
+
accessMessage = getLocaleText(parent, 'Access-Message').replace('{0}', getValue('name', itemData[i])).replace('{1}', action);
|
1654
|
+
}
|
1655
|
+
}
|
1656
|
+
}
|
1657
|
+
if (accessMessage !== '') {
|
1658
|
+
parent.responseData = {
|
1659
|
+
cwd: null,
|
1660
|
+
details: null,
|
1661
|
+
error: {
|
1662
|
+
code: '401',
|
1663
|
+
message: accessMessage,
|
1664
|
+
fileExists: null
|
1665
|
+
},
|
1666
|
+
files: null
|
1667
|
+
};
|
1668
|
+
break;
|
1669
|
+
}
|
1670
|
+
}
|
1671
|
+
return accessMessage;
|
1672
|
+
}
|