@seafile/seafile-database 0.0.19 → 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/api/api.js +27 -21
  2. package/dist/assets/css/dropdown-menu.css +96 -0
  3. package/dist/common/components/file-tag/index.js +2 -2
  4. package/dist/common/utils/icon-utils.js +9 -2
  5. package/dist/common/utils/utils.js +28 -0
  6. package/dist/components/cell-editors/index.js +2 -2
  7. package/dist/components/cell-editors/multiple-select-editor/index.js +2 -2
  8. package/dist/components/cell-editors/single-select-editor/index.js +2 -2
  9. package/dist/components/cell-editors/tags-editor/index.js +1 -2
  10. package/dist/components/context-menu/index.js +2 -2
  11. package/dist/components/data-process-setter/filter-setter.js +1 -2
  12. package/dist/components/data-process-setter/manage-setter.js +1 -2
  13. package/dist/components/data-process-setter/sort-setter.js +2 -2
  14. package/dist/components/dialogs/custom-modal-header/index.css +34 -0
  15. package/dist/components/dialogs/custom-modal-header/index.js +34 -0
  16. package/dist/components/dialogs/insert-view-dialog.js +104 -0
  17. package/dist/components/icons/arrow-down-icon.js +19 -0
  18. package/dist/components/icons/arrow-up-icon.js +19 -0
  19. package/dist/components/icons/close-icon.js +23 -0
  20. package/dist/components/icons/index.js +14 -1
  21. package/dist/components/icons/set-up-icon.js +22 -0
  22. package/dist/components/image-previewer/_hooks/metadata-details.js +1 -1
  23. package/dist/components/image-previewer/_hooks/metadata-status.js +2 -2
  24. package/dist/components/image-previewer/image-detail/index.js +1 -1
  25. package/dist/components/image-previewer/index.js +2 -2
  26. package/dist/components/popover/groupbys-popover/index.js +5 -5
  27. package/dist/components/searcher/index.js +3 -3
  28. package/dist/components/view-toolbar/card-view-toolbar/index.js +89 -0
  29. package/dist/components/view-toolbar/index.css +54 -1
  30. package/dist/components/view-toolbar/index.js +40 -48
  31. package/dist/components/view-toolbar/rows-toolbar/index.js +2 -2
  32. package/dist/components/view-toolbar/table-view-toolbar/index.js +1 -1
  33. package/dist/components/view-toolbar/view-items/index.css +55 -0
  34. package/dist/components/view-toolbar/view-items/index.js +98 -0
  35. package/dist/components/view-toolbar/view-items/views-popover.js +80 -0
  36. package/dist/constants/event-bus-type.js +3 -1
  37. package/dist/constants/view/index.js +32 -2
  38. package/dist/context.js +89 -34
  39. package/dist/database.js +11 -18
  40. package/dist/file-base.js +31 -0
  41. package/dist/global-settings.js +3 -1
  42. package/dist/hooks/collaborators.js +9 -3
  43. package/dist/hooks/{app-context.js → file-repo-context.js} +25 -20
  44. package/dist/hooks/file-view-context.js +69 -0
  45. package/dist/hooks/index.js +14 -14
  46. package/dist/hooks/metadata.js +45 -47
  47. package/dist/hooks/tagsData.js +8 -2
  48. package/dist/index.js +3 -3
  49. package/dist/locale/en.js +6 -1
  50. package/dist/locale/zh_CN.js +6 -1
  51. package/dist/store/data-processor.js +1 -0
  52. package/dist/views/card/card-items/card-item/formatter.js +45 -0
  53. package/dist/views/card/card-items/card-item/index.css +234 -0
  54. package/dist/views/card/card-items/card-item/index.js +206 -0
  55. package/dist/views/card/card-items/index.css +31 -0
  56. package/dist/views/card/card-items/index.js +189 -0
  57. package/dist/views/card/context-menu/index.js +165 -0
  58. package/dist/views/card/index.js +64 -0
  59. package/dist/views/card/settings/index.css +68 -0
  60. package/dist/views/card/settings/index.js +143 -0
  61. package/dist/views/index.js +5 -3
  62. package/dist/views/table/editors/editor-container/index.js +2 -2
  63. package/dist/views/table/formatters/file-name.js +3 -3
  64. package/dist/views/table/index.js +2 -3
  65. package/dist/views/table/table-main/index.js +2 -2
  66. package/dist/views/table/table-main/rows/row/cell/formatter.js +2 -2
  67. package/dist/views/table/table-main/rows/row/cell/index.js +2 -2
  68. package/dist/views/table/table-main/rows-header/cell/dropdown-menu/index.js +1 -1
  69. package/dist/views/table/table-main/rows-header/cell/index.js +1 -1
  70. package/dist/views/table/table-main/rows-header/index.js +2 -2
  71. package/package.json +5 -2
  72. package/dist/components/view-toolbar/views/all-views/index.css +0 -85
  73. package/dist/components/view-toolbar/views/all-views/index.js +0 -165
  74. package/dist/components/view-toolbar/views/index.css +0 -22
  75. package/dist/components/view-toolbar/views/index.js +0 -215
  76. package/dist/components/view-toolbar/views/view-item/index.css +0 -83
  77. package/dist/components/view-toolbar/views/view-item/index.js +0 -159
  78. package/dist/hooks/viewsData.js +0 -154
@@ -10,11 +10,14 @@ var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _constants = require("../../constants");
11
11
  var _addIcon = _interopRequireDefault(require("./add-icon"));
12
12
  var _addTableIcon = _interopRequireDefault(require("./add-table-icon"));
13
+ var _arrowDownIcon = _interopRequireDefault(require("./arrow-down-icon"));
14
+ var _arrowUpIcon = _interopRequireDefault(require("./arrow-up-icon"));
13
15
  var _checkCircleIcon = _interopRequireDefault(require("./check-circle-icon"));
14
16
  var _checkIcon = _interopRequireDefault(require("./check-icon"));
15
17
  var _checkMarkIcon = _interopRequireDefault(require("./check-mark-icon"));
16
18
  var _checkSquareSolidIcon = _interopRequireDefault(require("./check-square-solid-icon"));
17
19
  var _checkboxIcon = _interopRequireDefault(require("./checkbox-icon"));
20
+ var _closeIcon = _interopRequireDefault(require("./close-icon"));
18
21
  var _collaboratorIcon = _interopRequireDefault(require("./collaborator-icon"));
19
22
  var _copyIcon = _interopRequireDefault(require("./copy-icon"));
20
23
  var _creatorIcon = _interopRequireDefault(require("./creator-icon"));
@@ -33,6 +36,7 @@ var _hideIcon = _interopRequireDefault(require("./hide-icon"));
33
36
  var _locationIcon = _interopRequireDefault(require("./location-icon"));
34
37
  var _longTextIcon = _interopRequireDefault(require("./long-text-icon"));
35
38
  var _manageIcon = _interopRequireDefault(require("./manage-icon"));
39
+ var _moreIcon = _interopRequireDefault(require("./more-icon"));
36
40
  var _multipleSelectIcon = _interopRequireDefault(require("./multiple-select-icon"));
37
41
  var _numberIcon = _interopRequireDefault(require("./number-icon"));
38
42
  var _partiallySelectedIcon = _interopRequireDefault(require("./partially-selected-icon"));
@@ -43,6 +47,7 @@ var _rowHeightDouble = _interopRequireDefault(require("./row-height-double"));
43
47
  var _rowHeightQuadruple = _interopRequireDefault(require("./row-height-quadruple"));
44
48
  var _rowHeightTriple = _interopRequireDefault(require("./row-height-triple"));
45
49
  var _searchIcon = _interopRequireDefault(require("./search-icon"));
50
+ var _setUpIcon = _interopRequireDefault(require("./set-up-icon"));
46
51
  var _singleSelectIcon = _interopRequireDefault(require("./single-select-icon"));
47
52
  var _sortAscendingIcon = _interopRequireDefault(require("./sort-ascending-icon"));
48
53
  var _sortDescendingIcon = _interopRequireDefault(require("./sort-descending-icon"));
@@ -126,7 +131,7 @@ function Icon(_ref) {
126
131
  case 'url':
127
132
  return /*#__PURE__*/_react.default.createElement(_urlIcon.default, props);
128
133
  case 'more':
129
- return /*#__PURE__*/_react.default.createElement(_urlIcon.default, props);
134
+ return /*#__PURE__*/_react.default.createElement(_moreIcon.default, props);
130
135
  case 'check-circle':
131
136
  return /*#__PURE__*/_react.default.createElement(_checkCircleIcon.default, props);
132
137
  case 'exclamation-circle':
@@ -155,6 +160,14 @@ function Icon(_ref) {
155
160
  return /*#__PURE__*/_react.default.createElement(_helpIcon.default, props);
156
161
  case 'partially-selected':
157
162
  return /*#__PURE__*/_react.default.createElement(_partiallySelectedIcon.default, props);
163
+ case 'close':
164
+ return /*#__PURE__*/_react.default.createElement(_closeIcon.default, props);
165
+ case 'arrow-up':
166
+ return /*#__PURE__*/_react.default.createElement(_arrowUpIcon.default, props);
167
+ case 'arrow-down':
168
+ return /*#__PURE__*/_react.default.createElement(_arrowDownIcon.default, props);
169
+ case 'set-up':
170
+ return /*#__PURE__*/_react.default.createElement(_setUpIcon.default, props);
158
171
  default:
159
172
  return /*#__PURE__*/_react.default.createElement(_textIcon.default, props);
160
173
  }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ const SetUpIcon = props => /*#__PURE__*/React.createElement("svg", Object.assign({
10
+ width: 32,
11
+ height: 32,
12
+ viewBox: "0 0 32 32",
13
+ fill: "none",
14
+ xmlns: "http://www.w3.org/2000/svg"
15
+ }, props), /*#__PURE__*/React.createElement("path", {
16
+ d: "M12.3048 1.04102C13.0668 0.859993 13.8405 1.29543 14.0802 2.04102C14.3696 2.94055 15.1732 3.53862 16.1124 3.53223L16.3068 3.52344C17.2681 3.44595 18.0378 2.85385 18.341 2.18946L18.4035 2.06738C18.7413 1.47614 19.4426 1.18166 20.1095 1.36817C21.4489 1.74318 22.6896 2.28193 23.9728 3.06934C25.1023 3.76249 26.2908 4.71126 27.2365 5.74121C27.7325 6.28157 27.7653 7.10175 27.3136 7.67969C26.7469 8.4046 26.6346 9.27919 27.0704 10.208C27.5879 10.9886 28.5746 11.4613 29.4884 11.3984L29.6251 11.3955C30.3005 11.4102 30.8912 11.8779 31.0509 12.5459C31.668 15.1295 31.6716 18.0018 30.924 20.6621C30.7125 21.4138 29.9599 21.8777 29.1935 21.7285C28.4485 21.5834 27.587 21.9403 27.0617 22.792C26.5366 23.6433 26.6069 24.5663 27.0695 25.1602C27.5508 25.778 27.476 26.6625 26.8976 27.1904C24.8547 29.0546 22.284 30.344 19.6954 30.959C18.9335 31.14 18.1598 30.7046 17.9201 29.959C17.6489 29.1159 16.9257 28.5374 16.0626 28.4736L15.8878 28.4678C14.8367 28.4754 13.9827 29.102 13.6593 29.8105C13.3525 30.4825 12.6021 30.8308 11.8908 30.6318C10.5514 30.2568 9.31064 29.7181 8.02747 28.9307C6.89795 28.2375 5.70942 27.2888 4.7638 26.2588C4.26774 25.7184 4.23493 24.8982 4.68665 24.3203C5.25363 23.5951 5.36538 22.7203 4.92884 21.791C4.41118 21.0111 3.4253 20.5388 2.51185 20.6016C1.78077 20.6518 1.11971 20.1668 0.949349 19.4541C0.332247 16.8705 0.328662 13.9982 1.0763 11.3379C1.28775 10.5863 2.04037 10.1223 2.80677 10.2715C3.55176 10.4166 4.41323 10.0597 4.93861 9.20801C5.46366 8.35672 5.39341 7.43367 4.93079 6.83985C4.44946 6.22204 4.52418 5.3375 5.10267 4.80957C7.14554 2.94543 9.7162 1.65606 12.3048 1.04102ZM11.8673 4.28223C10.4992 4.73716 9.17485 5.41808 8.0138 6.29102C8.55023 7.76552 8.32683 9.43023 7.49232 10.7832C6.65717 12.1371 5.26815 13.0849 3.70814 13.2705C3.44526 14.7249 3.43696 16.2401 3.65931 17.6875C5.07739 17.9423 6.41655 18.7335 7.2931 19.9355L7.51283 20.2607L7.58216 20.3857C8.33408 21.8973 8.3938 23.5361 7.75208 24.9922C8.33344 25.5126 8.97641 25.9933 9.59681 26.374C10.3047 26.8084 10.9826 27.1412 11.674 27.4043C12.6652 26.2383 14.1905 25.4798 15.8663 25.4678H15.8673C17.6431 25.4556 19.203 26.3424 20.132 27.7168C21.5003 27.2619 22.8243 26.581 23.9855 25.708C23.4497 24.2338 23.6736 22.5694 24.5079 21.2168C25.3429 19.8631 26.7315 18.9143 28.2911 18.7285C28.5539 17.274 28.5625 15.759 28.34 14.3115C26.798 14.0342 25.3492 13.1229 24.4874 11.7393C24.4623 11.6988 24.4393 11.6569 24.4181 11.6143C23.6661 10.1025 23.6053 8.46308 24.2472 7.00684C23.6661 6.48681 23.0234 6.00642 22.4035 5.62598C21.6951 5.19132 21.0171 4.85788 20.3253 4.59473C19.3341 5.76081 17.8098 6.52017 16.1339 6.53223H16.1329C14.3566 6.54435 12.7962 5.65729 11.8673 4.28223Z",
17
+ fill: "currentColor"
18
+ }), /*#__PURE__*/React.createElement("path", {
19
+ d: "M18.5 16C18.5 14.6193 17.3807 13.5 16 13.5C14.6193 13.5 13.5 14.6193 13.5 16C13.5 17.3807 14.6193 18.5 16 18.5C17.3807 18.5 18.5 17.3807 18.5 16ZM21.5 16C21.5 19.0376 19.0376 21.5 16 21.5C12.9624 21.5 10.5 19.0376 10.5 16C10.5 12.9624 12.9624 10.5 16 10.5C19.0376 10.5 21.5 12.9624 21.5 16Z",
20
+ fill: "currentColor"
21
+ }));
22
+ var _default = exports.default = SetUpIcon;
@@ -51,7 +51,7 @@ const MetadataDetailsProvider = _ref => {
51
51
  } = _ref;
52
52
  const {
53
53
  context
54
- } = (0, _hooks.useAppContext)();
54
+ } = (0, _hooks.useFileRepoContext)();
55
55
  const {
56
56
  enableMetadata,
57
57
  detailsSettings
@@ -10,7 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _loading = _interopRequireDefault(require("../../../common/components/loading"));
11
11
  var _toaster = _interopRequireDefault(require("../../../common/components/toaster"));
12
12
  var _utils = require("../../../common/utils/utils");
13
- var _appContext = require("../../../hooks/app-context");
13
+ var _hooks = require("../../../hooks");
14
14
  // This hook provides content related to seahub interaction, such as whether to enable extended attributes
15
15
  const MetadataStatusContext = /*#__PURE__*/_react.default.createContext(null);
16
16
  const MetadataStatusProvider = _ref => {
@@ -20,7 +20,7 @@ const MetadataStatusProvider = _ref => {
20
20
  } = _ref;
21
21
  const {
22
22
  context
23
- } = (0, _appContext.useAppContext)();
23
+ } = (0, _hooks.useFileRepoContext)();
24
24
  const [isLoading, setLoading] = (0, _react.useState)(true);
25
25
  const [enableMetadata, setEnableMetadata] = (0, _react.useState)(false);
26
26
  const [globalHiddenColumns, setGlobalHiddenColumns] = (0, _react.useState)([]);
@@ -31,7 +31,7 @@ const ImageFileDetail = _ref => {
31
31
  } = _ref;
32
32
  const {
33
33
  context
34
- } = (0, _hooks.useAppContext)();
34
+ } = (0, _hooks.useFileRepoContext)();
35
35
  const {
36
36
  headerComponent
37
37
  } = component;
@@ -10,7 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
10
10
  var _toaster = _interopRequireDefault(require("../../common/components/toaster"));
11
11
  var _utils = require("../../common/utils/utils");
12
12
  var _globalSettings = _interopRequireDefault(require("../../global-settings"));
13
- var _appContext = require("../../hooks/app-context");
13
+ var _hooks = require("../../hooks");
14
14
  var _cell = require("../../utils/cell");
15
15
  var _imageDialog = _interopRequireDefault(require("./image-dialog"));
16
16
  const ImagePreviewer = _ref => {
@@ -23,7 +23,7 @@ const ImagePreviewer = _ref => {
23
23
  } = _ref;
24
24
  const {
25
25
  context
26
- } = (0, _appContext.useAppContext)();
26
+ } = (0, _hooks.useFileRepoContext)();
27
27
  const [imageIndex, setImageIndex] = (0, _react.useState)(0);
28
28
  const [imageItems, setImageItems] = (0, _react.useState)([]);
29
29
  const repoID = (0, _react.useMemo)(() => {
@@ -11,7 +11,7 @@ var _reactstrap = require("reactstrap");
11
11
  var _isHotkey = _interopRequireDefault(require("is-hotkey"));
12
12
  var _customizeAddTool = _interopRequireDefault(require("../../../common/components/customize-add-tool"));
13
13
  var _dom = require("../../../common/utils/dom");
14
- var _appContext = require("../../../hooks/app-context");
14
+ var _hooks = require("../../../hooks");
15
15
  var _translate = _interopRequireDefault(require("../../../lang/translate"));
16
16
  var _constants = require("../../../constants");
17
17
  var _group = require("../../../utils/group");
@@ -29,7 +29,7 @@ const GroupbysPopover = _ref => {
29
29
  } = _ref;
30
30
  const {
31
31
  context
32
- } = (0, _appContext.useAppContext)();
32
+ } = (0, _hooks.useFileRepoContext)();
33
33
  const [groupbys, setGroupbys] = (0, _react.useState)(propsGroupBys);
34
34
  const [isChanged, setChanged] = (0, _react.useState)(false);
35
35
  const isSelectOpenRef = (0, _react.useState)(false);
@@ -66,7 +66,7 @@ const GroupbysPopover = _ref => {
66
66
  document.removeEventListener('keydown', onHotKey);
67
67
  unsubscribeOpenSelect();
68
68
  };
69
- }, [hide, onHotKey, setSelectStatus]);
69
+ }, [context.eventBus, hide, onHotKey, setSelectStatus]);
70
70
  const updateGroups = (0, _react.useCallback)(newGroupBys => {
71
71
  setChanged(true);
72
72
  setGroupbys(newGroupBys);
@@ -98,10 +98,10 @@ const GroupbysPopover = _ref => {
98
98
  }, [groupbys, updateGroups]);
99
99
  const hideAllGroups = (0, _react.useCallback)(() => {
100
100
  context.eventBus.dispatch(_constants.EVENT_BUS_TYPE.COLLAPSE_ALL_GROUPS);
101
- }, []);
101
+ }, [context.eventBus]);
102
102
  const showAllGroups = (0, _react.useCallback)(() => {
103
103
  context.eventBus.dispatch(_constants.EVENT_BUS_TYPE.EXPAND_ALL_GROUPS);
104
- }, []);
104
+ }, [context.eventBus]);
105
105
  const onPopoverInsideClick = (0, _react.useCallback)(event => {
106
106
  event.stopPropagation();
107
107
  }, []);
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _searchInput = _interopRequireDefault(require("../../common/components/search-input"));
11
- var _appContext = require("../../hooks/app-context");
11
+ var _hooks = require("../../hooks");
12
12
  var _translate = _interopRequireDefault(require("../../lang/translate"));
13
13
  var _constants = require("../../constants");
14
14
  var _keyCodes = require("../../constants/keyCodes");
@@ -20,7 +20,7 @@ const Searcher = _ref => {
20
20
  } = _ref;
21
21
  const {
22
22
  context
23
- } = (0, _appContext.useAppContext)();
23
+ } = (0, _hooks.useFileRepoContext)();
24
24
  const [isSearchActive, setIsSearchActive] = (0, _react.useState)(false);
25
25
  const searchInputRef = (0, _react.useRef)(null);
26
26
  const onToggleSearch = (0, _react.useCallback)(() => {
@@ -52,7 +52,7 @@ const Searcher = _ref => {
52
52
  unsubscribeClearSearch();
53
53
  unsubscribeReSearch();
54
54
  };
55
- }, [onClear, onReSearch]);
55
+ }, [context.eventBus, onClear, onReSearch]);
56
56
  return /*#__PURE__*/_react.default.createElement("div", {
57
57
  className: "sea-metadata-searcher-container mr-2"
58
58
  }, !isSearchActive && /*#__PURE__*/_react.default.createElement(_iconButton.default, {
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _utils = require("../../../common/utils/utils");
11
+ var _iconButton = _interopRequireDefault(require("../../icon-button"));
12
+ var _constants = require("../../../constants");
13
+ var _hooks = require("../../../hooks");
14
+ var _translate = _interopRequireDefault(require("../../../lang/translate"));
15
+ var _dataProcessSetter = require("../../data-process-setter");
16
+ const CardViewToolbar = _ref => {
17
+ let {
18
+ isCustomPermission,
19
+ readOnly,
20
+ view,
21
+ collaborators,
22
+ modifyFilters,
23
+ modifySorts,
24
+ onToggleDetail = () => {},
25
+ onCloseDetail = () => {}
26
+ } = _ref;
27
+ const {
28
+ context
29
+ } = (0, _hooks.useFileRepoContext)();
30
+ const viewType = (0, _react.useMemo)(() => view.type, [view]);
31
+ const viewColumns = (0, _react.useMemo)(() => {
32
+ if (!view) return [];
33
+ return view.columns;
34
+ }, [view]);
35
+
36
+ // const filterColumns = useMemo(() => {
37
+ // return viewColumns.filter(c => c.key !== PRIVATE_COLUMN_KEY.FILE_TYPE);
38
+ // }, [viewColumns]);
39
+
40
+ const onToggleSettings = (0, _react.useCallback)(() => {
41
+ context.eventBus.dispatch(_constants.EVENT_BUS_TYPE.TOGGLE_CARD_SETTINGS);
42
+ onCloseDetail();
43
+ }, [context.eventBus, onCloseDetail]);
44
+ const toggleDetails = (0, _react.useCallback)(() => {
45
+ context.eventBus.dispatch(_constants.EVENT_BUS_TYPE.CLOSE_CARD_SETTINGS);
46
+ onToggleDetail();
47
+ }, [context.eventBus, onToggleDetail]);
48
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
49
+ className: "sea-metadata-tool-left-operations"
50
+ }, /*#__PURE__*/_react.default.createElement(_dataProcessSetter.FilterSetter, {
51
+ wrapperClass: "sea-metadata-view-tool-operation-btn sea-metadata-view-tool-filter mr-2",
52
+ filtersClassName: "sea-metadata-filters",
53
+ target: `sea-metadata-filter-popover-${view._id}`,
54
+ readOnly: readOnly,
55
+ filterConjunction: view.filter_conjunction,
56
+ basicFilters: view.basic_filters,
57
+ filters: view.filters,
58
+ columns: viewColumns,
59
+ modifyFilters: modifyFilters,
60
+ collaborators: collaborators,
61
+ viewType: viewType
62
+ }), /*#__PURE__*/_react.default.createElement(_dataProcessSetter.SortSetter, {
63
+ wrapperClass: "sea-metadata-view-tool-operation-btn sea-metadata-view-tool-sort mr-2",
64
+ target: `sea-metadata-sort-popover-${view._id}`,
65
+ readOnly: readOnly,
66
+ sorts: view.sorts,
67
+ type: viewType,
68
+ columns: viewColumns,
69
+ modifySorts: modifySorts
70
+ }), !readOnly && /*#__PURE__*/_react.default.createElement(_iconButton.default, {
71
+ icon: "set-up",
72
+ className: "sf-metadata-view-tool-operation-btn sea-metadata-view-tool-setting",
73
+ size: 24,
74
+ role: "button",
75
+ "aria-label": _translate.default.gettext('Settings'),
76
+ title: _translate.default.gettext('Settings'),
77
+ tabIndex: 0,
78
+ onClick: onToggleSettings,
79
+ onKeyDown: _utils.Utils.onKeyDown
80
+ }), !isCustomPermission && /*#__PURE__*/_react.default.createElement(_iconButton.default, {
81
+ className: "cur-view-path-btn ml-2",
82
+ icon: "info",
83
+ title: _translate.default.gettext('Properties'),
84
+ onClick: toggleDetails
85
+ })), /*#__PURE__*/_react.default.createElement("div", {
86
+ className: "sf-metadata-tool-right-operations"
87
+ }));
88
+ };
89
+ var _default = exports.default = CardViewToolbar;
@@ -9,7 +9,38 @@
9
9
  border-bottom: 1px solid var(--bs-border-secondary-color);
10
10
  }
11
11
 
12
- .sea-metadata-view-tools {
12
+ .sea-metadata-base-operations {
13
+ display: flex;
14
+ align-items: center;
15
+ flex-grow: 1;
16
+ white-space: break-spaces;
17
+ word-break: break-word;
18
+ min-width: 0px;
19
+ overflow: hidden;
20
+ font-weight: 700;
21
+ font-size: 22px;
22
+ -webkit-box-orient: vertical;
23
+ text-overflow: ellipsis;
24
+ margin-inline-end: 4px;
25
+
26
+ }
27
+
28
+ .sea-metadata-base-operations .base-operations__ops {
29
+ display: none;
30
+ }
31
+
32
+ .sea-metadata-base-operations:hover .base-operations__ops {
33
+ display: block;
34
+ }
35
+
36
+ .base-operations__ops .seafile-multicolor-icon-btn:hover {
37
+ cursor: pointer;
38
+ background-color: #efefef;
39
+ border-radius: 4px;
40
+ }
41
+
42
+ .sea-metadata-view-ribbon .sea-metadata-view-tools {
43
+ flex-grow: 1;
13
44
  flex-shrink: 0;
14
45
  flex-wrap: nowrap;
15
46
  display: flex;
@@ -64,3 +95,25 @@
64
95
  .sea-qa-icon-btn.sea-metadata-rows-tool-btn {
65
96
  width: auto;
66
97
  }
98
+
99
+ .sea-metadata-view-ribbon.multiple-view {
100
+ flex: 1;
101
+ display: flex;
102
+ flex-direction: column;
103
+ align-items: center;
104
+ justify-content: flex-start;
105
+ height: 79px;
106
+ }
107
+
108
+ .sea-metadata-view-ribbon.multiple-view .sea-metadata-base-operations {
109
+ width: 100%;
110
+ height: 30px;
111
+ }
112
+
113
+ .sea-metadata-view-ribbon.multiple-view .sea-metadata-view-tools-container {
114
+ width: 100%;
115
+ height: 49px;
116
+ display: flex;
117
+ align-items: center;
118
+ justify-content: space-between;
119
+ }
@@ -9,22 +9,25 @@ exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _constants = require("../../constants");
11
11
  var _hooks = require("../../hooks");
12
- var _appContext = require("../../hooks/app-context");
13
- var _row = require("../../utils/row");
14
- var _rowsToolbar = _interopRequireDefault(require("./rows-toolbar"));
12
+ var _iconButton = _interopRequireDefault(require("../icon-button"));
13
+ var _cardViewToolbar = _interopRequireDefault(require("./card-view-toolbar"));
15
14
  var _tableViewToolbar = _interopRequireDefault(require("./table-view-toolbar"));
16
- var _views = _interopRequireDefault(require("./views"));
15
+ var _viewItems = _interopRequireDefault(require("./view-items"));
17
16
  require("./index.css");
18
17
  const ViewToolBar = _ref => {
19
18
  let {
20
19
  fixedColumnCount,
21
20
  tools = _constants.VIEW_TOOLS,
22
- createRowsTools = null,
23
- toggleView
21
+ createRowsTools = null
24
22
  } = _ref;
25
23
  const {
24
+ fileRepo,
26
25
  context
27
- } = (0, _appContext.useAppContext)();
26
+ } = (0, _hooks.useFileRepoContext)();
27
+ const {
28
+ views,
29
+ currentViewId
30
+ } = (0, _hooks.useViewContext)();
28
31
  const {
29
32
  collaborators
30
33
  } = (0, _hooks.useCollaborators)();
@@ -36,58 +39,40 @@ const ViewToolBar = _ref => {
36
39
  modifyRowHeight,
37
40
  modifyHiddenColumns,
38
41
  modifyColumnOrder,
39
- searchRows,
40
- deleteRows,
41
- modifyRows,
42
- updateLocalRow
42
+ searchRows
43
43
  } = (0, _hooks.useMetadata)();
44
- const {
45
- selectedRowIds
46
- } = (0, _hooks.useSelectedRows)();
47
44
  const selectNone = (0, _react.useCallback)(event => {
48
45
  event && event.stopPropagation();
49
46
  event && event.nativeEvent && event.nativeEvent.stopImmediatePropagation();
50
47
  context.eventBus.dispatch(_constants.EVENT_BUS_TYPE.SELECT_NONE);
51
- }, []);
48
+ }, [context.eventBus]);
52
49
  const onHeaderClick = (0, _react.useCallback)(() => {
53
50
  selectNone();
54
51
  }, [selectNone]);
55
- const renderLeftTools = (0, _react.useCallback)(view => {
56
- if (selectedRowIds.length > 0 && tools.includes(_constants.VIEW_TOOL.ROWS_TOOLS)) {
57
- const rows = (0, _row.getRowsByIds)(metadata, selectedRowIds);
58
- return /*#__PURE__*/_react.default.createElement(_rowsToolbar.default, {
59
- rows: rows,
60
- columns: (metadata === null || metadata === void 0 ? void 0 : metadata.columns) || [],
61
- selectNone: selectNone,
62
- deleteRows: deleteRows,
63
- modifyRows: modifyRows,
64
- updateLocalRow: updateLocalRow,
65
- createTools: createRowsTools
66
- });
67
- }
68
- if (tools.includes(_constants.VIEW_TOOL.VIEWS)) {
69
- return /*#__PURE__*/_react.default.createElement(_views.default, {
70
- view: view,
71
- toggleView: toggleView
72
- });
73
- }
74
- return /*#__PURE__*/_react.default.createElement("div", {
75
- className: "sea-metadata-views"
76
- });
77
- }, [selectedRowIds, tools, metadata, selectNone, deleteRows, modifyRows, updateLocalRow, createRowsTools, toggleView]);
78
- const view = metadata === null || metadata === void 0 ? void 0 : metadata.view;
79
- const viewType = view === null || view === void 0 ? void 0 : view.type;
80
- const readOnly = view && context.canModifyView ? !context.canModifyView(view) : true;
81
- return /*#__PURE__*/_react.default.createElement("div", {
82
- className: "sea-metadata-view-ribbon",
52
+ const viewType = (0, _react.useMemo)(() => {
53
+ const view = views.find(view => view._id === currentViewId);
54
+ return view.type;
55
+ }, [currentViewId, views]);
56
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
57
+ className: "sea-metadata-view-ribbon multiple-view",
83
58
  onClick: onHeaderClick
84
- }, renderLeftTools(view), /*#__PURE__*/_react.default.createElement("div", {
59
+ }, /*#__PURE__*/_react.default.createElement("div", {
60
+ className: "sea-metadata-base-operations"
61
+ }, /*#__PURE__*/_react.default.createElement("div", {
62
+ className: "base-name mr-2"
63
+ }, fileRepo.name), /*#__PURE__*/_react.default.createElement("div", {
64
+ className: "base-operations__ops"
65
+ }, /*#__PURE__*/_react.default.createElement(_iconButton.default, {
66
+ size: 24,
67
+ icon: 'more'
68
+ }))), /*#__PURE__*/_react.default.createElement("div", {
69
+ className: "sea-metadata-view-tools-container"
70
+ }, /*#__PURE__*/_react.default.createElement(_viewItems.default, null), /*#__PURE__*/_react.default.createElement("div", {
85
71
  className: "sea-metadata-view-tools"
86
- }, view && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, viewType === _constants.VIEW_TYPE.TABLE && /*#__PURE__*/_react.default.createElement(_tableViewToolbar.default, {
87
- readOnly: readOnly,
72
+ }, viewType === _constants.VIEW_TYPE.TABLE && /*#__PURE__*/_react.default.createElement(_tableViewToolbar.default, {
88
73
  tools: tools,
89
74
  fixedColumnCount: fixedColumnCount,
90
- view: view,
75
+ view: metadata === null || metadata === void 0 ? void 0 : metadata.view,
91
76
  collaborators: collaborators,
92
77
  modifyFilters: modifyFilters,
93
78
  modifySorts: modifySorts,
@@ -96,6 +81,13 @@ const ViewToolBar = _ref => {
96
81
  modifyHiddenColumns: modifyHiddenColumns,
97
82
  modifyColumnOrder: modifyColumnOrder,
98
83
  searchRows: searchRows
99
- }))));
84
+ }), viewType === _constants.VIEW_TYPE.CARD && /*#__PURE__*/_react.default.createElement(_cardViewToolbar.default, {
85
+ isCustomPermission: true,
86
+ readOnly: false,
87
+ view: metadata === null || metadata === void 0 ? void 0 : metadata.view,
88
+ collaborators: collaborators,
89
+ modifyFilters: modifyFilters,
90
+ modifySorts: modifySorts
91
+ })))));
100
92
  };
101
93
  var _default = exports.default = ViewToolBar;
@@ -12,7 +12,7 @@ var _components = require("../../../common/components");
12
12
  var _typeDetection = require("../../../common/utils/type-detection");
13
13
  var _iconButton = _interopRequireDefault(require("../../icon-button"));
14
14
  var _icons = _interopRequireDefault(require("../../icons"));
15
- var _appContext = require("../../../hooks/app-context");
15
+ var _hooks = require("../../../hooks");
16
16
  var _translate = _interopRequireDefault(require("../../../lang/translate"));
17
17
  const RowsToolbar = _ref => {
18
18
  let {
@@ -26,7 +26,7 @@ const RowsToolbar = _ref => {
26
26
  } = _ref;
27
27
  const {
28
28
  context
29
- } = (0, _appContext.useAppContext)();
29
+ } = (0, _hooks.useFileRepoContext)();
30
30
  const [isOpen, setIsOpen] = (0, _react.useState)(false);
31
31
  const [isSubOpen, setIsSubOpen] = (0, _react.useState)(false);
32
32
  const [subMenuKey, setSubMenuKey] = (0, _react.useState)('');
@@ -72,7 +72,7 @@ const TableViewToolbar = _ref => {
72
72
  wrapperClass: "sea-metadata-view-tool-hide-column mr-2",
73
73
  target: `sea-metadata-hide-column-popover-${view._id}`,
74
74
  readOnly: readOnly,
75
- columns: viewColumns.slice(fixedColumnCount),
75
+ columns: viewColumns === null || viewColumns === void 0 ? void 0 : viewColumns.slice(fixedColumnCount),
76
76
  hiddenColumns: view.hidden_columns || [],
77
77
  modifyHiddenColumns: modifyHiddenColumns,
78
78
  modifyColumnOrder: modifyColumnOrder
@@ -0,0 +1,55 @@
1
+ .sea-database-views-wrapper {
2
+ display: flex;
3
+ align-items: center;
4
+ flex-grow: 1;
5
+ position: relative;
6
+ }
7
+
8
+ .sea-database-views-wrapper .base-view-item {
9
+ display: flex;
10
+ align-items: center;
11
+ cursor: pointer;
12
+ }
13
+
14
+ .sea-database-views-wrapper .base-view-item .view-icons {
15
+ display: flex;
16
+ flex-direction: column;
17
+ align-items: center;
18
+ font-size: 8px;
19
+ cursor: pointer;
20
+ }
21
+
22
+ .sea-database-views-dropdown-menu {
23
+ display: block;
24
+ }
25
+
26
+ .sea-database-views-dropdown-menu .sea-database-views-search-wrapper {
27
+ padding: 8px 16px;
28
+ }
29
+
30
+ .sea-database-views-dropdown-menu .sea-database-views-list-wrapper {
31
+ max-height: 240px;
32
+ min-height: 100px;
33
+ overflow-y: auto;
34
+ width: 300px;
35
+ }
36
+
37
+ .sea-database-views-dropdown-menu .view-item {
38
+ display: flex;
39
+ justify-content: space-between;
40
+ align-items: center;
41
+ position: relative;
42
+ }
43
+
44
+ .sea-database-views-dropdown-menu .view-item .view-item-left .seafile-multicolor-icon:hover {
45
+ cursor: grab;
46
+ }
47
+
48
+ .sea-database-views-dropdown-menu .view-item .view-item-right {
49
+ margin-right: 0;
50
+ }
51
+
52
+ .sea-database-views-dropdown-menu .add-item-btn {
53
+ padding-top: 8px;
54
+ height: 32px;
55
+ }