@seafile/seafile-database 0.0.24 → 0.0.26
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/dist/api/api.js +19 -21
- package/dist/assets/css/dropdown-menu.css +96 -0
- package/dist/assets/css/file-repo.css +3 -0
- package/dist/common/components/file-tag/index.js +2 -2
- package/dist/common/components/modal-portal.js +12 -0
- package/dist/common/utils/icon-utils.js +9 -2
- package/dist/common/utils/utils.js +28 -0
- package/dist/components/cell-editors/index.js +2 -2
- package/dist/components/cell-editors/multiple-select-editor/index.js +2 -2
- package/dist/components/cell-editors/single-select-editor/index.js +2 -2
- package/dist/components/cell-editors/tags-editor/index.js +1 -2
- package/dist/components/cell-formatter/creator.js +3 -2
- package/dist/components/context-menu/index.js +2 -2
- package/dist/components/data-process-setter/filter-setter.js +2 -3
- package/dist/components/data-process-setter/hide-column-setter.js +1 -1
- package/dist/components/data-process-setter/index.js +7 -0
- package/dist/components/data-process-setter/manage-setter.js +1 -2
- package/dist/components/data-process-setter/settings-setter.js +119 -0
- package/dist/components/data-process-setter/sort-setter.js +2 -2
- package/dist/components/data-process-setter/view-type-setter.js +53 -0
- package/dist/components/dialogs/custom-modal-header/index.css +34 -0
- package/dist/components/dialogs/custom-modal-header/index.js +34 -0
- package/dist/components/dialogs/insert-view-dialog.js +104 -0
- package/dist/components/hover-menu/index.css +85 -0
- package/dist/components/hover-menu/index.js +107 -0
- package/dist/components/icons/arrow-down-icon.js +19 -0
- package/dist/components/icons/arrow-right-icon.js +29 -0
- package/dist/components/icons/arrow-up-icon.js +19 -0
- package/dist/components/icons/card-icon.js +28 -0
- package/dist/components/icons/close-icon.js +23 -0
- package/dist/components/icons/index.js +23 -1
- package/dist/components/icons/set-up-icon.js +22 -0
- package/dist/components/icons/table-icon.js +19 -0
- package/dist/components/image-previewer/_hooks/metadata-details.js +1 -1
- package/dist/components/image-previewer/_hooks/metadata-status.js +2 -2
- package/dist/components/image-previewer/image-detail/index.js +1 -1
- package/dist/components/image-previewer/index.js +2 -2
- package/dist/components/popover/groupbys-popover/index.js +5 -5
- package/dist/components/popover/index.js +7 -0
- package/dist/components/popover/settings-popover/field-display-settings/field-item.js +110 -0
- package/dist/components/popover/settings-popover/field-display-settings/index.css +135 -0
- package/dist/components/popover/settings-popover/field-display-settings/index.js +119 -0
- package/dist/components/popover/settings-popover/index.css +52 -0
- package/dist/components/popover/settings-popover/index.js +99 -0
- package/dist/components/popover/sort-popover/index.js +1 -1
- package/dist/components/popover/view-type-popover/index.css +51 -0
- package/dist/components/popover/view-type-popover/index.js +64 -0
- package/dist/components/searcher/index.js +3 -3
- package/dist/components/view-toolbar/card-view-toolbar/index.js +89 -0
- package/dist/components/view-toolbar/index.css +54 -1
- package/dist/components/view-toolbar/index.js +40 -48
- package/dist/components/view-toolbar/rows-toolbar/index.js +2 -2
- package/dist/components/view-toolbar/table-view-toolbar/index.js +1 -1
- package/dist/components/view-toolbar/view-items/index.css +55 -0
- package/dist/components/view-toolbar/view-items/index.js +98 -0
- package/dist/components/view-toolbar/view-items/views-popover.js +80 -0
- package/dist/constants/event-bus-type.js +3 -1
- package/dist/constants/view/index.js +44 -2
- package/dist/context.js +60 -35
- package/dist/file-view-base.js +44 -0
- package/dist/file-view.js +140 -0
- package/dist/global-settings.js +3 -1
- package/dist/hooks/collaborators.js +9 -3
- package/dist/hooks/file-view-context.js +95 -0
- package/dist/hooks/index.js +14 -14
- package/dist/hooks/metadata.js +51 -47
- package/dist/hooks/tagsData.js +8 -2
- package/dist/hooks/view-context.js +69 -0
- package/dist/index.js +3 -3
- package/dist/locale/en.js +11 -1
- package/dist/locale/zh_CN.js +6 -1
- package/dist/store/data-processor.js +1 -0
- package/dist/store/index.js +8 -6
- package/dist/store/operations/apply.js +1 -1
- package/dist/store/server-operator.js +20 -7
- package/dist/views/card/card-items/card-item/formatter.js +45 -0
- package/dist/views/card/card-items/card-item/index.css +234 -0
- package/dist/views/card/card-items/card-item/index.js +206 -0
- package/dist/views/card/card-items/index.css +31 -0
- package/dist/views/card/card-items/index.js +189 -0
- package/dist/views/card/context-menu/index.js +165 -0
- package/dist/views/card/index.js +64 -0
- package/dist/views/card/settings/index.css +68 -0
- package/dist/views/card/settings/index.js +143 -0
- package/dist/views/index.js +5 -3
- package/dist/views/table/editors/editor-container/index.js +2 -2
- package/dist/views/table/formatters/file-name.js +3 -3
- package/dist/views/table/index.js +2 -3
- package/dist/views/table/table-main/index.js +2 -2
- package/dist/views/table/table-main/rows/row/cell/formatter.js +2 -2
- package/dist/views/table/table-main/rows/row/cell/index.js +2 -2
- package/dist/views/table/table-main/rows-header/cell/dropdown-menu/index.js +1 -1
- package/dist/views/table/table-main/rows-header/cell/index.js +1 -1
- package/dist/views/table/table-main/rows-header/index.js +2 -2
- package/package.json +3 -2
- package/dist/components/view-toolbar/views/all-views/index.css +0 -85
- package/dist/components/view-toolbar/views/all-views/index.js +0 -165
- package/dist/components/view-toolbar/views/index.css +0 -22
- package/dist/components/view-toolbar/views/index.js +0 -215
- package/dist/components/view-toolbar/views/view-item/index.css +0 -83
- package/dist/components/view-toolbar/views/view-item/index.js +0 -159
- package/dist/database.js +0 -53
- package/dist/hooks/viewsData.js +0 -114
package/dist/api/api.js
CHANGED
|
@@ -10,6 +10,10 @@ var _axios = _interopRequireDefault(require("axios"));
|
|
|
10
10
|
class SeafileAPI {
|
|
11
11
|
constructor() {
|
|
12
12
|
var _this = this;
|
|
13
|
+
(0, _defineProperty2.default)(this, "getFileRepoInfo", (wikiId, fileViewId) => {
|
|
14
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-views/' + fileViewId + '/';
|
|
15
|
+
return this.req.get(url);
|
|
16
|
+
});
|
|
13
17
|
(0, _defineProperty2.default)(this, "getCollaborators", repoID => {
|
|
14
18
|
const url = this.server + '/api/v2.1/repos/' + repoID + '/related-users/';
|
|
15
19
|
return this.req.get(url);
|
|
@@ -160,43 +164,33 @@ class SeafileAPI {
|
|
|
160
164
|
});
|
|
161
165
|
});
|
|
162
166
|
}
|
|
163
|
-
|
|
167
|
+
getRepo(repoID) {
|
|
164
168
|
const url = this.server + '/api/v2.1/repos/' + repoID + '/';
|
|
165
169
|
return this.req.get(url);
|
|
166
170
|
}
|
|
167
|
-
|
|
168
|
-
const
|
|
171
|
+
getMetadata(params) {
|
|
172
|
+
const {
|
|
173
|
+
wiki_id: wikiId,
|
|
174
|
+
file_view_id: fileViewId
|
|
175
|
+
} = params;
|
|
176
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-view/' + fileViewId + '/records';
|
|
169
177
|
return this.req.get(url);
|
|
170
178
|
}
|
|
171
179
|
getView(view_data) {
|
|
172
180
|
const {
|
|
173
181
|
wiki_id: wikiId,
|
|
174
|
-
|
|
182
|
+
file_view_id: fileViewId
|
|
175
183
|
} = view_data;
|
|
176
|
-
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/views/' +
|
|
184
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-views/' + fileViewId + '/';
|
|
177
185
|
return this.req.get(url);
|
|
178
186
|
}
|
|
179
|
-
modifyView(wikiId,
|
|
180
|
-
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/views/';
|
|
187
|
+
modifyView(wikiId, fileViewId, viewData) {
|
|
188
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-views/' + fileViewId + '/';
|
|
181
189
|
const data = {
|
|
182
|
-
view_id: viewId,
|
|
183
190
|
view_data: viewData
|
|
184
191
|
};
|
|
185
192
|
return this.req.put(url, data);
|
|
186
193
|
}
|
|
187
|
-
getMetadata(params) {
|
|
188
|
-
const {
|
|
189
|
-
view_data
|
|
190
|
-
} = params;
|
|
191
|
-
const {
|
|
192
|
-
wiki_id: wikiId,
|
|
193
|
-
view_id: viewId
|
|
194
|
-
} = view_data;
|
|
195
|
-
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/views/' + viewId + '/records/';
|
|
196
|
-
return this.req.get(url, {
|
|
197
|
-
params: params
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
194
|
rotateImage(repoID, path, angle) {
|
|
201
195
|
let url = `${this.server}/api/v2.1/repos/${repoID}/image-rotate/`;
|
|
202
196
|
let form = new FormData();
|
|
@@ -300,5 +294,9 @@ class SeafileAPI {
|
|
|
300
294
|
}
|
|
301
295
|
return this.req.put(url, data);
|
|
302
296
|
}
|
|
297
|
+
getMetadataStatus(repoID) {
|
|
298
|
+
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/';
|
|
299
|
+
return this.req.get(url);
|
|
300
|
+
}
|
|
303
301
|
}
|
|
304
302
|
var _default = exports.default = SeafileAPI;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
.sea-database-dropdown-menu,
|
|
2
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-container {
|
|
3
|
+
min-width: 12rem;
|
|
4
|
+
padding: 8px 0;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-divider {
|
|
8
|
+
width: 100%;
|
|
9
|
+
height: 0;
|
|
10
|
+
margin: 0.5rem 0;
|
|
11
|
+
overflow: hidden;
|
|
12
|
+
border-top: 1px solid #e9ecef;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item {
|
|
16
|
+
height: 30px;
|
|
17
|
+
width: 100%;
|
|
18
|
+
padding: 4px 24px;
|
|
19
|
+
user-select: none;
|
|
20
|
+
display: flex;
|
|
21
|
+
align-items: center;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item-title {
|
|
25
|
+
color: #666;
|
|
26
|
+
padding: 3px 12px;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item-title:hover {
|
|
30
|
+
background-color: unset !important;
|
|
31
|
+
cursor: initial !important;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item-no-results {
|
|
35
|
+
height: 30px;
|
|
36
|
+
width: 100%;
|
|
37
|
+
padding: 4px 24px;
|
|
38
|
+
user-select: none;
|
|
39
|
+
display: flex;
|
|
40
|
+
align-items: center;
|
|
41
|
+
font-size: 14px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item-hidden {
|
|
45
|
+
display: none;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item.disabled,
|
|
49
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item.disabled .sea-database-dropdown-item-content-icon {
|
|
50
|
+
color: #c2c2c2 !important;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item:hover {
|
|
54
|
+
background-color: #F5F5F5;
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item.disabled:hover {
|
|
59
|
+
background-color: unset;
|
|
60
|
+
cursor: default;
|
|
61
|
+
color: #c2c2c2;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.sea-database-dropdown-menu .sea-database-dropdown-menu-item .sea-database-dropdown-item-content {
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
flex: 1;
|
|
68
|
+
font-size: 14px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.sea-database-dropdown-menu .sea-database-dropdown-item-content .sea-database-dropdown-item-content-icon {
|
|
72
|
+
margin-right: 10px;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.sea-database-dropdown-menu .sea-database-arrow-right {
|
|
76
|
+
color: #666;
|
|
77
|
+
font-size: 12px !important;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.sea-database-dropdown-menu .sea-database-dropdown-item-with-left-icon {
|
|
81
|
+
min-height: 32px;
|
|
82
|
+
padding: 3px 12px;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.sea-database-dropdown-menu .sea-database-check-mark {
|
|
86
|
+
color: #666;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/* sub menu */
|
|
90
|
+
.sea-database-sub-dropdown-menu .popover {
|
|
91
|
+
left: -8px !important;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.sea-database-sub-dropdown-menu .bs-popover-auto[x-placement^="left"] {
|
|
95
|
+
left: 8px !important;
|
|
96
|
+
}
|
|
@@ -10,7 +10,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
11
|
var _uuid = require("uuid");
|
|
12
12
|
var _utils = require("../../utils/utils");
|
|
13
|
-
var
|
|
13
|
+
var _hooks = require("../../../hooks");
|
|
14
14
|
var _translate = _interopRequireDefault(require("../../../lang/translate"));
|
|
15
15
|
var _fileTagList = _interopRequireDefault(require("./file-tag-list"));
|
|
16
16
|
var _editFiletagPopover = _interopRequireDefault(require("./popover/edit-filetag-popover"));
|
|
@@ -26,7 +26,7 @@ const FileTag = _ref => {
|
|
|
26
26
|
} = _ref;
|
|
27
27
|
const {
|
|
28
28
|
context
|
|
29
|
-
} = (0,
|
|
29
|
+
} = (0, _hooks.useFileViewContext)();
|
|
30
30
|
const [isEditFileTagShow, setEditFileTagShow] = (0, _react.useState)(false);
|
|
31
31
|
const direntPath = (0, _react.useMemo)(() => (0, _utils2.getDirentPath)(dirent, path), [dirent, path]);
|
|
32
32
|
const tagListTitleID = (0, _react.useMemo)(() => `detail-list-view-tags-${(0, _uuid.v4)()}`, []);
|
|
@@ -16,6 +16,18 @@ class ModalPortal extends _react.default.Component {
|
|
|
16
16
|
componentDidMount() {
|
|
17
17
|
modalRoot.appendChild(this.el);
|
|
18
18
|
}
|
|
19
|
+
componentDidUpdate() {
|
|
20
|
+
const {
|
|
21
|
+
className,
|
|
22
|
+
style
|
|
23
|
+
} = this.props;
|
|
24
|
+
if (className) {
|
|
25
|
+
this.el.className = className;
|
|
26
|
+
}
|
|
27
|
+
if (style) {
|
|
28
|
+
this.el.style = style;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
19
31
|
componentWillUnmount() {
|
|
20
32
|
modalRoot.removeChild(this.el);
|
|
21
33
|
}
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.getFolderIconUrl = exports.getFileIconUrl = exports.getDirentIcon = void 0;
|
|
7
|
+
exports.getFolderIconUrl = exports.getFileIconUrl = exports.getFileIconName = exports.getDirentIcon = void 0;
|
|
8
8
|
var _css = _interopRequireDefault(require("../../assets/imgs/256/files/css.png"));
|
|
9
9
|
var _draw = _interopRequireDefault(require("../../assets/imgs/256/files/draw.png"));
|
|
10
10
|
var _excel = _interopRequireDefault(require("../../assets/imgs/256/files/excel.png"));
|
|
@@ -119,4 +119,11 @@ const getDirentIcon = (dirent, isBig) => {
|
|
|
119
119
|
return getFolderIconUrl(readonly, size, dirent.has_been_shared_out);
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
|
-
exports.getDirentIcon = getDirentIcon;
|
|
122
|
+
exports.getDirentIcon = getDirentIcon;
|
|
123
|
+
const getFileIconName = function (fileName) {
|
|
124
|
+
if (fileName.lastIndexOf('.') === -1) return FILEEXT_ICON_MAP['default'];
|
|
125
|
+
const file_ext = fileName.substr(fileName.lastIndexOf('.') + 1).toLowerCase();
|
|
126
|
+
if (FILEEXT_ICON_MAP[file_ext]) return FILEEXT_ICON_MAP[file_ext];
|
|
127
|
+
return FILEEXT_ICON_MAP['default'];
|
|
128
|
+
};
|
|
129
|
+
exports.getFileIconName = getFileIconName;
|
|
@@ -328,6 +328,34 @@ const Utils = exports.Utils = {
|
|
|
328
328
|
const image_exts = ['gif', 'jpeg', 'jpg', 'png', 'ico', 'bmp', 'tif', 'tiff', 'jfif', 'heic', 'webp', 'svg'];
|
|
329
329
|
return image_exts.includes(file_ext);
|
|
330
330
|
},
|
|
331
|
+
pdfCheck: function (filename) {
|
|
332
|
+
if (filename.lastIndexOf('.') === -1) {
|
|
333
|
+
return false;
|
|
334
|
+
}
|
|
335
|
+
const file_ext = filename.substr(filename.lastIndexOf('.') + 1).toLowerCase();
|
|
336
|
+
return file_ext === 'pdf';
|
|
337
|
+
},
|
|
338
|
+
// check if a file is a video
|
|
339
|
+
videoCheck: function (filename) {
|
|
340
|
+
// no file ext
|
|
341
|
+
if (filename.lastIndexOf('.') == -1) {
|
|
342
|
+
return false;
|
|
343
|
+
}
|
|
344
|
+
const file_ext = filename.substr(filename.lastIndexOf('.') + 1).toLowerCase();
|
|
345
|
+
return ['mp4', 'ogv', 'webm', 'mov', 'm4v', 'mkv'].includes(file_ext);
|
|
346
|
+
},
|
|
347
|
+
isEditableSdocFile: function (filename, enableSeadoc) {
|
|
348
|
+
// no file ext
|
|
349
|
+
if (filename.lastIndexOf('.') === -1) {
|
|
350
|
+
return false;
|
|
351
|
+
}
|
|
352
|
+
const file_ext = filename.substr(filename.lastIndexOf('.') + 1).toLowerCase();
|
|
353
|
+
if (enableSeadoc && file_ext === 'sdoc') {
|
|
354
|
+
return true;
|
|
355
|
+
} else {
|
|
356
|
+
return false;
|
|
357
|
+
}
|
|
358
|
+
},
|
|
331
359
|
isMarkdownFile: function (filePath) {
|
|
332
360
|
let index = filePath.lastIndexOf('.');
|
|
333
361
|
if (index === -1) {
|
|
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _constants = require("../../constants");
|
|
10
|
-
var
|
|
10
|
+
var _hooks = require("../../hooks");
|
|
11
11
|
var _collaboratorEditor = _interopRequireDefault(require("./collaborator-editor"));
|
|
12
12
|
var _dateEditor = _interopRequireDefault(require("./date-editor"));
|
|
13
13
|
var _fileNameEditor = _interopRequireDefault(require("./file-name-editor"));
|
|
@@ -22,7 +22,7 @@ var _typeEditor = _interopRequireDefault(require("./type-editor"));
|
|
|
22
22
|
const Editor = /*#__PURE__*/_react.default.forwardRef((props, ref) => {
|
|
23
23
|
const {
|
|
24
24
|
context
|
|
25
|
-
} = (0,
|
|
25
|
+
} = (0, _hooks.useFileViewContext)();
|
|
26
26
|
switch (props.column.type) {
|
|
27
27
|
case _constants.CellType.TEXT:
|
|
28
28
|
{
|
|
@@ -12,7 +12,7 @@ var _components = require("../../../common/components");
|
|
|
12
12
|
var _typeDetection = require("../../../common/utils/type-detection");
|
|
13
13
|
var _icons = _interopRequireDefault(require("../../icons"));
|
|
14
14
|
var _keyCodes = require("../../../constants/keyCodes");
|
|
15
|
-
var
|
|
15
|
+
var _hooks = require("../../../hooks");
|
|
16
16
|
var _translate = _interopRequireDefault(require("../../../lang/translate"));
|
|
17
17
|
var _column = require("../../../utils/column");
|
|
18
18
|
var _deleteOptions = _interopRequireDefault(require("./delete-options"));
|
|
@@ -32,7 +32,7 @@ const MultipleSelectEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) =>
|
|
|
32
32
|
} = _ref;
|
|
33
33
|
const {
|
|
34
34
|
context
|
|
35
|
-
} = (0,
|
|
35
|
+
} = (0, _hooks.useFileViewContext)();
|
|
36
36
|
const [value, setValue] = (0, _react.useState)((0, _column.getColumnOptionIdsByNames)(column, oldValue));
|
|
37
37
|
const [searchValue, setSearchValue] = (0, _react.useState)('');
|
|
38
38
|
const [highlightIndex, setHighlightIndex] = (0, _react.useState)(-1);
|
|
@@ -8,7 +8,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _main = _interopRequireDefault(require("../../../common/components/option-editor/main"));
|
|
11
|
-
var
|
|
11
|
+
var _hooks = require("../../../hooks");
|
|
12
12
|
var _translate = _interopRequireDefault(require("../../../lang/translate"));
|
|
13
13
|
var _cell = require("../../../utils/cell");
|
|
14
14
|
var _column = require("../../../utils/column");
|
|
@@ -30,7 +30,7 @@ const SingleSelectEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
30
30
|
} = _ref;
|
|
31
31
|
const {
|
|
32
32
|
context
|
|
33
|
-
} = (0,
|
|
33
|
+
} = (0, _hooks.useFileViewContext)();
|
|
34
34
|
const editorRef = (0, _react.useRef)(null);
|
|
35
35
|
const mainRef = (0, _react.useRef)(null);
|
|
36
36
|
const canEditData = context.canModifyColumnData(column);
|
|
@@ -10,7 +10,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
10
10
|
var _main = _interopRequireDefault(require("../../../common/components/option-editor/main"));
|
|
11
11
|
var _constants = require("../../../constants");
|
|
12
12
|
var _hooks = require("../../../hooks");
|
|
13
|
-
var _appContext = require("../../../hooks/app-context");
|
|
14
13
|
var _translate = _interopRequireDefault(require("../../../lang/translate"));
|
|
15
14
|
require("./index.css");
|
|
16
15
|
const TagsEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
@@ -27,7 +26,7 @@ const TagsEditor = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
27
26
|
} = _ref;
|
|
28
27
|
const {
|
|
29
28
|
context
|
|
30
|
-
} = (0,
|
|
29
|
+
} = (0, _hooks.useFileViewContext)();
|
|
31
30
|
const {
|
|
32
31
|
tagsData,
|
|
33
32
|
createTag
|
|
@@ -8,12 +8,12 @@ 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 _globalSettings = _interopRequireDefault(require("../../global-settings"));
|
|
11
12
|
var _validate = require("../../utils/validate");
|
|
12
13
|
var _collaborator = _interopRequireDefault(require("./collaborator"));
|
|
13
14
|
const CreatorFormatter = _ref => {
|
|
14
15
|
let {
|
|
15
16
|
value,
|
|
16
|
-
mediaUrl,
|
|
17
17
|
className,
|
|
18
18
|
api,
|
|
19
19
|
collaborators = [],
|
|
@@ -33,6 +33,7 @@ const CreatorFormatter = _ref => {
|
|
|
33
33
|
isMounted && setCollaborator(collaborator);
|
|
34
34
|
return () => isMounted = false;
|
|
35
35
|
}
|
|
36
|
+
const mediaUrl = _globalSettings.default.getSetting('mediaUrl');
|
|
36
37
|
const defaultAvatarUrl = `${mediaUrl}/avatars/default.png`;
|
|
37
38
|
if (value === 'anonymous') {
|
|
38
39
|
collaborator = {
|
|
@@ -65,7 +66,7 @@ const CreatorFormatter = _ref => {
|
|
|
65
66
|
isMounted && setCollaborator(collaborator);
|
|
66
67
|
});
|
|
67
68
|
return () => isMounted = false;
|
|
68
|
-
}, [value, api,
|
|
69
|
+
}, [value, api, collaborators, collaboratorsCache, updateCollaboratorsCache]);
|
|
69
70
|
if (!collaborator) return emptyFormatter || null;
|
|
70
71
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
71
72
|
className: (0, _classnames.default)('sea-metadata-ui cell-formatter-container creator-formatter', className)
|
|
@@ -9,7 +9,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _reactstrap = require("reactstrap");
|
|
10
10
|
var _components = require("../../common/components");
|
|
11
11
|
var _dom = require("../../common/utils/dom");
|
|
12
|
-
var
|
|
12
|
+
var _hooks = require("../../hooks");
|
|
13
13
|
require("./index.css");
|
|
14
14
|
const ContextMenu = _ref => {
|
|
15
15
|
let {
|
|
@@ -20,7 +20,7 @@ const ContextMenu = _ref => {
|
|
|
20
20
|
} = _ref;
|
|
21
21
|
const {
|
|
22
22
|
context
|
|
23
|
-
} = (0,
|
|
23
|
+
} = (0, _hooks.useFileViewContext)();
|
|
24
24
|
const menuRef = (0, _react.useRef)(null);
|
|
25
25
|
const [visible, setVisible] = (0, _react.useState)(false);
|
|
26
26
|
const [position, setPosition] = (0, _react.useState)({
|
|
@@ -12,7 +12,6 @@ var _deepCopy = _interopRequireDefault(require("deep-copy"));
|
|
|
12
12
|
var _hotkey = require("../../common/utils/hotkey");
|
|
13
13
|
var _typeDetection = require("../../common/utils/type-detection");
|
|
14
14
|
var _hooks = require("../../hooks");
|
|
15
|
-
var _appContext = require("../../hooks/app-context");
|
|
16
15
|
var _translate = _interopRequireDefault(require("../../lang/translate"));
|
|
17
16
|
var _constants = require("../../constants");
|
|
18
17
|
var _filter = require("../../utils/filter");
|
|
@@ -35,7 +34,7 @@ const FilterSetter = _ref => {
|
|
|
35
34
|
} = _ref;
|
|
36
35
|
const {
|
|
37
36
|
context
|
|
38
|
-
} = (0,
|
|
37
|
+
} = (0, _hooks.useFileViewContext)();
|
|
39
38
|
const {
|
|
40
39
|
typesData
|
|
41
40
|
} = (0, _hooks.useTypesData)();
|
|
@@ -95,7 +94,7 @@ const FilterSetter = _ref => {
|
|
|
95
94
|
id: target
|
|
96
95
|
}), isShowSetter && /*#__PURE__*/_react.default.createElement(_popover.FilterPopover, {
|
|
97
96
|
appContext: context,
|
|
98
|
-
placement: "bottom-
|
|
97
|
+
placement: "bottom-start",
|
|
99
98
|
filtersClassName: filtersClassName,
|
|
100
99
|
target: target,
|
|
101
100
|
readOnly: readOnly,
|
|
@@ -34,6 +34,12 @@ Object.defineProperty(exports, "RowHeightSetter", {
|
|
|
34
34
|
return _rowHeightSetter.default;
|
|
35
35
|
}
|
|
36
36
|
});
|
|
37
|
+
Object.defineProperty(exports, "SettingsSetter", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () {
|
|
40
|
+
return _settingsSetter.default;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
37
43
|
Object.defineProperty(exports, "SortSetter", {
|
|
38
44
|
enumerable: true,
|
|
39
45
|
get: function () {
|
|
@@ -45,4 +51,5 @@ var _groupbySetter = _interopRequireDefault(require("./groupby-setter"));
|
|
|
45
51
|
var _hideColumnSetter = _interopRequireDefault(require("./hide-column-setter"));
|
|
46
52
|
var _manageSetter = _interopRequireDefault(require("./manage-setter"));
|
|
47
53
|
var _rowHeightSetter = _interopRequireDefault(require("./row-height-setter"));
|
|
54
|
+
var _settingsSetter = _interopRequireDefault(require("./settings-setter"));
|
|
48
55
|
var _sortSetter = _interopRequireDefault(require("./sort-setter"));
|
|
@@ -8,13 +8,12 @@ exports.default = void 0;
|
|
|
8
8
|
var _react = require("react");
|
|
9
9
|
var _reactstrap = require("reactstrap");
|
|
10
10
|
var _hooks = require("../../hooks");
|
|
11
|
-
var _appContext = require("../../hooks/app-context");
|
|
12
11
|
var _translate = _interopRequireDefault(require("../../lang/translate"));
|
|
13
12
|
var _icons = _interopRequireDefault(require("../icons"));
|
|
14
13
|
const ManageSetter = () => {
|
|
15
14
|
const {
|
|
16
15
|
context
|
|
17
|
-
} = (0,
|
|
16
|
+
} = (0, _hooks.useFileViewContext)();
|
|
18
17
|
const {
|
|
19
18
|
toggleAllTags
|
|
20
19
|
} = (0, _hooks.useTagsData)();
|
|
@@ -0,0 +1,119 @@
|
|
|
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 _hotkey = require("../../common/utils/hotkey");
|
|
11
|
+
var _constants = require("../../constants");
|
|
12
|
+
var _translate = _interopRequireDefault(require("../../lang/translate"));
|
|
13
|
+
var _column = require("../../utils/column");
|
|
14
|
+
var _iconButton = _interopRequireDefault(require("../icon-button"));
|
|
15
|
+
var _settingsPopover = _interopRequireDefault(require("../popover/settings-popover"));
|
|
16
|
+
const SettingsSetter = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
readOnly,
|
|
19
|
+
wrapperClass,
|
|
20
|
+
target,
|
|
21
|
+
columns,
|
|
22
|
+
columnsMap,
|
|
23
|
+
settings,
|
|
24
|
+
modifySettings
|
|
25
|
+
} = _ref;
|
|
26
|
+
const [isShowSetter, setShowSetter] = (0, _react.useState)(false);
|
|
27
|
+
const displayColumns = (0, _react.useMemo)(() => {
|
|
28
|
+
const displayColumnsConfig = settings[_constants.CARD_SETTINGS_KEYS.COLUMNS];
|
|
29
|
+
const nameColumnKey = _constants.PRIVATE_COLUMN_KEY.FILE_NAME;
|
|
30
|
+
const mtimeColumnKey = _constants.PRIVATE_COLUMN_KEY.FILE_MTIME;
|
|
31
|
+
const lastModifierColumnKey = _constants.PRIVATE_COLUMN_KEY.FILE_MODIFIER;
|
|
32
|
+
const filteredColumns = columns.filter(item => item.key !== nameColumnKey && item.key !== mtimeColumnKey && item.key !== lastModifierColumnKey);
|
|
33
|
+
if (!displayColumnsConfig) {
|
|
34
|
+
return filteredColumns.map(column => ({
|
|
35
|
+
...column,
|
|
36
|
+
shown: false
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
const validDisplayColumnsConfig = displayColumnsConfig.map(columnConfig => {
|
|
40
|
+
const column = columnsMap[columnConfig.key];
|
|
41
|
+
if (column) return {
|
|
42
|
+
...column,
|
|
43
|
+
shown: columnConfig.shown
|
|
44
|
+
};
|
|
45
|
+
return null;
|
|
46
|
+
}).filter(column => column && column.key !== nameColumnKey && column.key !== mtimeColumnKey);
|
|
47
|
+
const addedColumns = filteredColumns.filter(column => !(0, _column.getColumnByKey)(validDisplayColumnsConfig, column.key)).map(column => ({
|
|
48
|
+
...column,
|
|
49
|
+
shown: false
|
|
50
|
+
}));
|
|
51
|
+
return [...validDisplayColumnsConfig, ...addedColumns];
|
|
52
|
+
}, [settings, columns, columnsMap]);
|
|
53
|
+
const displayColumnsConfig = (0, _react.useMemo)(() => displayColumns.map(column => ({
|
|
54
|
+
key: column.key,
|
|
55
|
+
shown: column.shown
|
|
56
|
+
})), [displayColumns]);
|
|
57
|
+
const onSetterToggle = (0, _react.useCallback)(() => {
|
|
58
|
+
setShowSetter(!isShowSetter);
|
|
59
|
+
}, [isShowSetter]);
|
|
60
|
+
const onKeyDown = (0, _react.useCallback)(event => {
|
|
61
|
+
event.stopPropagation();
|
|
62
|
+
if ((0, _hotkey.isEnter)(event) || (0, _hotkey.isSpace)(event)) onSetterToggle();
|
|
63
|
+
}, [onSetterToggle]);
|
|
64
|
+
const handleUpdateSettings = (0, _react.useCallback)((key, value) => {
|
|
65
|
+
modifySettings({
|
|
66
|
+
...settings,
|
|
67
|
+
[key]: value
|
|
68
|
+
});
|
|
69
|
+
}, [settings, modifySettings]);
|
|
70
|
+
const onToggleField = (0, _react.useCallback)((key, shown) => {
|
|
71
|
+
const newDisplayColumnsConfig = displayColumnsConfig.map(columnConfig => {
|
|
72
|
+
if (columnConfig.key === key) return {
|
|
73
|
+
...columnConfig,
|
|
74
|
+
shown
|
|
75
|
+
};
|
|
76
|
+
return columnConfig;
|
|
77
|
+
});
|
|
78
|
+
handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.COLUMNS, newDisplayColumnsConfig);
|
|
79
|
+
}, [displayColumnsConfig, handleUpdateSettings]);
|
|
80
|
+
const onMoveField = (0, _react.useCallback)((sourceKey, targetKey) => {
|
|
81
|
+
const newDisplayColumnsConfig = displayColumnsConfig.slice(0);
|
|
82
|
+
const sourceIndex = displayColumnsConfig.findIndex(columnConfig => columnConfig.key === sourceKey);
|
|
83
|
+
const targetIndex = displayColumnsConfig.findIndex(columnConfig => columnConfig.key === targetKey);
|
|
84
|
+
if (sourceIndex === -1 || targetIndex === -1) return;
|
|
85
|
+
newDisplayColumnsConfig.splice(sourceIndex, 1, displayColumnsConfig[targetIndex]);
|
|
86
|
+
newDisplayColumnsConfig.splice(targetIndex, 1, displayColumnsConfig[sourceIndex]);
|
|
87
|
+
handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.COLUMNS, newDisplayColumnsConfig);
|
|
88
|
+
}, [displayColumnsConfig, handleUpdateSettings]);
|
|
89
|
+
const onToggleFieldsVisibility = (0, _react.useCallback)(visibility => {
|
|
90
|
+
const newDisplayColumnsConfig = displayColumnsConfig.map(columnConfig => ({
|
|
91
|
+
...columnConfig,
|
|
92
|
+
shown: visibility
|
|
93
|
+
}));
|
|
94
|
+
handleUpdateSettings(_constants.CARD_SETTINGS_KEYS.COLUMNS, newDisplayColumnsConfig);
|
|
95
|
+
}, [displayColumnsConfig, handleUpdateSettings]);
|
|
96
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_iconButton.default, {
|
|
97
|
+
icon: 'set-up',
|
|
98
|
+
size: 24,
|
|
99
|
+
className: wrapperClass,
|
|
100
|
+
onClick: onSetterToggle,
|
|
101
|
+
role: "button",
|
|
102
|
+
onKeyDown: onKeyDown,
|
|
103
|
+
tabIndex: 0,
|
|
104
|
+
id: target,
|
|
105
|
+
title: _translate.default.gettext('Setting'),
|
|
106
|
+
"aria-label": _translate.default.gettext('Setting')
|
|
107
|
+
}), isShowSetter && /*#__PURE__*/_react.default.createElement(_settingsPopover.default, {
|
|
108
|
+
readOnly: readOnly,
|
|
109
|
+
target: target,
|
|
110
|
+
columns: displayColumns,
|
|
111
|
+
settings: settings,
|
|
112
|
+
handleUpdateSettings: handleUpdateSettings,
|
|
113
|
+
onMoveField: onMoveField,
|
|
114
|
+
onToggleField: onToggleField,
|
|
115
|
+
onToggleFieldsVisibility: onToggleFieldsVisibility,
|
|
116
|
+
hidePopover: onSetterToggle
|
|
117
|
+
}));
|
|
118
|
+
};
|
|
119
|
+
var _default = exports.default = SettingsSetter;
|
|
@@ -9,7 +9,7 @@ exports.default = void 0;
|
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
10
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
11
|
var _hotkey = require("../../common/utils/hotkey");
|
|
12
|
-
var
|
|
12
|
+
var _hooks = require("../../hooks");
|
|
13
13
|
var _translate = _interopRequireDefault(require("../../lang/translate"));
|
|
14
14
|
var _constants = require("../../constants");
|
|
15
15
|
var _sort = require("../../utils/sort");
|
|
@@ -27,7 +27,7 @@ const SortSetter = _ref => {
|
|
|
27
27
|
} = _ref;
|
|
28
28
|
const {
|
|
29
29
|
context
|
|
30
|
-
} = (0,
|
|
30
|
+
} = (0, _hooks.useFileViewContext)();
|
|
31
31
|
const [isShowSetter, setShowSetter] = (0, _react.useState)(false);
|
|
32
32
|
const sorts = (0, _react.useMemo)(() => {
|
|
33
33
|
return (0, _sort.getValidSorts)(propsSorts || [], columns);
|
|
@@ -0,0 +1,53 @@
|
|
|
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 _hotkey = require("../../common/utils/hotkey");
|
|
11
|
+
var _translate = _interopRequireDefault(require("../../lang/translate"));
|
|
12
|
+
var _iconButton = _interopRequireDefault(require("../icon-button"));
|
|
13
|
+
var _icons = _interopRequireDefault(require("../icons"));
|
|
14
|
+
var _popover = require("../popover");
|
|
15
|
+
const SettingsSetter = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
readOnly,
|
|
18
|
+
wrapperClass,
|
|
19
|
+
target,
|
|
20
|
+
type,
|
|
21
|
+
modifyViewType
|
|
22
|
+
} = _ref;
|
|
23
|
+
const [isShowSetter, setShowSetter] = (0, _react.useState)(false);
|
|
24
|
+
const onSetterToggle = (0, _react.useCallback)(() => {
|
|
25
|
+
setShowSetter(!isShowSetter);
|
|
26
|
+
}, [isShowSetter]);
|
|
27
|
+
const onKeyDown = (0, _react.useCallback)(event => {
|
|
28
|
+
event.stopPropagation();
|
|
29
|
+
if ((0, _hotkey.isEnter)(event) || (0, _hotkey.isSpace)(event)) onSetterToggle();
|
|
30
|
+
}, [onSetterToggle]);
|
|
31
|
+
const onChangeType = (0, _react.useCallback)(type => {
|
|
32
|
+
modifyViewType(type);
|
|
33
|
+
}, [modifyViewType]);
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
35
|
+
className: wrapperClass,
|
|
36
|
+
id: target,
|
|
37
|
+
onClick: onSetterToggle,
|
|
38
|
+
title: _translate.default.gettext('View type'),
|
|
39
|
+
"aria-label": _translate.default.gettext('View type')
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
41
|
+
className: 'mr-1',
|
|
42
|
+
symbol: type
|
|
43
|
+
}), /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
44
|
+
symbol: 'arrow-down'
|
|
45
|
+
})), isShowSetter && /*#__PURE__*/_react.default.createElement(_popover.ViewTypePopover, {
|
|
46
|
+
readOnly: readOnly,
|
|
47
|
+
target: target,
|
|
48
|
+
type: type,
|
|
49
|
+
onChangeType: onChangeType,
|
|
50
|
+
hidePopover: onSetterToggle
|
|
51
|
+
}));
|
|
52
|
+
};
|
|
53
|
+
var _default = exports.default = SettingsSetter;
|