@iobroker/adapter-react-v5 3.1.3 → 3.1.6
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/Components/FileBrowser.js +277 -237
- package/Components/FileBrowser.js.map +1 -1
- package/Components/FileViewer.js +3 -1
- package/Components/FileViewer.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocomplete.js +5 -3
- package/Components/JsonConfigComponent/ConfigAutocomplete.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js +5 -3
- package/Components/JsonConfigComponent/ConfigAutocompleteSendTo.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js +16 -2
- package/Components/JsonConfigComponent/ConfigCertificateSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigCustom.js +148 -25
- package/Components/JsonConfigComponent/ConfigCustom.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigFile.js +183 -0
- package/Components/JsonConfigComponent/ConfigFile.js.map +1 -0
- package/Components/JsonConfigComponent/ConfigFileSelector.js +747 -0
- package/Components/JsonConfigComponent/ConfigFileSelector.js.map +1 -0
- package/Components/JsonConfigComponent/ConfigGeneric.js +105 -20
- package/Components/JsonConfigComponent/ConfigGeneric.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js +132 -46
- package/Components/JsonConfigComponent/ConfigInstanceSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js +25 -1
- package/Components/JsonConfigComponent/ConfigLanguage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigNumber.js +5 -4
- package/Components/JsonConfigComponent/ConfigNumber.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigObjectId.js +3 -2
- package/Components/JsonConfigComponent/ConfigObjectId.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPanel.js +51 -40
- package/Components/JsonConfigComponent/ConfigPanel.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigPattern.js +1 -1
- package/Components/JsonConfigComponent/ConfigPattern.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSelect.js +4 -2
- package/Components/JsonConfigComponent/ConfigSelect.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSendto.js +2 -2
- package/Components/JsonConfigComponent/ConfigSendto.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigSetState.js +2 -2
- package/Components/JsonConfigComponent/ConfigSetState.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticHeader.js +31 -8
- package/Components/JsonConfigComponent/ConfigStaticHeader.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigStaticImage.js +1 -1
- package/Components/JsonConfigComponent/ConfigStaticImage.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js +1 -1
- package/Components/JsonConfigComponent/ConfigTable.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTabs.js +12 -3
- package/Components/JsonConfigComponent/ConfigTabs.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigText.js +4 -2
- package/Components/JsonConfigComponent/ConfigText.js.map +1 -1
- package/Components/JsonConfigComponent/ConfigTopic.js.map +1 -1
- package/Components/JsonConfigComponent/index.js +12 -4
- package/Components/JsonConfigComponent/index.js.map +1 -1
- package/Components/ObjectBrowser.js +228 -222
- package/Components/ObjectBrowser.js.map +1 -1
- package/Components/TableResize.js +34 -16
- package/Components/TableResize.js.map +1 -1
- package/Components/TreeTable.js +2 -2
- package/Components/TreeTable.js.map +1 -1
- package/Components/Utils.js +5 -5
- package/Components/Utils.js.map +1 -1
- package/Dialogs/Confirm.js +3 -3
- package/Dialogs/Confirm.js.map +1 -1
- package/Dialogs/FileSelect.js +259 -0
- package/Dialogs/FileSelect.js.map +1 -0
- package/Dialogs/SelectID.js +15 -16
- package/Dialogs/SelectID.js.map +1 -1
- package/GenericApp.js +3 -3
- package/GenericApp.js.map +1 -1
- package/README.md +3 -0
- package/package.json +1 -1
|
@@ -233,7 +233,7 @@ var styles = function styles(theme) {
|
|
|
233
233
|
cursor: 'pointer',
|
|
234
234
|
height: ROW_HEIGHT,
|
|
235
235
|
display: 'inline-flex',
|
|
236
|
-
lineHeight: ROW_HEIGHT
|
|
236
|
+
lineHeight: "".concat(ROW_HEIGHT, "px"),
|
|
237
237
|
'&:hover': {
|
|
238
238
|
background: theme.palette.secondary.light,
|
|
239
239
|
color: _Utils["default"].invertColor(theme.palette.secondary.main, true)
|
|
@@ -367,7 +367,14 @@ var styles = function styles(theme) {
|
|
|
367
367
|
top: 30,
|
|
368
368
|
right: 30
|
|
369
369
|
},
|
|
370
|
-
uploadCenterTextAndIcon: {
|
|
370
|
+
uploadCenterTextAndIcon: {
|
|
371
|
+
position: 'absolute',
|
|
372
|
+
top: '50%',
|
|
373
|
+
left: '50%',
|
|
374
|
+
height: '30%',
|
|
375
|
+
width: '50%',
|
|
376
|
+
margin: '-15% 0 0 -25%'
|
|
377
|
+
},
|
|
371
378
|
menuButtonExpertActive: {
|
|
372
379
|
color: '#c00000'
|
|
373
380
|
},
|
|
@@ -436,13 +443,17 @@ var USER_DATA = '0_userdata.0';
|
|
|
436
443
|
function sortFolders(a, b) {
|
|
437
444
|
if (a.folder && b.folder) {
|
|
438
445
|
return a.name > b.name ? 1 : a.name < b.name ? -1 : 0;
|
|
439
|
-
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
if (a.folder) {
|
|
440
449
|
return -1;
|
|
441
|
-
}
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
if (b.folder) {
|
|
442
453
|
return 1;
|
|
443
|
-
} else {
|
|
444
|
-
return a.name > b.name ? 1 : a.name < b.name ? -1 : 0;
|
|
445
454
|
}
|
|
455
|
+
|
|
456
|
+
return a.name > b.name ? 1 : a.name < b.name ? -1 : 0;
|
|
446
457
|
}
|
|
447
458
|
|
|
448
459
|
function getParentDir(dir) {
|
|
@@ -456,9 +467,9 @@ function isFile(path) {
|
|
|
456
467
|
|
|
457
468
|
if (ext && ext.toLowerCase().match(/[a-z]+/) && ext.length < 5) {
|
|
458
469
|
return true;
|
|
459
|
-
} else {
|
|
460
|
-
return false;
|
|
461
470
|
}
|
|
471
|
+
|
|
472
|
+
return false;
|
|
462
473
|
}
|
|
463
474
|
|
|
464
475
|
var TABLE = 'Table';
|
|
@@ -506,20 +517,20 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
506
517
|
var backgroundImage = _ref.backgroundImage;
|
|
507
518
|
|
|
508
519
|
if (array.indexOf(backgroundImage) !== -1 && array.length - 1 !== array.indexOf(backgroundImage)) {
|
|
509
|
-
window.localStorage.setItem('files.backgroundImage', array[array.indexOf(backgroundImage) + 1]);
|
|
520
|
+
(window._localStorage || window.localStorage).setItem('files.backgroundImage', array[array.indexOf(backgroundImage) + 1]);
|
|
510
521
|
return {
|
|
511
522
|
backgroundImage: array[array.indexOf(backgroundImage) + 1]
|
|
512
523
|
};
|
|
513
|
-
} else {
|
|
514
|
-
window.localStorage.setItem('files.backgroundImage', array[0]);
|
|
515
|
-
return {
|
|
516
|
-
backgroundImage: array[0]
|
|
517
|
-
};
|
|
518
524
|
}
|
|
525
|
+
|
|
526
|
+
(window._localStorage || window.localStorage).setItem('files.backgroundImage', array[0]);
|
|
527
|
+
return {
|
|
528
|
+
backgroundImage: array[0]
|
|
529
|
+
};
|
|
519
530
|
});
|
|
520
531
|
});
|
|
521
532
|
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getClassBackgroundImage", function () {
|
|
522
|
-
//['light', 'dark', 'colored', 'delete']
|
|
533
|
+
// ['light', 'dark', 'colored', 'delete']
|
|
523
534
|
switch (_this.state.backgroundImage) {
|
|
524
535
|
case 'light':
|
|
525
536
|
return _this.props.classes.backgroundImageLight;
|
|
@@ -537,10 +548,27 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
537
548
|
return null;
|
|
538
549
|
}
|
|
539
550
|
});
|
|
540
|
-
var expanded = window.localStorage.getItem('files.expanded') || '[]';
|
|
551
|
+
var expanded = (window._localStorage || window.localStorage).getItem('files.expanded') || '[]';
|
|
552
|
+
|
|
553
|
+
if (_this.props.limitPath) {
|
|
554
|
+
var parts = _this.props.limitPath.split('/');
|
|
555
|
+
|
|
556
|
+
_this.limitToObjectID = parts[0];
|
|
557
|
+
_this.limitToPath = !parts.length ? null : parts.length === 1 && parts[0] === '' ? null : parts.join('/');
|
|
558
|
+
|
|
559
|
+
if (_this.limitToPath && _this.limitToPath.endsWith('/')) {
|
|
560
|
+
_this.limitToPath.substring(0, _this.limitToPath.length - 1);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
541
563
|
|
|
542
564
|
try {
|
|
543
565
|
expanded = JSON.parse(expanded);
|
|
566
|
+
|
|
567
|
+
if (_this.limitToPath) {
|
|
568
|
+
expanded = expanded.filter(function (id) {
|
|
569
|
+
return id.startsWith(_this.limitToPath + '/') || id === _this.limitToPath || _this.limitToPath.startsWith(id + '/');
|
|
570
|
+
});
|
|
571
|
+
}
|
|
544
572
|
} catch (e) {
|
|
545
573
|
expanded = [];
|
|
546
574
|
}
|
|
@@ -548,12 +576,12 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
548
576
|
var viewType;
|
|
549
577
|
|
|
550
578
|
if (_this.props.showViewTypeButton) {
|
|
551
|
-
viewType = window.localStorage.getItem('files.viewType') || TABLE;
|
|
579
|
+
viewType = (window._localStorage || window.localStorage).getItem('files.viewType') || TABLE;
|
|
552
580
|
} else {
|
|
553
581
|
viewType = TABLE;
|
|
554
582
|
}
|
|
555
583
|
|
|
556
|
-
var selected = _this.props.selected || window.localStorage.getItem('files.selected') || USER_DATA;
|
|
584
|
+
var selected = _this.props.selected || (window._localStorage || window.localStorage).getItem('files.selected') || USER_DATA;
|
|
557
585
|
var currentDir = '';
|
|
558
586
|
|
|
559
587
|
if (isFile(selected)) {
|
|
@@ -562,12 +590,12 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
562
590
|
currentDir = selected;
|
|
563
591
|
}
|
|
564
592
|
|
|
565
|
-
var _backgroundImage = window.localStorage.getItem('files.backgroundImage') || null;
|
|
593
|
+
var _backgroundImage = (window._localStorage || window.localStorage).getItem('files.backgroundImage') || null;
|
|
566
594
|
|
|
567
595
|
_this.state = {
|
|
568
596
|
viewType: viewType,
|
|
569
597
|
folders: {},
|
|
570
|
-
filterEmpty: window.localStorage.getItem('files.empty') !== 'false',
|
|
598
|
+
filterEmpty: (window._localStorage || window.localStorage).getItem('files.empty') !== 'false',
|
|
571
599
|
expanded: expanded,
|
|
572
600
|
currentDir: currentDir,
|
|
573
601
|
expertMode: _this.props.expertMode,
|
|
@@ -606,7 +634,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
606
634
|
|
|
607
635
|
this.initialReadFinished = false;
|
|
608
636
|
return this.browseFolder('/').then(function (folders) {
|
|
609
|
-
return _this2.state.viewType === TABLE ? _this2.browseFolders((0, _toConsumableArray2["default"])(_this2.state.expanded), folders) : _this2.state.currentDir && _this2.state.currentDir !== '/' ? _this2.browseFolder(_this2.state.currentDir, folders) : Promise.resolve(folders);
|
|
637
|
+
return _this2.state.viewType === TABLE ? _this2.browseFolders((0, _toConsumableArray2["default"])(_this2.state.expanded), folders) : _this2.state.currentDir && _this2.state.currentDir !== '/' && (!_this2.limitToObjectID || _this2.state.currentDir.startsWith(_this2.limitToObjectID)) ? _this2.browseFolder(_this2.state.currentDir, folders) : Promise.resolve(folders);
|
|
610
638
|
}).then(function (folders) {
|
|
611
639
|
return _this2.setState({
|
|
612
640
|
folders: folders
|
|
@@ -692,18 +720,18 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
692
720
|
}
|
|
693
721
|
|
|
694
722
|
if (!foldersList || !foldersList.length) {
|
|
695
|
-
_resolve(_newFolders);
|
|
696
|
-
} else {
|
|
697
|
-
this.browseFolder(foldersList.shift(), _newFolders).then(function () {
|
|
698
|
-
return setTimeout(function () {
|
|
699
|
-
return _this4.browseFolders(foldersList, _newFolders, _resolve);
|
|
700
|
-
}, 0);
|
|
701
|
-
})["catch"](function () {
|
|
702
|
-
return setTimeout(function () {
|
|
703
|
-
return _this4.browseFolders(foldersList, _newFolders, _resolve);
|
|
704
|
-
}, 0);
|
|
705
|
-
});
|
|
723
|
+
return _resolve(_newFolders);
|
|
706
724
|
}
|
|
725
|
+
|
|
726
|
+
return this.browseFolder(foldersList.shift(), _newFolders).then(function () {
|
|
727
|
+
return setTimeout(function () {
|
|
728
|
+
return _this4.browseFolders(foldersList, _newFolders, _resolve);
|
|
729
|
+
}, 0);
|
|
730
|
+
})["catch"](function () {
|
|
731
|
+
return setTimeout(function () {
|
|
732
|
+
return _this4.browseFolders(foldersList, _newFolders, _resolve);
|
|
733
|
+
}, 0);
|
|
734
|
+
});
|
|
707
735
|
}
|
|
708
736
|
}, {
|
|
709
737
|
key: "readDirSerial",
|
|
@@ -845,9 +873,9 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
845
873
|
return reject(error);
|
|
846
874
|
});
|
|
847
875
|
});
|
|
848
|
-
} else {
|
|
849
|
-
return Promise.resolve(_newFolders);
|
|
850
876
|
}
|
|
877
|
+
|
|
878
|
+
return Promise.resolve(_newFolders);
|
|
851
879
|
}
|
|
852
880
|
|
|
853
881
|
if (!folderId || folderId === '/') {
|
|
@@ -878,6 +906,10 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
878
906
|
}
|
|
879
907
|
|
|
880
908
|
objs.forEach(function (obj) {
|
|
909
|
+
if (_this7.limitToObjectID && _this7.limitToObjectID !== obj._id) {
|
|
910
|
+
return;
|
|
911
|
+
}
|
|
912
|
+
|
|
881
913
|
var item = {
|
|
882
914
|
id: obj._id,
|
|
883
915
|
name: obj._id,
|
|
@@ -904,7 +936,9 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
904
936
|
return a.id > b.id ? 1 : a.id < b.id ? -1 : 0;
|
|
905
937
|
});
|
|
906
938
|
|
|
907
|
-
|
|
939
|
+
if (!_this7.limitToObjectID || _this7.limitToObjectID === USER_DATA) {
|
|
940
|
+
userData && _folders.unshift(userData);
|
|
941
|
+
}
|
|
908
942
|
|
|
909
943
|
_newFolders[folderId || '/'] = _folders;
|
|
910
944
|
|
|
@@ -916,56 +950,64 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
916
950
|
})).then(function () {
|
|
917
951
|
return _newFolders;
|
|
918
952
|
});
|
|
919
|
-
} else {
|
|
920
|
-
return _newFolders;
|
|
921
953
|
}
|
|
954
|
+
|
|
955
|
+
return _newFolders;
|
|
922
956
|
})["catch"](function (e) {
|
|
923
|
-
return _this7.initialReadFinished && window.alert(
|
|
957
|
+
return _this7.initialReadFinished && window.alert("Cannot read meta items: ".concat(e));
|
|
924
958
|
});
|
|
925
|
-
}
|
|
926
|
-
var parts = folderId.split('/');
|
|
927
|
-
var level = parts.length;
|
|
928
|
-
var adapter = parts.shift();
|
|
929
|
-
var relPath = parts.join('/'); // make all requests here serial
|
|
959
|
+
}
|
|
930
960
|
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
961
|
+
var parts = folderId.split('/');
|
|
962
|
+
var level = parts.length;
|
|
963
|
+
var adapter = parts.shift();
|
|
964
|
+
var relPath = parts.join('/'); // make all requests here serial
|
|
965
|
+
|
|
966
|
+
return this.readDirSerial(adapter, relPath).then(function (files) {
|
|
967
|
+
var _folders = [];
|
|
968
|
+
files.forEach(function (file) {
|
|
969
|
+
var item = {
|
|
970
|
+
id: "".concat(folderId, "/").concat(file.file),
|
|
971
|
+
ext: _Utils["default"].getFileExtension(file.file),
|
|
972
|
+
folder: file.isDir,
|
|
973
|
+
name: file.file,
|
|
974
|
+
size: file.stats && file.stats.size,
|
|
975
|
+
modified: file.modifiedAt,
|
|
976
|
+
acl: file.acl,
|
|
977
|
+
level: level
|
|
978
|
+
};
|
|
944
979
|
|
|
980
|
+
if (_this7.limitToPath) {
|
|
981
|
+
if (item.folder && (item.id.startsWith(_this7.limitToPath + '/') || item.id === _this7.limitToPath || _this7.limitToPath.startsWith(item.id + '/'))) {
|
|
982
|
+
_folders.push(item);
|
|
983
|
+
} else if (item.id.startsWith(_this7.limitToPath + '/')) {
|
|
984
|
+
_folders.push(item);
|
|
985
|
+
}
|
|
986
|
+
} else {
|
|
945
987
|
_folders.push(item);
|
|
946
|
-
}
|
|
988
|
+
}
|
|
989
|
+
});
|
|
947
990
|
|
|
948
|
-
|
|
991
|
+
_folders.sort(sortFolders);
|
|
949
992
|
|
|
950
|
-
|
|
993
|
+
_newFolders[folderId] = _folders;
|
|
951
994
|
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
return _newFolders;
|
|
959
|
-
});
|
|
960
|
-
} else {
|
|
995
|
+
if (!_checkEmpty) {
|
|
996
|
+
return Promise.all(_folders.filter(function (item) {
|
|
997
|
+
return item.folder;
|
|
998
|
+
}).map(function (item) {
|
|
999
|
+
return _this7.browseFolder(item.id, _newFolders, true);
|
|
1000
|
+
})).then(function () {
|
|
961
1001
|
return _newFolders;
|
|
962
|
-
}
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
1002
|
+
});
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
return _newFolders;
|
|
1006
|
+
})["catch"](function (e) {
|
|
1007
|
+
_this7.initialReadFinished && window.alert("Cannot read ".concat(adapter).concat(relPath ? "/".concat(relPath) : '', ": ").concat(e));
|
|
1008
|
+
_newFolders[folderId] = [];
|
|
1009
|
+
return _newFolders;
|
|
1010
|
+
});
|
|
969
1011
|
}
|
|
970
1012
|
}, {
|
|
971
1013
|
key: "toggleFolder",
|
|
@@ -979,7 +1021,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
979
1021
|
if (pos === -1) {
|
|
980
1022
|
expanded.push(item.id);
|
|
981
1023
|
expanded.sort();
|
|
982
|
-
window.localStorage.setItem('files.expanded', JSON.stringify(expanded));
|
|
1024
|
+
(window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));
|
|
983
1025
|
|
|
984
1026
|
if (!item.temp) {
|
|
985
1027
|
return this.browseFolder(item.id).then(function (folders) {
|
|
@@ -997,7 +1039,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
997
1039
|
}
|
|
998
1040
|
} else {
|
|
999
1041
|
expanded.splice(pos, 1);
|
|
1000
|
-
window.localStorage.setItem('files.expanded', JSON.stringify(expanded));
|
|
1042
|
+
(window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));
|
|
1001
1043
|
this.setState({
|
|
1002
1044
|
expanded: expanded
|
|
1003
1045
|
});
|
|
@@ -1016,7 +1058,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1016
1058
|
folder = '';
|
|
1017
1059
|
}
|
|
1018
1060
|
|
|
1019
|
-
window.localStorage.setItem('files.currentDir', folder);
|
|
1061
|
+
(window._localStorage || window.localStorage).setItem('files.currentDir', folder);
|
|
1020
1062
|
|
|
1021
1063
|
if (folder && !this.state.folders[folder]) {
|
|
1022
1064
|
return this.browseFolder(folder).then(function (folders) {
|
|
@@ -1030,16 +1072,16 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1030
1072
|
return _this9.props.onSelect && _this9.props.onSelect('');
|
|
1031
1073
|
});
|
|
1032
1074
|
});
|
|
1033
|
-
} else {
|
|
1034
|
-
this.setState({
|
|
1035
|
-
currentDir: folder,
|
|
1036
|
-
selected: folder,
|
|
1037
|
-
path: folder,
|
|
1038
|
-
pathFocus: false
|
|
1039
|
-
}, function () {
|
|
1040
|
-
return _this9.props.onSelect && _this9.props.onSelect('');
|
|
1041
|
-
});
|
|
1042
1075
|
}
|
|
1076
|
+
|
|
1077
|
+
return this.setState({
|
|
1078
|
+
currentDir: folder,
|
|
1079
|
+
selected: folder,
|
|
1080
|
+
path: folder,
|
|
1081
|
+
pathFocus: false
|
|
1082
|
+
}, function () {
|
|
1083
|
+
return _this9.props.onSelect && _this9.props.onSelect('');
|
|
1084
|
+
});
|
|
1043
1085
|
}
|
|
1044
1086
|
}, {
|
|
1045
1087
|
key: "select",
|
|
@@ -1053,7 +1095,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1053
1095
|
|
|
1054
1096
|
e && e.stopPropagation();
|
|
1055
1097
|
this.lastSelect = Date.now();
|
|
1056
|
-
window.localStorage.setItem('files.selected', id);
|
|
1098
|
+
(window._localStorage || window.localStorage).setItem('files.selected', id);
|
|
1057
1099
|
this.setState({
|
|
1058
1100
|
selected: id,
|
|
1059
1101
|
path: id,
|
|
@@ -1063,7 +1105,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1063
1105
|
var ext = _Utils["default"].getFileExtension(id);
|
|
1064
1106
|
|
|
1065
1107
|
if ((!_this10.props.filterFiles || _this10.props.filterFiles.includes(ext)) && (!_this10.props.filterByType || _FileViewer.EXTENSIONS[_this10.props.filterByType].includes(ext))) {
|
|
1066
|
-
_this10.props.onSelect(id);
|
|
1108
|
+
_this10.props.onSelect(id, false, !!_this10.state.folders[id]);
|
|
1067
1109
|
} else {
|
|
1068
1110
|
_this10.props.onSelect('');
|
|
1069
1111
|
}
|
|
@@ -1099,7 +1141,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1099
1141
|
return _this11.state.viewType === TABLE && _this11.toggleFolder(item, e);
|
|
1100
1142
|
},
|
|
1101
1143
|
title: item.title && (0, _typeof2["default"])(item.title) === 'object' ? item.title[this.props.lang] || item.title.end || '' : item.title || null,
|
|
1102
|
-
className: _Utils["default"].clsx('browserItem', this.props.classes[
|
|
1144
|
+
className: _Utils["default"].clsx('browserItem', this.props.classes["item".concat(this.state.viewType)], this.props.classes["itemFolder".concat(this.state.viewType)], this.state.selected === item.id && this.props.classes.itemSelected, item.temp && this.props.classes['itemFolderTemp'])
|
|
1103
1145
|
}, /*#__PURE__*/_react["default"].createElement(Icon, {
|
|
1104
1146
|
className: _Utils["default"].clsx(this.props.classes['itemFolderIcon' + this.state.viewType], isSpecialData && this.props.classes.specialFolder),
|
|
1105
1147
|
onClick: this.state.viewType === TABLE ? function (e) {
|
|
@@ -1110,17 +1152,16 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1110
1152
|
}, isUserData ? this.props.t('ra_User files') : item.name), /*#__PURE__*/_react["default"].createElement(_material.Hidden, {
|
|
1111
1153
|
smDown: true
|
|
1112
1154
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
1113
|
-
className: this.props.classes[
|
|
1155
|
+
className: this.props.classes["itemSize".concat(this.state.viewType)]
|
|
1114
1156
|
}, this.state.viewType === TABLE && this.state.folders[item.id] ? this.state.folders[item.id].length : '')), /*#__PURE__*/_react["default"].createElement(_material.Hidden, {
|
|
1115
1157
|
smDown: true
|
|
1116
1158
|
}, this.state.viewType === TABLE ? this.formatAcl(item.acl) : null), /*#__PURE__*/_react["default"].createElement(_material.Hidden, {
|
|
1117
1159
|
smDown: true
|
|
1118
1160
|
}, this.state.viewType === TABLE && this.props.expertMode ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
1119
|
-
className: this.props.classes[
|
|
1161
|
+
className: this.props.classes["itemDeleteButton".concat(this.state.viewType)]
|
|
1120
1162
|
}) : null), this.state.viewType === TABLE && this.props.allowDownload ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
1121
|
-
className: this.props.classes[
|
|
1122
|
-
}) : null, this.state.viewType === TABLE && this.props.allowDelete && this.state.folders[item.id] && this.state.folders[item.id].length
|
|
1123
|
-
size: "large",
|
|
1163
|
+
className: this.props.classes["itemDownloadButton".concat(this.state.viewType)]
|
|
1164
|
+
}) : null, this.state.viewType === TABLE && this.props.allowDelete && this.state.folders[item.id] && this.state.folders[item.id].length ? /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
1124
1165
|
"aria-label": "delete",
|
|
1125
1166
|
onClick: function onClick(e) {
|
|
1126
1167
|
e.stopPropagation();
|
|
@@ -1133,7 +1174,8 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1133
1174
|
});
|
|
1134
1175
|
}
|
|
1135
1176
|
},
|
|
1136
|
-
className: this.props.classes[
|
|
1177
|
+
className: this.props.classes["itemDeleteButton".concat(this.state.viewType)],
|
|
1178
|
+
size: "large"
|
|
1137
1179
|
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], {
|
|
1138
1180
|
fontSize: "small"
|
|
1139
1181
|
})) : this.state.viewType === TABLE && this.props.allowDelete ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
@@ -1152,20 +1194,20 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1152
1194
|
return _this12.changeFolder(e);
|
|
1153
1195
|
},
|
|
1154
1196
|
title: this.props.t('ra_Back to %s', getParentDir(this.state.currentDir)),
|
|
1155
|
-
className: _Utils["default"].clsx('browserItem', this.props.classes[
|
|
1197
|
+
className: _Utils["default"].clsx('browserItem', this.props.classes["item".concat(this.state.viewType)], this.props.classes["itemFolder".concat(this.state.viewType)])
|
|
1156
1198
|
}, /*#__PURE__*/_react["default"].createElement(_IconClosed["default"], {
|
|
1157
|
-
className: this.props.classes[
|
|
1199
|
+
className: this.props.classes["itemFolderIcon".concat(this.state.viewType)]
|
|
1158
1200
|
}), /*#__PURE__*/_react["default"].createElement(_ArrowBack["default"], {
|
|
1159
1201
|
className: this.props.classes.itemFolderIconBack
|
|
1160
1202
|
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
1161
|
-
className: _Utils["default"].clsx(this.props.classes[
|
|
1203
|
+
className: _Utils["default"].clsx(this.props.classes["itemName".concat(this.state.viewType)], this.props.classes["itemNameFolder".concat(this.state.viewType)])
|
|
1162
1204
|
}, ".."));
|
|
1163
1205
|
}
|
|
1164
1206
|
}, {
|
|
1165
1207
|
key: "formatSize",
|
|
1166
1208
|
value: function formatSize(size) {
|
|
1167
1209
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
1168
|
-
className: this.props.classes[
|
|
1210
|
+
className: this.props.classes["itemSize".concat(this.state.viewType)]
|
|
1169
1211
|
}, size || size === 0 ? _Utils["default"].formatBytes(size) : '');
|
|
1170
1212
|
}
|
|
1171
1213
|
}, {
|
|
@@ -1197,24 +1239,24 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1197
1239
|
switch (ext) {
|
|
1198
1240
|
case 'json':
|
|
1199
1241
|
return /*#__PURE__*/_react["default"].createElement(_Bookmark["default"], {
|
|
1200
|
-
className: this.props.classes[
|
|
1242
|
+
className: this.props.classes["itemIcon".concat(this.state.viewType)]
|
|
1201
1243
|
});
|
|
1202
1244
|
|
|
1203
1245
|
case 'css':
|
|
1204
1246
|
return /*#__PURE__*/_react["default"].createElement(_BookmarkBorder["default"], {
|
|
1205
|
-
className: this.props.classes[
|
|
1247
|
+
className: this.props.classes["itemIcon".concat(this.state.viewType)]
|
|
1206
1248
|
});
|
|
1207
1249
|
|
|
1208
1250
|
case 'js':
|
|
1209
1251
|
case 'ts':
|
|
1210
1252
|
return /*#__PURE__*/_react["default"].createElement(_Code["default"], {
|
|
1211
|
-
className: this.props.classes[
|
|
1253
|
+
className: this.props.classes["itemIcon".concat(this.state.viewType)]
|
|
1212
1254
|
});
|
|
1213
1255
|
|
|
1214
1256
|
case 'html':
|
|
1215
1257
|
case 'md':
|
|
1216
1258
|
return /*#__PURE__*/_react["default"].createElement(_Description["default"], {
|
|
1217
|
-
className: this.props.classes[
|
|
1259
|
+
className: this.props.classes["itemIcon".concat(this.state.viewType)]
|
|
1218
1260
|
});
|
|
1219
1261
|
|
|
1220
1262
|
case 'mp3':
|
|
@@ -1224,29 +1266,15 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1224
1266
|
case 'mp4':
|
|
1225
1267
|
case 'flac':
|
|
1226
1268
|
return /*#__PURE__*/_react["default"].createElement(_MusicNote["default"], {
|
|
1227
|
-
className: this.props.classes[
|
|
1269
|
+
className: this.props.classes["itemIcon".concat(this.state.viewType)]
|
|
1228
1270
|
});
|
|
1229
1271
|
|
|
1230
1272
|
default:
|
|
1231
1273
|
return /*#__PURE__*/_react["default"].createElement(_InsertDriveFile["default"], {
|
|
1232
|
-
className: this.props.classes[
|
|
1274
|
+
className: this.props.classes["itemIcon".concat(this.state.viewType)]
|
|
1233
1275
|
});
|
|
1234
1276
|
}
|
|
1235
1277
|
}
|
|
1236
|
-
}, {
|
|
1237
|
-
key: "getEditFile",
|
|
1238
|
-
value: function getEditFile(ext) {
|
|
1239
|
-
switch (ext) {
|
|
1240
|
-
case 'json':
|
|
1241
|
-
case 'js':
|
|
1242
|
-
case 'html':
|
|
1243
|
-
case 'txt':
|
|
1244
|
-
return true;
|
|
1245
|
-
|
|
1246
|
-
default:
|
|
1247
|
-
return false;
|
|
1248
|
-
}
|
|
1249
|
-
}
|
|
1250
1278
|
}, {
|
|
1251
1279
|
key: "renderFile",
|
|
1252
1280
|
value: function renderFile(item) {
|
|
@@ -1265,7 +1293,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1265
1293
|
viewer: _this14.imagePrefix + item.id
|
|
1266
1294
|
});
|
|
1267
1295
|
} else if ((!_this14.props.filterFiles || _this14.props.filterFiles.includes(item.ext)) && (!_this14.props.filterByType || _FileViewer.EXTENSIONS[_this14.props.filterByType].includes(item.ext))) {
|
|
1268
|
-
_this14.props.onSelect(item.id, true);
|
|
1296
|
+
_this14.props.onSelect(item.id, true, !!_this14.state.folders[item.id]);
|
|
1269
1297
|
}
|
|
1270
1298
|
},
|
|
1271
1299
|
onClick: function onClick(e) {
|
|
@@ -1275,7 +1303,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1275
1303
|
marginLeft: padding,
|
|
1276
1304
|
width: "calc(100% - ".concat(padding, "px)")
|
|
1277
1305
|
} : {},
|
|
1278
|
-
className: _Utils["default"].clsx('browserItem', this.props.classes[
|
|
1306
|
+
className: _Utils["default"].clsx('browserItem', this.props.classes["item".concat(this.state.viewType)], this.props.classes["itemFile".concat(this.state.viewType)], this.state.selected === item.id && this.props.classes.itemSelected)
|
|
1279
1307
|
}, _FileViewer.EXTENSIONS.images.includes(ext) ? this.state.fileErrors.includes(item.id) ? /*#__PURE__*/_react["default"].createElement(_IconNoIcon["default"], {
|
|
1280
1308
|
className: _Utils["default"].clsx(this.props.classes['itemImage' + this.state.viewType], this.getClassBackgroundImage())
|
|
1281
1309
|
}) : /*#__PURE__*/_react["default"].createElement("img", {
|
|
@@ -1295,15 +1323,15 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1295
1323
|
src: this.imagePrefix + item.id,
|
|
1296
1324
|
alt: item.name
|
|
1297
1325
|
}) : this.getFileIcon(ext), /*#__PURE__*/_react["default"].createElement("div", {
|
|
1298
|
-
className: this.props.classes[
|
|
1326
|
+
className: this.props.classes["itemName".concat(this.state.viewType)]
|
|
1299
1327
|
}, item.name), /*#__PURE__*/_react["default"].createElement(_material.Hidden, {
|
|
1300
1328
|
smDown: true
|
|
1301
1329
|
}, this.formatSize(item.size)), /*#__PURE__*/_react["default"].createElement(_material.Hidden, {
|
|
1302
1330
|
smDown: true
|
|
1303
1331
|
}, this.state.viewType === TABLE ? this.formatAcl(item.acl) : null), /*#__PURE__*/_react["default"].createElement(_material.Hidden, {
|
|
1304
1332
|
smDown: true
|
|
1305
|
-
}, this.state.viewType === TABLE && this.props.expertMode &&
|
|
1306
|
-
"aria-label": "
|
|
1333
|
+
}, this.state.viewType === TABLE && this.props.expertMode && FileBrowser.getEditFile(ext) ? /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
1334
|
+
"aria-label": "edit",
|
|
1307
1335
|
onClick: function onClick(e) {
|
|
1308
1336
|
e.stopPropagation();
|
|
1309
1337
|
|
|
@@ -1313,25 +1341,24 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1313
1341
|
formatEditFile: ext
|
|
1314
1342
|
});
|
|
1315
1343
|
} else if ((!_this14.props.filterFiles || _this14.props.filterFiles.includes(item.ext)) && (!_this14.props.filterByType || _FileViewer.EXTENSIONS[_this14.props.filterByType].includes(item.ext))) {
|
|
1316
|
-
_this14.props.onSelect(item.id, true);
|
|
1344
|
+
_this14.props.onSelect(item.id, true, !!_this14.state.folders[item.id]);
|
|
1317
1345
|
}
|
|
1318
1346
|
},
|
|
1319
|
-
className: this.props.classes[
|
|
1347
|
+
className: this.props.classes["itemDeleteButton".concat(this.state.viewType)],
|
|
1320
1348
|
size: "large"
|
|
1321
1349
|
}, /*#__PURE__*/_react["default"].createElement(_Edit["default"], {
|
|
1322
1350
|
fontSize: "small"
|
|
1323
1351
|
})) : /*#__PURE__*/_react["default"].createElement("div", {
|
|
1324
|
-
className: this.props.classes[
|
|
1352
|
+
className: this.props.classes["itemDeleteButton".concat(this.state.viewType)]
|
|
1325
1353
|
})), this.state.viewType === TABLE && this.props.allowDownload ? /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
1326
1354
|
download: true,
|
|
1327
1355
|
href: this.imagePrefix + item.id,
|
|
1328
|
-
className: this.props.classes[
|
|
1356
|
+
className: this.props.classes["itemDownloadButton".concat(this.state.viewType)],
|
|
1329
1357
|
onClick: function onClick(e) {
|
|
1330
1358
|
return e.stopPropagation();
|
|
1331
1359
|
},
|
|
1332
1360
|
size: "large"
|
|
1333
|
-
}, /*#__PURE__*/_react["default"].createElement(_SaveAlt["default"], null)) : null, this.state.viewType === TABLE && this.props.allowDelete && item.id !== 'vis.0/' && item.id !== USER_DATA
|
|
1334
|
-
size: "large",
|
|
1361
|
+
}, /*#__PURE__*/_react["default"].createElement(_SaveAlt["default"], null)) : null, this.state.viewType === TABLE && this.props.allowDelete && item.id !== 'vis.0/' && item.id !== USER_DATA ? /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
1335
1362
|
"aria-label": "delete",
|
|
1336
1363
|
onClick: function onClick(e) {
|
|
1337
1364
|
e.stopPropagation();
|
|
@@ -1344,11 +1371,12 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1344
1371
|
});
|
|
1345
1372
|
}
|
|
1346
1373
|
},
|
|
1347
|
-
className: this.props.classes[
|
|
1374
|
+
className: this.props.classes["itemDeleteButton".concat(this.state.viewType)],
|
|
1375
|
+
size: "large"
|
|
1348
1376
|
}, /*#__PURE__*/_react["default"].createElement(_Delete["default"], {
|
|
1349
1377
|
fontSize: "small"
|
|
1350
1378
|
})) : this.state.viewType === TABLE && this.props.allowDelete ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
1351
|
-
className: this.props.classes[
|
|
1379
|
+
className: this.props.classes["itemDeleteButton".concat(this.state.viewType)]
|
|
1352
1380
|
}) : null);
|
|
1353
1381
|
}
|
|
1354
1382
|
}, {
|
|
@@ -1373,46 +1401,46 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1373
1401
|
}
|
|
1374
1402
|
});
|
|
1375
1403
|
return res;
|
|
1376
|
-
}
|
|
1377
|
-
return this.state.folders[folderId].map(function (item) {
|
|
1378
|
-
var res = [];
|
|
1404
|
+
}
|
|
1379
1405
|
|
|
1380
|
-
|
|
1381
|
-
|
|
1406
|
+
return this.state.folders[folderId].map(function (item) {
|
|
1407
|
+
var res = [];
|
|
1382
1408
|
|
|
1383
|
-
|
|
1409
|
+
if (item.folder) {
|
|
1410
|
+
var expanded = _this15.state.expanded.includes(item.id);
|
|
1384
1411
|
|
|
1385
|
-
|
|
1386
|
-
res.push(_this15.renderItems(item.id));
|
|
1387
|
-
}
|
|
1388
|
-
} else if ((!_this15.props.filterFiles || _this15.props.filterFiles.includes(item.ext)) && (!_this15.props.filterByType || _FileViewer.EXTENSIONS[_this15.props.filterByType].includes(item.ext))) {
|
|
1389
|
-
res.push(_this15.renderFile(item));
|
|
1390
|
-
} else {
|
|
1391
|
-
return null;
|
|
1392
|
-
}
|
|
1412
|
+
res.push(_this15.renderFolder(item, expanded));
|
|
1393
1413
|
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
}
|
|
1402
|
-
}, /*#__PURE__*/_react["default"].createElement(_CircularProgress["default"], {
|
|
1403
|
-
key: folderId,
|
|
1404
|
-
color: "secondary",
|
|
1405
|
-
size: 24
|
|
1406
|
-
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
1407
|
-
style: {
|
|
1408
|
-
position: 'absolute',
|
|
1409
|
-
zIndex: 2,
|
|
1410
|
-
top: 4,
|
|
1411
|
-
width: 24,
|
|
1412
|
-
textAlign: 'center'
|
|
1414
|
+
if (_this15.state.folders[item.id] && expanded) {
|
|
1415
|
+
res.push(_this15.renderItems(item.id));
|
|
1416
|
+
}
|
|
1417
|
+
} else if ((!_this15.props.filterFiles || _this15.props.filterFiles.includes(item.ext)) && (!_this15.props.filterByType || _FileViewer.EXTENSIONS[_this15.props.filterByType].includes(item.ext))) {
|
|
1418
|
+
res.push(_this15.renderFile(item));
|
|
1419
|
+
} else {
|
|
1420
|
+
return null;
|
|
1413
1421
|
}
|
|
1414
|
-
|
|
1422
|
+
|
|
1423
|
+
return res;
|
|
1424
|
+
});
|
|
1415
1425
|
}
|
|
1426
|
+
|
|
1427
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
1428
|
+
style: {
|
|
1429
|
+
position: 'relative'
|
|
1430
|
+
}
|
|
1431
|
+
}, /*#__PURE__*/_react["default"].createElement(_CircularProgress["default"], {
|
|
1432
|
+
key: folderId,
|
|
1433
|
+
color: "secondary",
|
|
1434
|
+
size: 24
|
|
1435
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
1436
|
+
style: {
|
|
1437
|
+
position: 'absolute',
|
|
1438
|
+
zIndex: 2,
|
|
1439
|
+
top: 4,
|
|
1440
|
+
width: 24,
|
|
1441
|
+
textAlign: 'center'
|
|
1442
|
+
}
|
|
1443
|
+
}, this.state.queueLength));
|
|
1416
1444
|
}
|
|
1417
1445
|
}, {
|
|
1418
1446
|
key: "renderToolbar",
|
|
@@ -1440,7 +1468,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1440
1468
|
"aria-label": "view mode",
|
|
1441
1469
|
onClick: function onClick() {
|
|
1442
1470
|
var viewType = _this16.state.viewType === TABLE ? TILE : TABLE;
|
|
1443
|
-
window.localStorage.setItem('files.viewType', viewType);
|
|
1471
|
+
(window._localStorage || window.localStorage).setItem('files.viewType', viewType);
|
|
1444
1472
|
var currentDir = _this16.state.selected;
|
|
1445
1473
|
|
|
1446
1474
|
if (isFile(currentDir)) {
|
|
@@ -1464,7 +1492,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1464
1492
|
color: this.state.filterEmpty ? 'secondary' : 'inherit',
|
|
1465
1493
|
"aria-label": "filter empty",
|
|
1466
1494
|
onClick: function onClick() {
|
|
1467
|
-
window.localStorage.setItem('file.empty', !_this16.state.filterEmpty);
|
|
1495
|
+
(window._localStorage || window.localStorage).setItem('file.empty', !_this16.state.filterEmpty);
|
|
1468
1496
|
|
|
1469
1497
|
_this16.setState({
|
|
1470
1498
|
filterEmpty: !_this16.state.filterEmpty
|
|
@@ -1475,7 +1503,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1475
1503
|
edge: "start",
|
|
1476
1504
|
title: this.props.t('ra_Reload files'),
|
|
1477
1505
|
className: this.props.classes.menuButton,
|
|
1478
|
-
color:
|
|
1506
|
+
color: "inherit",
|
|
1479
1507
|
"aria-label": "reload files",
|
|
1480
1508
|
onClick: function onClick() {
|
|
1481
1509
|
return _this16.setState({
|
|
@@ -1487,10 +1515,10 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1487
1515
|
size: "large"
|
|
1488
1516
|
}, /*#__PURE__*/_react["default"].createElement(_Refresh["default"], null)), this.props.allowCreateFolder ? /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
1489
1517
|
edge: "start",
|
|
1490
|
-
disabled: this.state.
|
|
1518
|
+
disabled: !this.state.selected || !this.state.folders[this.state.selected] || this.limitToPath && !this.state.selected.startsWith(this.limitToPath + '/') && this.limitToPath !== this.state.selected,
|
|
1491
1519
|
title: this.props.t('ra_Create folder'),
|
|
1492
1520
|
className: this.props.classes.menuButton,
|
|
1493
|
-
color:
|
|
1521
|
+
color: "inherit",
|
|
1494
1522
|
"aria-label": "add folder",
|
|
1495
1523
|
onClick: function onClick() {
|
|
1496
1524
|
return _this16.setState({
|
|
@@ -1500,10 +1528,10 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1500
1528
|
size: "large"
|
|
1501
1529
|
}, /*#__PURE__*/_react["default"].createElement(_CreateNewFolder["default"], null)) : null, this.props.allowUpload ? /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
1502
1530
|
edge: "start",
|
|
1503
|
-
disabled: this.state.
|
|
1531
|
+
disabled: !this.state.selected || !this.state.folders[this.state.selected] || this.limitToPath && !this.state.selected.startsWith(this.limitToPath + '/') && this.limitToPath !== this.state.selected,
|
|
1504
1532
|
title: this.props.t('ra_Upload file'),
|
|
1505
1533
|
className: this.props.classes.menuButton,
|
|
1506
|
-
color:
|
|
1534
|
+
color: "inherit",
|
|
1507
1535
|
"aria-label": "upload file",
|
|
1508
1536
|
onClick: function onClick() {
|
|
1509
1537
|
return _this16.setState({
|
|
@@ -1514,7 +1542,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1514
1542
|
}, /*#__PURE__*/_react["default"].createElement(_Publish["default"], null)) : null, /*#__PURE__*/_react["default"].createElement(_material.Tooltip, {
|
|
1515
1543
|
title: this.props.t('ra_Background image')
|
|
1516
1544
|
}, /*#__PURE__*/_react["default"].createElement(_IconButton["default"], {
|
|
1517
|
-
color:
|
|
1545
|
+
color: "inherit",
|
|
1518
1546
|
edge: "start",
|
|
1519
1547
|
className: this.props.classes.menuButton,
|
|
1520
1548
|
onClick: this.setStateBackgroundImage,
|
|
@@ -1575,7 +1603,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1575
1603
|
|
|
1576
1604
|
var parent = _this17.findItem(parentFolder);
|
|
1577
1605
|
|
|
1578
|
-
var id = parentFolder
|
|
1606
|
+
var id = "".concat(parentFolder, "/").concat(name);
|
|
1579
1607
|
folders[parentFolder].push({
|
|
1580
1608
|
id: id,
|
|
1581
1609
|
level: parent.level + 1,
|
|
@@ -1592,7 +1620,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1592
1620
|
expanded.sort();
|
|
1593
1621
|
}
|
|
1594
1622
|
|
|
1595
|
-
window.localStorage.setItem('files.expanded', JSON.stringify(expanded));
|
|
1623
|
+
(window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));
|
|
1596
1624
|
|
|
1597
1625
|
_this17.setState({
|
|
1598
1626
|
addFolder: false,
|
|
@@ -1611,13 +1639,15 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1611
1639
|
return text.replace(/[^-_\w\d]/, '_');
|
|
1612
1640
|
}
|
|
1613
1641
|
});
|
|
1614
|
-
} else {
|
|
1615
|
-
return null;
|
|
1616
1642
|
}
|
|
1643
|
+
|
|
1644
|
+
return null;
|
|
1617
1645
|
}
|
|
1618
1646
|
}, {
|
|
1619
1647
|
key: "componentDidUpdate",
|
|
1620
|
-
value: function
|
|
1648
|
+
value: function
|
|
1649
|
+
/* prevProps , prevState, snapshot */
|
|
1650
|
+
componentDidUpdate() {
|
|
1621
1651
|
var _this18 = this;
|
|
1622
1652
|
|
|
1623
1653
|
this.setOpacityTimer && clearTimeout(this.setOpacityTimer);
|
|
@@ -1636,7 +1666,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1636
1666
|
var parts = fileName.split('/');
|
|
1637
1667
|
var adapter = parts.shift();
|
|
1638
1668
|
return this.props.socket.writeFile64(adapter, parts.join('/'), data)["catch"](function (e) {
|
|
1639
|
-
return window.alert(
|
|
1669
|
+
return window.alert("Cannot write file: ".concat(e));
|
|
1640
1670
|
});
|
|
1641
1671
|
}
|
|
1642
1672
|
}, {
|
|
@@ -1710,7 +1740,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1710
1740
|
return window.alert(_this19.props.t('ra_Invalid parent folder!'));
|
|
1711
1741
|
}
|
|
1712
1742
|
|
|
1713
|
-
var id = parentFolder
|
|
1743
|
+
var id = "".concat(parentFolder, "/").concat(file.name);
|
|
1714
1744
|
|
|
1715
1745
|
_this19.uploadFile(id, reader.result).then(function () {
|
|
1716
1746
|
if (! --count) {
|
|
@@ -1724,7 +1754,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1724
1754
|
if (!expanded.includes(parentFolder)) {
|
|
1725
1755
|
expanded.push(parentFolder);
|
|
1726
1756
|
expanded.sort();
|
|
1727
|
-
window.localStorage.setItem('files.expanded', JSON.stringify(expanded));
|
|
1757
|
+
(window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));
|
|
1728
1758
|
}
|
|
1729
1759
|
|
|
1730
1760
|
_this19.setState({
|
|
@@ -1741,7 +1771,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1741
1771
|
if (!expanded.includes(parentFolder)) {
|
|
1742
1772
|
expanded.push(parentFolder);
|
|
1743
1773
|
expanded.sort();
|
|
1744
|
-
window.localStorage.setItem('files.expanded', JSON.stringify(expanded));
|
|
1774
|
+
(window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));
|
|
1745
1775
|
}
|
|
1746
1776
|
|
|
1747
1777
|
_this19.setState({
|
|
@@ -1776,9 +1806,9 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1776
1806
|
className: _this19.props.classes.uploadCenterText
|
|
1777
1807
|
}, _this19.state.uploadFile === 'dragging' ? _this19.props.t('ra_Drop file here') : _this19.props.t('ra_Place your files here or click here to open the browse dialog')))));
|
|
1778
1808
|
})];
|
|
1779
|
-
} else {
|
|
1780
|
-
return null;
|
|
1781
1809
|
}
|
|
1810
|
+
|
|
1811
|
+
return null;
|
|
1782
1812
|
}
|
|
1783
1813
|
}, {
|
|
1784
1814
|
key: "deleteRecursive",
|
|
@@ -1788,15 +1818,16 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1788
1818
|
var item = this.findItem(id);
|
|
1789
1819
|
|
|
1790
1820
|
if (item.folder) {
|
|
1791
|
-
return (this.state.folders[id] ? Promise.all(this.state.folders[id].map(function (
|
|
1792
|
-
return _this20.deleteRecursive(
|
|
1821
|
+
return (this.state.folders[id] ? Promise.all(this.state.folders[id].map(function (_item) {
|
|
1822
|
+
return _this20.deleteRecursive(_item.id);
|
|
1793
1823
|
})) : Promise.resolve()).then(function () {
|
|
1794
1824
|
// If it is folder of second level
|
|
1795
1825
|
if (item.level >= 1) {
|
|
1796
|
-
var
|
|
1797
|
-
|
|
1826
|
+
var _parts = id.split('/');
|
|
1827
|
+
|
|
1828
|
+
var _adapter = _parts.shift();
|
|
1798
1829
|
|
|
1799
|
-
_this20.props.socket.deleteFolder(
|
|
1830
|
+
_this20.props.socket.deleteFolder(_adapter, _parts.join('/')).then(function () {
|
|
1800
1831
|
// remove this folder
|
|
1801
1832
|
var folders = JSON.parse(JSON.stringify(_this20.state.folders));
|
|
1802
1833
|
delete folders[item.id]; // delete folder from parent item
|
|
@@ -1822,18 +1853,18 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1822
1853
|
});
|
|
1823
1854
|
}
|
|
1824
1855
|
});
|
|
1825
|
-
}
|
|
1826
|
-
var parts = id.split('/');
|
|
1827
|
-
var adapter = parts.shift();
|
|
1856
|
+
}
|
|
1828
1857
|
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
return
|
|
1835
|
-
}
|
|
1858
|
+
var parts = id.split('/');
|
|
1859
|
+
var adapter = parts.shift();
|
|
1860
|
+
|
|
1861
|
+
if (parts.length) {
|
|
1862
|
+
return this.props.socket.deleteFile(adapter, parts.join('/'))["catch"](function (e) {
|
|
1863
|
+
return window.alert("Cannot delete file: ".concat(e));
|
|
1864
|
+
});
|
|
1836
1865
|
}
|
|
1866
|
+
|
|
1867
|
+
return Promise.resolve();
|
|
1837
1868
|
}
|
|
1838
1869
|
}, {
|
|
1839
1870
|
key: "deleteItem",
|
|
@@ -1852,7 +1883,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1852
1883
|
if (pos !== -1) {
|
|
1853
1884
|
var expanded = (0, _toConsumableArray2["default"])(_this21.state.expanded);
|
|
1854
1885
|
expanded.splice(pos, 1);
|
|
1855
|
-
window.localStorage.setItem('files.expanded', JSON.stringify(expanded));
|
|
1886
|
+
(window._localStorage || window.localStorage).setItem('files.expanded', JSON.stringify(expanded));
|
|
1856
1887
|
newState.expanded = expanded;
|
|
1857
1888
|
}
|
|
1858
1889
|
|
|
@@ -1900,13 +1931,13 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1900
1931
|
}, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], {
|
|
1901
1932
|
id: "form-dialog-title"
|
|
1902
1933
|
}, this.props.t('ra_Confirm deletion of %s', this.state.deleteItem.split('/').pop())), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], null, /*#__PURE__*/_react["default"].createElement(_DialogContentText["default"], null, this.props.t('ra_Are you sure?'))), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], null, /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
1934
|
+
color: "grey",
|
|
1903
1935
|
variant: "contained",
|
|
1904
1936
|
onClick: function onClick() {
|
|
1905
1937
|
_this22.suppressDeleteConfirm = Date.now() + 60000 * 5;
|
|
1906
1938
|
|
|
1907
1939
|
_this22.deleteItem();
|
|
1908
|
-
}
|
|
1909
|
-
color: "grey"
|
|
1940
|
+
}
|
|
1910
1941
|
}, this.props.t('ra_Delete (no confirm for 5 mins)')), /*#__PURE__*/_react["default"].createElement(_Button["default"], {
|
|
1911
1942
|
variant: "contained",
|
|
1912
1943
|
onClick: function onClick() {
|
|
@@ -1923,9 +1954,9 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1923
1954
|
},
|
|
1924
1955
|
color: "grey"
|
|
1925
1956
|
}, this.props.t('ra_Cancel'))));
|
|
1926
|
-
} else {
|
|
1927
|
-
return false;
|
|
1928
1957
|
}
|
|
1958
|
+
|
|
1959
|
+
return false;
|
|
1929
1960
|
}
|
|
1930
1961
|
}, {
|
|
1931
1962
|
key: "renderViewDialog",
|
|
@@ -1967,9 +1998,9 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
1967
1998
|
});
|
|
1968
1999
|
}
|
|
1969
2000
|
});
|
|
1970
|
-
} else {
|
|
1971
|
-
return null;
|
|
1972
2001
|
}
|
|
2002
|
+
|
|
2003
|
+
return null;
|
|
1973
2004
|
}
|
|
1974
2005
|
}, {
|
|
1975
2006
|
key: "updateItemsAcl",
|
|
@@ -2003,7 +2034,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
2003
2034
|
folder = getParentDir(_this26.state.path);
|
|
2004
2035
|
}
|
|
2005
2036
|
|
|
2006
|
-
|
|
2037
|
+
new Promise(function (resolve) {
|
|
2007
2038
|
if (!_this26.state.folders[folder]) {
|
|
2008
2039
|
return _this26.browseFolder(folder).then(function (folders) {
|
|
2009
2040
|
return _this26.setState({
|
|
@@ -2016,9 +2047,9 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
2016
2047
|
errorText: err === NOT_FOUND ? _this26.props.t('ra_Cannot find "%s"', folder) : _this26.props.t('ra_Cannot read "%s"', folder)
|
|
2017
2048
|
});
|
|
2018
2049
|
});
|
|
2019
|
-
} else {
|
|
2020
|
-
return resolve(true);
|
|
2021
2050
|
}
|
|
2051
|
+
|
|
2052
|
+
return resolve(true);
|
|
2022
2053
|
}).then(function (result) {
|
|
2023
2054
|
return result && _this26.setState({
|
|
2024
2055
|
selected: _this26.state.path,
|
|
@@ -2038,7 +2069,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
2038
2069
|
value: function renderBreadcrumb() {
|
|
2039
2070
|
var _this27 = this;
|
|
2040
2071
|
|
|
2041
|
-
var parts = this.state.selected.startsWith('/') ? this.state.selected.split('/') : (
|
|
2072
|
+
var parts = this.state.selected.startsWith('/') ? this.state.selected.split('/') : "/".concat(this.state.selected).split('/');
|
|
2042
2073
|
var p = [];
|
|
2043
2074
|
return parts.map(function (part, i) {
|
|
2044
2075
|
part && p.push(part);
|
|
@@ -2046,26 +2077,26 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
2046
2077
|
|
|
2047
2078
|
if (i < parts.length - 1) {
|
|
2048
2079
|
return [/*#__PURE__*/_react["default"].createElement("div", {
|
|
2049
|
-
key: _this27.state.selected
|
|
2080
|
+
key: "".concat(_this27.state.selected, "_").concat(i),
|
|
2050
2081
|
className: _this27.props.classes.pathDivBreadcrumbDir,
|
|
2051
2082
|
onClick: function onClick(e) {
|
|
2052
2083
|
return _this27.changeFolder(e, path || '/');
|
|
2053
2084
|
}
|
|
2054
2085
|
}, part || _this27.props.t('ra_Root')), /*#__PURE__*/_react["default"].createElement("span", {
|
|
2055
|
-
key: _this27.state.selected
|
|
2086
|
+
key: "".concat(_this27.state.selected, "_s_").concat(i),
|
|
2056
2087
|
className: _this27.props.classes.pathDivBreadcrumbSlash
|
|
2057
2088
|
}, '>')];
|
|
2058
|
-
} else {
|
|
2059
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
2060
|
-
key: _this27.state.selected + '_' + i,
|
|
2061
|
-
className: _this27.props.classes.pathDivBreadcrumbFile,
|
|
2062
|
-
onClick: function onClick() {
|
|
2063
|
-
return _this27.setState({
|
|
2064
|
-
pathFocus: true
|
|
2065
|
-
});
|
|
2066
|
-
}
|
|
2067
|
-
}, part);
|
|
2068
2089
|
}
|
|
2090
|
+
|
|
2091
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
2092
|
+
key: "".concat(_this27.state.selected, "_").concat(i),
|
|
2093
|
+
className: _this27.props.classes.pathDivBreadcrumbFile,
|
|
2094
|
+
onClick: function onClick() {
|
|
2095
|
+
return _this27.setState({
|
|
2096
|
+
pathFocus: true
|
|
2097
|
+
});
|
|
2098
|
+
}
|
|
2099
|
+
}, part);
|
|
2069
2100
|
});
|
|
2070
2101
|
}
|
|
2071
2102
|
}, {
|
|
@@ -2081,7 +2112,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
2081
2112
|
onKeyDown: function onKeyDown(e) {
|
|
2082
2113
|
return e.keyCode === 13 && _this28.changeToPath();
|
|
2083
2114
|
},
|
|
2084
|
-
onBlur: function onBlur(
|
|
2115
|
+
onBlur: function onBlur() {
|
|
2085
2116
|
return _this28.changeToPath();
|
|
2086
2117
|
},
|
|
2087
2118
|
onChange: function onChange(e) {
|
|
@@ -2119,7 +2150,7 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
2119
2150
|
style: this.props.style,
|
|
2120
2151
|
className: _Utils["default"].clsx(this.props.classes.root, this.props.className)
|
|
2121
2152
|
}, this.props.showToolbar ? this.renderToolbar() : null, this.state.viewType === TILE ? this.renderPath() : null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
2122
|
-
className: _Utils["default"].clsx(this.props.classes.filesDiv, this.props.classes[
|
|
2153
|
+
className: _Utils["default"].clsx(this.props.classes.filesDiv, this.props.classes["filesDiv".concat(this.state.viewType)])
|
|
2123
2154
|
}, this.state.viewType === TABLE ? this.renderItems('/') : this.renderItems(this.state.currentDir || '/')), this.props.allowUpload ? this.renderInputDialog() : null, this.props.allowUpload ? this.renderUpload() : null, this.props.allowDelete ? this.renderDeleteDialog() : null, this.props.allowView ? this.renderViewDialog() : null, this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData), this.renderError());
|
|
2124
2155
|
}
|
|
2125
2156
|
}], [{
|
|
@@ -2128,10 +2159,24 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
2128
2159
|
if (props.expertMode !== undefined && props.expertMode !== state.expertMode) {
|
|
2129
2160
|
return {
|
|
2130
2161
|
expertMode: props.expertMode,
|
|
2131
|
-
loadAllFolders:
|
|
2162
|
+
loadAllFolders: true
|
|
2132
2163
|
};
|
|
2133
|
-
}
|
|
2134
|
-
|
|
2164
|
+
}
|
|
2165
|
+
|
|
2166
|
+
return null;
|
|
2167
|
+
}
|
|
2168
|
+
}, {
|
|
2169
|
+
key: "getEditFile",
|
|
2170
|
+
value: function getEditFile(ext) {
|
|
2171
|
+
switch (ext) {
|
|
2172
|
+
case 'json':
|
|
2173
|
+
case 'js':
|
|
2174
|
+
case 'html':
|
|
2175
|
+
case 'txt':
|
|
2176
|
+
return true;
|
|
2177
|
+
|
|
2178
|
+
default:
|
|
2179
|
+
return false;
|
|
2135
2180
|
}
|
|
2136
2181
|
}
|
|
2137
2182
|
}]);
|
|
@@ -2139,12 +2184,6 @@ var FileBrowser = /*#__PURE__*/function (_Component) {
|
|
|
2139
2184
|
}(_react.Component);
|
|
2140
2185
|
|
|
2141
2186
|
FileBrowser.defaultProps = {
|
|
2142
|
-
objectAddBoolean: false,
|
|
2143
|
-
objectEditBoolean: false,
|
|
2144
|
-
objectStatesView: false,
|
|
2145
|
-
objectImportExport: false,
|
|
2146
|
-
objectEditOfAccessControl: false,
|
|
2147
|
-
modalNewObject: function modalNewObject() {},
|
|
2148
2187
|
modalEditOfAccessControl: function modalEditOfAccessControl() {}
|
|
2149
2188
|
};
|
|
2150
2189
|
FileBrowser.propTypes = {
|
|
@@ -2171,8 +2210,9 @@ FileBrowser.propTypes = {
|
|
|
2171
2210
|
// like ['png', 'svg', 'bmp', 'jpg', 'jpeg']
|
|
2172
2211
|
filterByType: _propTypes["default"].string,
|
|
2173
2212
|
// images, code or txt from FileViewer.EXTENSIONS
|
|
2174
|
-
onSelect: _propTypes["default"].func
|
|
2175
|
-
|
|
2213
|
+
onSelect: _propTypes["default"].func,
|
|
2214
|
+
// function (id, isDoubleClick)
|
|
2215
|
+
modalEditOfAccessControl: _propTypes["default"].func
|
|
2176
2216
|
};
|
|
2177
2217
|
/** @type {typeof FileBrowser} */
|
|
2178
2218
|
|