@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.
- package/dist/api/api.js +27 -21
- package/dist/assets/css/dropdown-menu.css +96 -0
- package/dist/common/components/file-tag/index.js +2 -2
- 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/context-menu/index.js +2 -2
- package/dist/components/data-process-setter/filter-setter.js +1 -2
- package/dist/components/data-process-setter/manage-setter.js +1 -2
- package/dist/components/data-process-setter/sort-setter.js +2 -2
- 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/icons/arrow-down-icon.js +19 -0
- package/dist/components/icons/arrow-up-icon.js +19 -0
- package/dist/components/icons/close-icon.js +23 -0
- package/dist/components/icons/index.js +14 -1
- package/dist/components/icons/set-up-icon.js +22 -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/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 +32 -2
- package/dist/context.js +89 -34
- package/dist/database.js +11 -18
- package/dist/file-base.js +31 -0
- package/dist/global-settings.js +3 -1
- package/dist/hooks/collaborators.js +9 -3
- package/dist/hooks/{app-context.js → file-repo-context.js} +25 -20
- package/dist/hooks/file-view-context.js +69 -0
- package/dist/hooks/index.js +14 -14
- package/dist/hooks/metadata.js +45 -47
- package/dist/hooks/tagsData.js +8 -2
- package/dist/index.js +3 -3
- package/dist/locale/en.js +6 -1
- package/dist/locale/zh_CN.js +6 -1
- package/dist/store/data-processor.js +1 -0
- 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 +5 -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/hooks/viewsData.js +0 -154
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, fileRepoId) => {
|
|
14
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repos/' + fileRepoId + '/';
|
|
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,41 @@ 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_repo_id: fileRepoId,
|
|
175
|
+
view_id: viewId
|
|
176
|
+
} = params;
|
|
177
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repo/' + fileRepoId + '/views/' + viewId + '/records';
|
|
169
178
|
return this.req.get(url);
|
|
170
179
|
}
|
|
171
180
|
getView(view_data) {
|
|
172
181
|
const {
|
|
173
182
|
wiki_id: wikiId,
|
|
183
|
+
file_repo_id: fileRepoId,
|
|
174
184
|
view_id: viewId
|
|
175
185
|
} = view_data;
|
|
176
|
-
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/views/' + viewId + '/';
|
|
177
|
-
return this.req.get(url
|
|
186
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repo/' + fileRepoId + '/views/' + viewId + '/';
|
|
187
|
+
return this.req.get(url, {
|
|
188
|
+
view_id: viewId
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
insertView(wikiId, fileRepoId, view_data) {
|
|
192
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repo/' + fileRepoId + '/views/';
|
|
193
|
+
return this.req.post(url, view_data);
|
|
178
194
|
}
|
|
179
|
-
modifyView(wikiId, viewId, viewData) {
|
|
180
|
-
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/views/';
|
|
195
|
+
modifyView(wikiId, fileRepoId, viewId, viewData) {
|
|
196
|
+
const url = this.server + '/api/v2.1/wiki2/' + wikiId + '/file-repo/' + fileRepoId + '/views/' + viewId + '/';
|
|
181
197
|
const data = {
|
|
182
|
-
view_id: viewId,
|
|
183
198
|
view_data: viewData
|
|
184
199
|
};
|
|
185
200
|
return this.req.put(url, data);
|
|
186
201
|
}
|
|
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
202
|
rotateImage(repoID, path, angle) {
|
|
201
203
|
let url = `${this.server}/api/v2.1/repos/${repoID}/image-rotate/`;
|
|
202
204
|
let form = new FormData();
|
|
@@ -300,5 +302,9 @@ class SeafileAPI {
|
|
|
300
302
|
}
|
|
301
303
|
return this.req.put(url, data);
|
|
302
304
|
}
|
|
305
|
+
getMetadataStatus(repoID) {
|
|
306
|
+
const url = this.server + '/api/v2.1/repos/' + repoID + '/metadata/';
|
|
307
|
+
return this.req.get(url);
|
|
308
|
+
}
|
|
303
309
|
}
|
|
304
310
|
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.useFileRepoContext)();
|
|
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)()}`, []);
|
|
@@ -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.useFileRepoContext)();
|
|
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.useFileRepoContext)();
|
|
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.useFileRepoContext)();
|
|
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.useFileRepoContext)();
|
|
31
30
|
const {
|
|
32
31
|
tagsData,
|
|
33
32
|
createTag
|
|
@@ -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.useFileRepoContext)();
|
|
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.useFileRepoContext)();
|
|
39
38
|
const {
|
|
40
39
|
typesData
|
|
41
40
|
} = (0, _hooks.useTypesData)();
|
|
@@ -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.useFileRepoContext)();
|
|
18
17
|
const {
|
|
19
18
|
toggleAllTags
|
|
20
19
|
} = (0, _hooks.useTagsData)();
|
|
@@ -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.useFileRepoContext)();
|
|
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,34 @@
|
|
|
1
|
+
.modal .custom-modal-btn.close {
|
|
2
|
+
padding: 14px 16px;
|
|
3
|
+
opacity: 1;
|
|
4
|
+
margin: -1rem -1rem -1rem auto;
|
|
5
|
+
background-color: transparent;
|
|
6
|
+
border: 0;
|
|
7
|
+
float: right;
|
|
8
|
+
font-size: 1.40625rem;
|
|
9
|
+
font-weight: 700;
|
|
10
|
+
line-height: 1;
|
|
11
|
+
color: var(--bs-icon-color);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.modal .custom-modal-btn.close:not(:disabled):not(.disabled):hover {
|
|
15
|
+
opacity: 1;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.modal .custom-modal-btn .custom-modal-btn-inner {
|
|
19
|
+
display: inline-block;
|
|
20
|
+
width: 28px;
|
|
21
|
+
height: 28px;
|
|
22
|
+
border-radius: 3px;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.modal .custom-modal-btn .custom-modal-btn-inner:hover {
|
|
26
|
+
background-color: var(--bs-hover-bg);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.modal .custom-modal-btn .custom-modal-btn-inner .seafile-multicolor-icon {
|
|
30
|
+
width: 16px;
|
|
31
|
+
height: 16px;
|
|
32
|
+
color: var(--bs-icon-color);
|
|
33
|
+
font-size: 1rem;
|
|
34
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactstrap = require("reactstrap");
|
|
10
|
+
var _translate = _interopRequireDefault(require("../../../lang/translate"));
|
|
11
|
+
var _icons = _interopRequireDefault(require("../../icons"));
|
|
12
|
+
require("./index.css");
|
|
13
|
+
const CustomModalHeader = _ref => {
|
|
14
|
+
let {
|
|
15
|
+
children,
|
|
16
|
+
...props
|
|
17
|
+
} = _ref;
|
|
18
|
+
const customCloseBtn = /*#__PURE__*/_react.default.createElement("button", {
|
|
19
|
+
type: "button",
|
|
20
|
+
className: "close custom-modal-btn",
|
|
21
|
+
"data-dismiss": "modal",
|
|
22
|
+
"aria-label": _translate.default.gettext('Close'),
|
|
23
|
+
title: _translate.default.gettext('Close'),
|
|
24
|
+
onClick: props.toggle
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
26
|
+
className: "custom-modal-btn-inner"
|
|
27
|
+
}, /*#__PURE__*/_react.default.createElement(_icons.default, {
|
|
28
|
+
symbol: "close"
|
|
29
|
+
})));
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement(_reactstrap.ModalHeader, Object.assign({}, props, {
|
|
31
|
+
close: customCloseBtn
|
|
32
|
+
}), children);
|
|
33
|
+
};
|
|
34
|
+
var _default = exports.default = CustomModalHeader;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _reactstrap = require("reactstrap");
|
|
11
|
+
var _components = require("../../common/components");
|
|
12
|
+
var _translate = _interopRequireDefault(require("../../lang/translate"));
|
|
13
|
+
var _customModalHeader = _interopRequireDefault(require("./custom-modal-header"));
|
|
14
|
+
const VIEW_TYPES = {
|
|
15
|
+
TABLE: 'table',
|
|
16
|
+
CARD: 'card'
|
|
17
|
+
// GALLERY: 'gallery',
|
|
18
|
+
};
|
|
19
|
+
const VIEW_TYPE_OPTIONS = [{
|
|
20
|
+
label: _translate.default.gettext('Table'),
|
|
21
|
+
value: VIEW_TYPES.TABLE
|
|
22
|
+
}, {
|
|
23
|
+
label: _translate.default.gettext('Card'),
|
|
24
|
+
value: VIEW_TYPES.CARD
|
|
25
|
+
}
|
|
26
|
+
// { label: Translate.gettext('Gallery'), value: VIEW_TYPES.TABLE },
|
|
27
|
+
];
|
|
28
|
+
class InsertViewDialog extends _react.default.Component {
|
|
29
|
+
constructor(props) {
|
|
30
|
+
super(props);
|
|
31
|
+
(0, _defineProperty2.default)(this, "inputNewName", e => {
|
|
32
|
+
this.setState({
|
|
33
|
+
name: e.target.value
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
(0, _defineProperty2.default)(this, "handleKeyDown", e => {
|
|
37
|
+
if (e.key === 'Enter') {
|
|
38
|
+
this.handleSubmit();
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
(0, _defineProperty2.default)(this, "handleSubmit", () => {
|
|
42
|
+
const viewName = this.state.name.trim();
|
|
43
|
+
if (!viewName) {
|
|
44
|
+
_components.toaster.danger(_translate.default.gettext('View name is required.'));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const {
|
|
48
|
+
viewType
|
|
49
|
+
} = this.state;
|
|
50
|
+
if (!viewType) {
|
|
51
|
+
_components.toaster.danger(_translate.default.gettext('View type is required.'));
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.props.onAddView(viewName, viewType);
|
|
55
|
+
});
|
|
56
|
+
(0, _defineProperty2.default)(this, "toggle", () => {
|
|
57
|
+
this.props.toggleCancel();
|
|
58
|
+
});
|
|
59
|
+
(0, _defineProperty2.default)(this, "handleSelectChange", option => {
|
|
60
|
+
this.setState({
|
|
61
|
+
viewType: option
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
this.state = {
|
|
65
|
+
name: '',
|
|
66
|
+
isSubmitBtnActive: false,
|
|
67
|
+
selectedOption: null,
|
|
68
|
+
viewType: ''
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
render() {
|
|
72
|
+
const {
|
|
73
|
+
viewType
|
|
74
|
+
} = this.state;
|
|
75
|
+
const selectedOption = VIEW_TYPE_OPTIONS.find(item => item.value === viewType);
|
|
76
|
+
return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
|
|
77
|
+
isOpen: true,
|
|
78
|
+
autoFocus: false,
|
|
79
|
+
toggle: this.toggle
|
|
80
|
+
}, /*#__PURE__*/_react.default.createElement(_customModalHeader.default, {
|
|
81
|
+
toggle: this.toggle
|
|
82
|
+
}, _translate.default.gettext('Add view')), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Label, null, _translate.default.gettext('View name')), /*#__PURE__*/_react.default.createElement(_reactstrap.Input, {
|
|
83
|
+
onKeyDown: this.handleKeyDown,
|
|
84
|
+
autoFocus: true,
|
|
85
|
+
value: this.state.name,
|
|
86
|
+
onChange: this.inputNewName,
|
|
87
|
+
name: "view-name"
|
|
88
|
+
}), /*#__PURE__*/_react.default.createElement(_reactstrap.Label, {
|
|
89
|
+
className: "mt-2"
|
|
90
|
+
}, _translate.default.gettext('View type')), /*#__PURE__*/_react.default.createElement(_components.CustomizeSelect, {
|
|
91
|
+
value: selectedOption,
|
|
92
|
+
options: VIEW_TYPE_OPTIONS,
|
|
93
|
+
onChange: this.handleSelectChange
|
|
94
|
+
})), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalFooter, null, /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
|
|
95
|
+
color: "secondary",
|
|
96
|
+
onClick: this.toggle
|
|
97
|
+
}, _translate.default.gettext('Cancel')), /*#__PURE__*/_react.default.createElement(_reactstrap.Button, {
|
|
98
|
+
color: "primary",
|
|
99
|
+
onClick: this.handleSubmit,
|
|
100
|
+
disabled: !this.state.name.trim()
|
|
101
|
+
}, _translate.default.gettext('Submit'))));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
var _default = exports.default = InsertViewDialog;
|
|
@@ -0,0 +1,19 @@
|
|
|
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 ArrayDownIcon = 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: "M16.0605 24L28.1211 11.9395L26 9.81836L16.0605 19.7578L6.12109 9.81836L4 11.9395L16.0605 24Z",
|
|
17
|
+
fill: "currentColor"
|
|
18
|
+
}));
|
|
19
|
+
var _default = exports.default = ArrayDownIcon;
|
|
@@ -0,0 +1,19 @@
|
|
|
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 ArrayUpIcon = 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: "M16.0607 7.99988L28.1212 20.0604L26.0001 22.1815L16.0607 12.2421L6.12122 22.1815L4.00012 20.0604L16.0607 7.99988Z",
|
|
17
|
+
fill: "currentColor"
|
|
18
|
+
}));
|
|
19
|
+
var _default = exports.default = ArrayUpIcon;
|
|
@@ -0,0 +1,23 @@
|
|
|
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 CloseIcon = props => /*#__PURE__*/React.createElement("svg", Object.assign({
|
|
10
|
+
t: 1718937171668,
|
|
11
|
+
className: "icon",
|
|
12
|
+
viewBox: "0 0 1024 1024",
|
|
13
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
14
|
+
"p-id": 18368,
|
|
15
|
+
xmlnsXlink: "http://www.w3.org/1999/xlink",
|
|
16
|
+
width: 200,
|
|
17
|
+
height: 200
|
|
18
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
19
|
+
d: "M489.6 444.8l294.4-294.4 67.2 67.2-294.4 294.4 294.4 294.4-67.2 67.2-294.4-294.4-272 272-67.2-67.2 272-272-272-272 67.2-67.2z",
|
|
20
|
+
"p-id": 18369,
|
|
21
|
+
fill: "currentColor"
|
|
22
|
+
}));
|
|
23
|
+
var _default = exports.default = CloseIcon;
|