@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
@@ -0,0 +1,98 @@
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 = Views;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _components = require("../../../common/components");
11
+ var _utils = require("../../../common/utils/utils");
12
+ var _insertViewDialog = _interopRequireDefault(require("../../dialogs/insert-view-dialog"));
13
+ var _icons = _interopRequireDefault(require("../../icons"));
14
+ var _hooks = require("../../../hooks");
15
+ var _viewsPopover = _interopRequireDefault(require("./views-popover"));
16
+ require("./index.css");
17
+ function Views() {
18
+ const {
19
+ context
20
+ } = (0, _hooks.useFileRepoContext)();
21
+ const {
22
+ views,
23
+ currentViewId,
24
+ insertView
25
+ } = (0, _hooks.useViewContext)();
26
+ const viewRef = (0, _react.useRef)(null);
27
+ const [menuStyle, setMenuStyle] = (0, _react.useState)(null);
28
+ const [isShowViewsPopover, setIsShowViewsPopover] = (0, _react.useState)(false);
29
+ const [isShowAddViewDialog, setIsShowAddViewDialog] = (0, _react.useState)(false);
30
+ const currentView = (0, _react.useMemo)(() => {
31
+ return views.find(view => view._id === currentViewId);
32
+ }, [currentViewId, views]);
33
+ const onOpenViewsPopover = (0, _react.useCallback)(event => {
34
+ event && event.stopPropagation();
35
+ if (isShowViewsPopover) {
36
+ setIsShowViewsPopover(false);
37
+ return;
38
+ }
39
+ const {
40
+ left,
41
+ bottom
42
+ } = viewRef.current.getBoundingClientRect();
43
+ setMenuStyle({
44
+ left,
45
+ top: bottom + 12
46
+ }); // 12 is (view item height) - (all views button height)
47
+ setIsShowViewsPopover(true);
48
+ }, [isShowViewsPopover]);
49
+ const onCloseViewsPopover = (0, _react.useCallback)(event => {
50
+ event && event.stopPropagation();
51
+ setIsShowViewsPopover(false);
52
+ }, []);
53
+ const onAddViewDialogToggle = (0, _react.useCallback)(() => {
54
+ setIsShowAddViewDialog(!isShowAddViewDialog);
55
+ setIsShowViewsPopover(false);
56
+ }, [isShowAddViewDialog]);
57
+ const onAddView = (0, _react.useCallback)((viewName, viewType) => {
58
+ context.insertView({
59
+ name: viewName,
60
+ type: viewType
61
+ }).then(res => {
62
+ const {
63
+ view
64
+ } = res.data;
65
+ insertView(view);
66
+ onAddViewDialogToggle();
67
+ }).catch(err => {
68
+ const errMessage = _utils.Utils.getErrorMsg(err);
69
+ _components.toaster.danger(errMessage);
70
+ });
71
+ }, [context, insertView, onAddViewDialogToggle]);
72
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
73
+ className: "sea-database-views-wrapper"
74
+ }, /*#__PURE__*/_react.default.createElement("div", {
75
+ ref: viewRef,
76
+ className: "base-view-item",
77
+ onClick: onOpenViewsPopover
78
+ }, /*#__PURE__*/_react.default.createElement("div", {
79
+ className: "view-name"
80
+ }, currentView.name), /*#__PURE__*/_react.default.createElement("div", {
81
+ className: "view-icons ml-2"
82
+ }, /*#__PURE__*/_react.default.createElement(_icons.default, {
83
+ width: "8px",
84
+ height: "8px",
85
+ symbol: 'arrow-up'
86
+ }), /*#__PURE__*/_react.default.createElement(_icons.default, {
87
+ width: "8px",
88
+ height: "8px",
89
+ symbol: 'arrow-down'
90
+ }))), isShowViewsPopover && /*#__PURE__*/_react.default.createElement(_viewsPopover.default, {
91
+ menuStyle: menuStyle,
92
+ onViewsPopoverToggle: onCloseViewsPopover,
93
+ onAddViewDialogToggle: onAddViewDialogToggle
94
+ }), isShowAddViewDialog && /*#__PURE__*/_react.default.createElement(_insertViewDialog.default, {
95
+ onAddView: onAddView,
96
+ toggleCancel: onAddViewDialogToggle
97
+ })));
98
+ }
@@ -0,0 +1,80 @@
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 = ViewsPopover;
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _components = require("../../../common/components");
12
+ var _icons = _interopRequireDefault(require("../../icons"));
13
+ var _keyCodes = require("../../../constants/keyCodes");
14
+ var _hooks = require("../../../hooks");
15
+ var _translate = _interopRequireDefault(require("../../../lang/translate"));
16
+ require("../../../assets/css/dropdown-menu.css");
17
+ function ViewsPopover(_ref) {
18
+ let {
19
+ menuStyle,
20
+ onViewsPopoverToggle,
21
+ onAddViewDialogToggle
22
+ } = _ref;
23
+ const {
24
+ views,
25
+ currentViewId,
26
+ setCurrentViewId
27
+ } = (0, _hooks.useViewContext)();
28
+ const [searchValue, setSearchValue] = (0, _react.useState)('');
29
+ const onKeyDown = (0, _react.useCallback)(event => {
30
+ if (event.keyCode === _keyCodes.KeyCodes.ChineseInputMethod || event.keyCode === _keyCodes.KeyCodes.LeftArrow || event.keyCode === _keyCodes.KeyCodes.RightArrow) {
31
+ event.stopPropagation();
32
+ }
33
+ }, []);
34
+ const onSearchValueChange = (0, _react.useCallback)(newSearchValue => {
35
+ if (searchValue === newSearchValue) return;
36
+ setSearchValue(newSearchValue);
37
+ }, [searchValue]);
38
+ const toggleView = (0, _react.useCallback)(id => {
39
+ setCurrentViewId(id);
40
+ onViewsPopoverToggle();
41
+ }, [onViewsPopoverToggle, setCurrentViewId]);
42
+ return /*#__PURE__*/_react.default.createElement(_components.ClickOutside, {
43
+ onClickOutside: onViewsPopoverToggle
44
+ }, /*#__PURE__*/_react.default.createElement("div", {
45
+ className: "sea-database-dropdown-menu dropdown-menu position-fixed sea-database-views-dropdown-menu",
46
+ style: menuStyle
47
+ }, /*#__PURE__*/_react.default.createElement("div", {
48
+ className: "sea-database-views-search-wrapper"
49
+ }, /*#__PURE__*/_react.default.createElement(_components.SearchInput, {
50
+ autoFocus: true,
51
+ isShowSearchIcon: true,
52
+ value: searchValue,
53
+ size: 28,
54
+ placeholder: _translate.default.gettext('Search view'),
55
+ onKeyDown: onKeyDown,
56
+ onChange: onSearchValueChange
57
+ })), /*#__PURE__*/_react.default.createElement("div", {
58
+ className: "sea-database-views-list-wrapper"
59
+ }, views.map(view => {
60
+ return /*#__PURE__*/_react.default.createElement("div", {
61
+ key: view._id,
62
+ onClick: () => {
63
+ toggleView(view._id);
64
+ },
65
+ className: (0, _classnames.default)('sea-database-dropdown-menu-item view-item')
66
+ }, /*#__PURE__*/_react.default.createElement("span", {
67
+ className: "view-item-left",
68
+ draggable: true
69
+ }, /*#__PURE__*/_react.default.createElement(_icons.default, {
70
+ symbol: "drag"
71
+ }), view.name), /*#__PURE__*/_react.default.createElement("span", {
72
+ className: "view-item-right"
73
+ }, view._id === currentViewId && /*#__PURE__*/_react.default.createElement(_icons.default, {
74
+ symbol: "check"
75
+ })));
76
+ })), /*#__PURE__*/_react.default.createElement(_components.CommonAddTool, {
77
+ callBack: onAddViewDialogToggle,
78
+ footerName: _translate.default.gettext('Add view')
79
+ })));
80
+ }
@@ -66,5 +66,7 @@ const EVENT_BUS_TYPE = exports.EVENT_BUS_TYPE = {
66
66
  START_SEARCH_ROWS: 'start_search_rows',
67
67
  CLEAR_SEARCH_ROWS: 'clear_search_rows',
68
68
  RE_SEARCH_ROWS: 're_search_rows',
69
- DISPLAY_SORTS: 'display_sorts'
69
+ DISPLAY_SORTS: 'display_sorts',
70
+ // card
71
+ UPDATE_SELECTED_RECORD_IDS: 'update_selected_record_ids'
70
72
  };
@@ -17,6 +17,7 @@ var _exportNames = {
17
17
  VIEW_SORT_COLUMN_RULES: true,
18
18
  VIEW_FIRST_SORT_COLUMN_RULES: true,
19
19
  KANBAN_SETTINGS_KEYS: true,
20
+ CARD_SETTINGS_KEYS: true,
20
21
  VIEW_DEFAULT_SETTINGS: true,
21
22
  VIEW_PROPERTY_KEYS: true,
22
23
  VIEW_INCOMPATIBLE_PROPERTIES: true,
@@ -24,7 +25,8 @@ var _exportNames = {
24
25
  VIEW_TOOL: true,
25
26
  VIEW_TOOLS: true
26
27
  };
27
- exports.VIEW_TYPE_ICON = exports.VIEW_TYPE_DEFAULT_SORTS = exports.VIEW_TYPE_DEFAULT_BASIC_FILTER = exports.VIEW_TYPES_SUPPORT_SHOW_DETAIL = exports.VIEW_TYPE = exports.VIEW_TOOLS = exports.VIEW_TOOL = exports.VIEW_SORT_COLUMN_RULES = exports.VIEW_PROPERTY_KEYS = exports.VIEW_INCOMPATIBLE_PROPERTIES = exports.VIEW_FIRST_SORT_COLUMN_RULES = exports.VIEW_DEFAULT_SETTINGS = exports.VIEWS_TYPE_VIEW = exports.VIEWS_TYPE_FOLDER = exports.TREE_NODE_LEFT_INDENT = exports.METADATA_VIEWS_KEY = exports.METADATA_VIEWS_DRAG_DATA_KEY = exports.KANBAN_SETTINGS_KEYS = exports.FACE_RECOGNITION_VIEW_ID = void 0;
28
+ exports.VIEW_TYPE_ICON = exports.VIEW_TYPE_DEFAULT_SORTS = exports.VIEW_TYPE_DEFAULT_BASIC_FILTER = exports.VIEW_TYPES_SUPPORT_SHOW_DETAIL = exports.VIEW_TYPE = exports.VIEW_TOOLS = exports.VIEW_TOOL = exports.VIEW_SORT_COLUMN_RULES = exports.VIEW_PROPERTY_KEYS = exports.VIEW_INCOMPATIBLE_PROPERTIES = exports.VIEW_FIRST_SORT_COLUMN_RULES = exports.VIEW_DEFAULT_SETTINGS = exports.VIEWS_TYPE_VIEW = exports.VIEWS_TYPE_FOLDER = exports.TREE_NODE_LEFT_INDENT = exports.METADATA_VIEWS_KEY = exports.METADATA_VIEWS_DRAG_DATA_KEY = exports.KANBAN_SETTINGS_KEYS = exports.FACE_RECOGNITION_VIEW_ID = exports.CARD_SETTINGS_KEYS = void 0;
29
+ var _column = require("../column");
28
30
  var _filter = require("../filter");
29
31
  var _sort = require("../sort");
30
32
  var _gallery = require("./gallery");
@@ -71,7 +73,8 @@ const VIEWS_TYPE_VIEW = exports.VIEWS_TYPE_VIEW = 'view';
71
73
  const VIEW_TYPE = exports.VIEW_TYPE = {
72
74
  TABLE: 'table',
73
75
  GALLERY: 'gallery',
74
- KANBAN: 'kanban'
76
+ KANBAN: 'kanban',
77
+ CARD: 'card'
75
78
  };
76
79
  const FACE_RECOGNITION_VIEW_ID = exports.FACE_RECOGNITION_VIEW_ID = '_face_recognition';
77
80
  const VIEW_TYPE_ICON = exports.VIEW_TYPE_ICON = {
@@ -93,6 +96,19 @@ const VIEW_TYPE_DEFAULT_BASIC_FILTER = exports.VIEW_TYPE_DEFAULT_BASIC_FILTER =
93
96
  filter_predicate: _filter.FILTER_PREDICATE_TYPE.HAS_ANY_OF,
94
97
  filter_term: []
95
98
  }],
99
+ [VIEW_TYPE.CARD]: [{
100
+ column_key: _column.PRIVATE_COLUMN_KEY.IS_DIR,
101
+ filter_predicate: _filter.FILTER_PREDICATE_TYPE.IS,
102
+ filter_term: 'file'
103
+ }, {
104
+ column_key: _column.PRIVATE_COLUMN_KEY.FILE_TYPE,
105
+ filter_predicate: _filter.FILTER_PREDICATE_TYPE.IS_ANY_OF,
106
+ filter_term: []
107
+ }, {
108
+ column_key: _column.PRIVATE_COLUMN_KEY.TAGS,
109
+ filter_predicate: _filter.FILTER_PREDICATE_TYPE.HAS_ALL_OF,
110
+ filter_term: []
111
+ }],
96
112
  [VIEW_TYPE.GALLERY]: [],
97
113
  [VIEW_TYPE.KANBAN]: []
98
114
  };
@@ -103,11 +119,13 @@ const VIEW_TYPE_DEFAULT_SORTS = exports.VIEW_TYPE_DEFAULT_SORTS = {
103
119
  };
104
120
  const VIEW_SORT_COLUMN_RULES = exports.VIEW_SORT_COLUMN_RULES = {
105
121
  [VIEW_TYPE.TABLE]: column => _sort.SORT_COLUMN_OPTIONS.includes(column.type) && column.sort_able,
122
+ [VIEW_TYPE.CARD]: column => _sort.SORT_COLUMN_OPTIONS.includes(column.type),
106
123
  [VIEW_TYPE.GALLERY]: column => _sort.GALLERY_SORT_COLUMN_OPTIONS.includes(column.type) && column.sort_able,
107
124
  [VIEW_TYPE.KANBAN]: column => _sort.SORT_COLUMN_OPTIONS.includes(column.type) && column.sort_able
108
125
  };
109
126
  const VIEW_FIRST_SORT_COLUMN_RULES = exports.VIEW_FIRST_SORT_COLUMN_RULES = {
110
127
  [VIEW_TYPE.TABLE]: column => _sort.SORT_COLUMN_OPTIONS.includes(column.type),
128
+ [VIEW_TYPE.CARD]: column => _sort.SORT_COLUMN_OPTIONS.includes(column.type),
111
129
  [VIEW_TYPE.GALLERY]: column => _sort.GALLERY_FIRST_SORT_COLUMN_OPTIONS.includes(column.type),
112
130
  [VIEW_TYPE.KANBAN]: column => _sort.SORT_COLUMN_OPTIONS.includes(column.type)
113
131
  };
@@ -119,6 +137,12 @@ const KANBAN_SETTINGS_KEYS = exports.KANBAN_SETTINGS_KEYS = {
119
137
  TEXT_WRAP: 'text_wrap',
120
138
  COLUMNS: 'columns' // display and order
121
139
  };
140
+ const CARD_SETTINGS_KEYS = exports.CARD_SETTINGS_KEYS = {
141
+ HIDE_EMPTY_VALUE: 'hide_empty_value',
142
+ SHOW_COLUMN_NAME: 'show_column_name',
143
+ TEXT_WRAP: 'text_wrap',
144
+ COLUMNS: 'columns' // display and order
145
+ };
122
146
  const VIEW_DEFAULT_SETTINGS = exports.VIEW_DEFAULT_SETTINGS = {
123
147
  [VIEW_TYPE.TABLE]: {},
124
148
  [VIEW_TYPE.GALLERY]: {},
@@ -129,6 +153,12 @@ const VIEW_DEFAULT_SETTINGS = exports.VIEW_DEFAULT_SETTINGS = {
129
153
  [KANBAN_SETTINGS_KEYS.SHOW_COLUMN_NAME]: false,
130
154
  [KANBAN_SETTINGS_KEYS.TEXT_WRAP]: false,
131
155
  [KANBAN_SETTINGS_KEYS.COLUMNS]: []
156
+ },
157
+ [VIEW_TYPE.CARD]: {
158
+ [CARD_SETTINGS_KEYS.HIDE_EMPTY_VALUE]: false,
159
+ [CARD_SETTINGS_KEYS.SHOW_COLUMN_NAME]: false,
160
+ [CARD_SETTINGS_KEYS.TEXT_WRAP]: false,
161
+ [CARD_SETTINGS_KEYS.COLUMNS]: []
132
162
  }
133
163
  };
134
164
  const VIEW_PROPERTY_KEYS = exports.VIEW_PROPERTY_KEYS = {
package/dist/context.js CHANGED
@@ -9,19 +9,29 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/es
9
9
  var _localStorage = _interopRequireDefault(require("./common/utils/local-storage"));
10
10
  var _typeDetection = require("./common/utils/type-detection");
11
11
  var _constants = require("./constants");
12
+ // const settings = {
13
+ // file_view: {
14
+ // id: '',
15
+ // name: '',
16
+ // icon: '',
17
+ // linked_repo_id: '',
18
+ // views: '',
19
+ // }
20
+ // };
21
+
12
22
  class Context {
13
23
  constructor(_settings, eventBus, api) {
14
24
  var _this = this;
15
25
  let isViewComputedOnServer = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
16
26
  (0, _defineProperty2.default)(this, "initLocalStorage", settings => {
17
27
  const {
18
- repoID,
19
28
  view_data
20
29
  } = settings;
21
30
  const {
22
- view_id: viewID
31
+ wiki_id: wikiID,
32
+ file_repo_id: fileRepoID
23
33
  } = view_data;
24
- const localStorageName = `sf-metadata-${repoID}-${viewID}`;
34
+ const localStorageName = `sf-metadata-${wikiID}-${fileRepoID}`;
25
35
  const localStorage = new _localStorage.default(localStorageName);
26
36
  return localStorage;
27
37
  });
@@ -33,6 +43,9 @@ class Context {
33
43
  this.localStorage = null;
34
44
  this.isViewComputedOnServer = true;
35
45
  });
46
+ (0, _defineProperty2.default)(this, "initViewSettings", () => {
47
+ // todo;
48
+ });
36
49
  (0, _defineProperty2.default)(this, "getViewSetting", function (key) {
37
50
  let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
38
51
  if (_this.settings[key] === false) return _this.settings[key];
@@ -42,6 +55,33 @@ class Context {
42
55
  const viewData = this.settings['view_data'];
43
56
  return viewData.view_id;
44
57
  });
58
+ (0, _defineProperty2.default)(this, "addFileRepoIdSetting", fileRepoId => {
59
+ if (!fileRepoId) {
60
+ throw new Error('fileRepoId is not exist');
61
+ }
62
+ this.settings['fileRepoId'] = fileRepoId;
63
+ });
64
+ (0, _defineProperty2.default)(this, "addRepoSetting", repo => {
65
+ if (!repo) {
66
+ throw new Error('fileRepoId is not exist');
67
+ }
68
+ this.settings['repoInfo'] = repo;
69
+ this.settings['repoID'] = repo.repo_id;
70
+ this.settings['permission'] = repo.permission;
71
+ });
72
+ (0, _defineProperty2.default)(this, "getFileRepoInfo", () => {
73
+ if (!this.api) return null;
74
+ const view_data = this.settings['view_data'];
75
+ const {
76
+ wiki_id,
77
+ file_repo_id
78
+ } = view_data;
79
+ return this.api.getFileRepoInfo(wiki_id, file_repo_id);
80
+ });
81
+ (0, _defineProperty2.default)(this, "getRepo", repoID => {
82
+ if (!this.api) return null;
83
+ return this.api.getRepo(repoID);
84
+ });
45
85
  (0, _defineProperty2.default)(this, "getCollaborators", () => {
46
86
  if (!this.api) return null;
47
87
  const {
@@ -56,25 +96,62 @@ class Context {
56
96
  } = this.settings;
57
97
  return this.api.getTags(repoID);
58
98
  });
59
- // view
60
- (0, _defineProperty2.default)(this, "getViews", () => {
61
- return this.api.getViews();
99
+ // metadata
100
+ (0, _defineProperty2.default)(this, "getMetadata", params => {
101
+ if (!this.api) return null;
102
+ const {
103
+ view_data
104
+ } = this.settings;
105
+ const {
106
+ wiki_id,
107
+ file_repo_id
108
+ } = view_data;
109
+ const newParams = {
110
+ ...params,
111
+ wiki_id,
112
+ file_repo_id
113
+ };
114
+ return this.api.getMetadata(newParams);
62
115
  });
116
+ // view
63
117
  (0, _defineProperty2.default)(this, "getView", viewId => {
64
118
  if (!this.api) return null;
65
119
  const {
66
120
  view_data
67
121
  } = this.settings;
68
- return this.api.getView(view_data);
122
+ return this.api.getView({
123
+ ...view_data,
124
+ view_id: viewId
125
+ });
69
126
  });
70
- // metadata
71
- (0, _defineProperty2.default)(this, "getMetadata", params => {
72
- if (!this.api) return null;
127
+ (0, _defineProperty2.default)(this, "insertView", viewData => {
128
+ const {
129
+ view_data
130
+ } = this.settings;
131
+ const {
132
+ wiki_id,
133
+ file_repo_id
134
+ } = view_data;
135
+ return this.api.insertView(wiki_id, file_repo_id, viewData);
136
+ });
137
+ (0, _defineProperty2.default)(this, "deleteView", viewID => {
138
+ return this.api.deleteView(viewID);
139
+ });
140
+ (0, _defineProperty2.default)(this, "modifyView", (viewId, viewData) => {
73
141
  const {
74
142
  view_data
75
143
  } = this.settings;
76
- params['view_data'] = view_data;
77
- return this.api.getMetadata(params);
144
+ const {
145
+ wiki_id,
146
+ file_repo_id
147
+ } = view_data;
148
+ return this.api.modifyView(wiki_id, file_repo_id, viewId, viewData);
149
+ });
150
+ (0, _defineProperty2.default)(this, "moveView", (sourceViewID, targetViewID) => {
151
+ return this.api.moveView(sourceViewID, targetViewID);
152
+ });
153
+ (0, _defineProperty2.default)(this, "duplicateView", viewID => {
154
+ return this.api.duplicateView(viewID);
78
155
  });
79
156
  (0, _defineProperty2.default)(this, "getPermission", () => {
80
157
  return this.permission;
@@ -287,28 +364,6 @@ class Context {
287
364
  });
288
365
  return Promise.all(deletedRows);
289
366
  });
290
- // view
291
- (0, _defineProperty2.default)(this, "insertView", (name, viewData) => {
292
- return this.api.insertView(name, viewData);
293
- });
294
- (0, _defineProperty2.default)(this, "deleteView", viewID => {
295
- return this.api.deleteView(viewID);
296
- });
297
- (0, _defineProperty2.default)(this, "modifyView", (viewId, viewData) => {
298
- const {
299
- view_data
300
- } = this.settings;
301
- const {
302
- wiki_id
303
- } = view_data;
304
- return this.api.modifyView(wiki_id, viewId, viewData);
305
- });
306
- (0, _defineProperty2.default)(this, "moveView", (sourceViewID, targetViewID) => {
307
- return this.api.moveView(sourceViewID, targetViewID);
308
- });
309
- (0, _defineProperty2.default)(this, "duplicateView", viewID => {
310
- return this.api.duplicateView(viewID);
311
- });
312
367
  (0, _defineProperty2.default)(this, "getRowsByIds", () => {
313
368
  // todo
314
369
  });
package/dist/database.js CHANGED
@@ -8,22 +8,18 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _components = require("./common/components");
11
12
  var _viewToolbar = _interopRequireDefault(require("./components/view-toolbar"));
12
- var _globalSettings = _interopRequireDefault(require("./global-settings"));
13
13
  var _hooks = require("./hooks");
14
- var _appContext = require("./hooks/app-context");
15
- var _translate = _interopRequireDefault(require("./lang/translate"));
16
14
  var _views = _interopRequireDefault(require("./views"));
17
- const Database = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
15
+ const Database = _ref => {
18
16
  let {
19
17
  settings,
20
- fixedColumnCount = 1
18
+ fixedColumnCount
21
19
  } = _ref;
22
- (0, _react.useEffect)(() => {
23
- _translate.default.initTranslate(settings);
24
- _globalSettings.default.initSettings(settings);
25
- // eslint-disable-next-line react-hooks/exhaustive-deps
26
- }, []);
20
+ const {
21
+ isLoading
22
+ } = (0, _hooks.useMetadata)();
27
23
  const style = (0, _react.useMemo)(() => {
28
24
  const {
29
25
  width,
@@ -38,16 +34,13 @@ const Database = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
38
34
  }
39
35
  return null;
40
36
  }, [settings.view_data]);
41
- return /*#__PURE__*/_react.default.createElement(_appContext.AppContextProvider, {
42
- settings: settings
43
- }, /*#__PURE__*/_react.default.createElement(_hooks.CollaboratorsProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.TagsDataProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.TypesDataProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.SelectedRowsProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.MetadataProvider, null, /*#__PURE__*/_react.default.createElement("div", {
37
+ return /*#__PURE__*/_react.default.createElement("div", {
44
38
  className: (0, _classnames.default)('sea-metadata'),
45
- style: style,
46
- ref: ref
39
+ style: style
47
40
  }, /*#__PURE__*/_react.default.createElement(_viewToolbar.default, {
48
41
  fixedColumnCount: fixedColumnCount
49
- }), /*#__PURE__*/_react.default.createElement(_views.default, {
42
+ }), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, isLoading && /*#__PURE__*/_react.default.createElement(_components.CenteredLoading, null), !isLoading && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_views.default, {
50
43
  fixedColumnCount: fixedColumnCount
51
- }))))))));
52
- });
44
+ }))));
45
+ };
53
46
  var _default = exports.default = Database;
@@ -0,0 +1,31 @@
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 _database = _interopRequireDefault(require("./database"));
11
+ var _globalSettings = _interopRequireDefault(require("./global-settings"));
12
+ var _hooks = require("./hooks");
13
+ var _translate = _interopRequireDefault(require("./lang/translate"));
14
+ const FileBase = _ref => {
15
+ let {
16
+ settings,
17
+ fixedColumnCount = 1
18
+ } = _ref;
19
+ (0, _react.useEffect)(() => {
20
+ _translate.default.initTranslate(settings);
21
+ _globalSettings.default.initSettings(settings);
22
+ // eslint-disable-next-line react-hooks/exhaustive-deps
23
+ }, []);
24
+ return /*#__PURE__*/_react.default.createElement(_hooks.FileRepoContextProvider, {
25
+ settings: settings
26
+ }, /*#__PURE__*/_react.default.createElement(_hooks.ViewContextProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.CollaboratorsProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.TagsDataProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.TypesDataProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.SelectedRowsProvider, null, /*#__PURE__*/_react.default.createElement(_hooks.MetadataProvider, null, /*#__PURE__*/_react.default.createElement(_database.default, {
27
+ settings: settings,
28
+ fixedColumnCount: fixedColumnCount
29
+ }))))))));
30
+ };
31
+ var _default = exports.default = FileBase;
@@ -29,7 +29,9 @@ class GlobalSettings {
29
29
  lang: settings.lang,
30
30
  thumbnailSizeForOriginal: settings.thumbnailSizeForOriginal,
31
31
  thumbnailDefaultSize: settings.thumbnailDefaultSize,
32
- isDevelopment: settings.isDevelopment
32
+ isDevelopment: settings.isDevelopment,
33
+ enableThumbnailServer: settings.enableThumbnailServer,
34
+ enableSeadoc: settings.enableSeadoc
33
35
  };
34
36
  }
35
37
  static getSetting(key) {
@@ -7,11 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.useCollaborators = exports.CollaboratorsProvider = void 0;
9
9
  var _react = _interopRequireWildcard(require("react"));
10
+ var _components = require("../common/components");
10
11
  var _globalSettings = _interopRequireDefault(require("../global-settings"));
11
12
  var _user = _interopRequireDefault(require("../models/user"));
12
13
  var _validate = require("../utils/validate");
13
14
  var _userService = _interopRequireDefault(require("../utils/user-service"));
14
- var _appContext = require("./app-context");
15
+ var _fileRepoContext = require("./file-repo-context");
15
16
  /* eslint-disable react/prop-types */
16
17
 
17
18
  const CollaboratorsContext = /*#__PURE__*/_react.default.createContext(null);
@@ -21,7 +22,7 @@ const CollaboratorsProvider = _ref => {
21
22
  } = _ref;
22
23
  const {
23
24
  context
24
- } = (0, _appContext.useAppContext)();
25
+ } = (0, _fileRepoContext.useFileRepoContext)();
25
26
  const [isLoading, setIsLoading] = (0, _react.useState)(true);
26
27
  const [collaboratorsCache, setCollaboratorsCache] = (0, _react.useState)({});
27
28
  const [collaborators, setCollaborators] = (0, _react.useState)([]);
@@ -72,6 +73,11 @@ const CollaboratorsProvider = _ref => {
72
73
  }
73
74
  return null;
74
75
  }, [collaborators, collaboratorsCache, updateCollaboratorsCache]);
76
+ if (isLoading) {
77
+ return /*#__PURE__*/_react.default.createElement("div", {
78
+ className: 'sea-metadata'
79
+ }, /*#__PURE__*/_react.default.createElement(_components.CenteredLoading, null));
80
+ }
75
81
  return /*#__PURE__*/_react.default.createElement(CollaboratorsContext.Provider, {
76
82
  value: {
77
83
  collaborators,
@@ -80,7 +86,7 @@ const CollaboratorsProvider = _ref => {
80
86
  getCollaborator,
81
87
  queryUser
82
88
  }
83
- }, isLoading && null, !isLoading && children);
89
+ }, children);
84
90
  };
85
91
  exports.CollaboratorsProvider = CollaboratorsProvider;
86
92
  const useCollaborators = () => {