@seafile/sdoc-editor 3.0.82 → 3.0.84

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 (23) hide show
  1. package/dist/api/seafile-api.js +20 -21
  2. package/dist/constants/index.js +2 -1
  3. package/dist/context.js +23 -9
  4. package/dist/extension/commons/insert-element-dialog/index.js +13 -26
  5. package/dist/extension/plugins/file-view/helpers.js +2 -14
  6. package/dist/extension/plugins/file-view/render-elem/index.js +5 -12
  7. package/dist/extension/plugins/link/plugin.js +3 -2
  8. package/dist/extension/plugins/whiteboard/helper.js +6 -3
  9. package/dist/extension/toolbar/insert-element-toolbar/index.js +8 -7
  10. package/dist/extension/toolbar/linked-repo-popover/link-repo-list.css +8 -6
  11. package/dist/extension/toolbar/linked-repo-popover/link-repo-list.js +26 -67
  12. package/dist/extension/toolbar/side-toolbar/insert-block-menu.js +9 -8
  13. package/package.json +3 -3
  14. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/constants.js +0 -16
  15. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.css +0 -96
  16. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/index.js +0 -156
  17. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/lib.png +0 -0
  18. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.css +0 -49
  19. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/option.js +0 -53
  20. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.css +0 -37
  21. package/dist/extension/plugins/file-view/insert-view-dialog/dropdown-select/select-option-group.js +0 -241
  22. package/dist/extension/plugins/file-view/insert-view-dialog/index.js +0 -232
  23. package/dist/extension/plugins/file-view/insert-view-dialog/modal-portal.js +0 -41
@@ -312,35 +312,34 @@ var SeafileAPI = /*#__PURE__*/function () {
312
312
  return this.req.get(url);
313
313
  }
314
314
  }, {
315
- key: "insertWikiView",
316
- value: function insertWikiView(wikiId, docUuid, data) {
317
- var url = "/api/v2.1/wiki2/".concat(wikiId, "/views/");
315
+ key: "insertFileRepo",
316
+ value: function insertFileRepo(docUuid, wikiId, data) {
317
+ var url = "/api/v2.1/wiki2/".concat(wikiId, "/file-repos/");
318
318
  var form = new FormData();
319
- form.append('file_uuid', docUuid);
320
- form.append('name', data.view_name);
321
- form.append('type', data.view_type);
322
- form.append('link_repo_id', data.link_repo_id);
323
- return this.req.post(url, form);
324
- }
325
- }, {
326
- key: "duplicateWikiView",
327
- value: function duplicateWikiView(wikiId, docUuid, viewId) {
328
- var url = "/api/v2.1/wiki2/".concat(wikiId, "/duplicate-view/");
329
- var form = new FormData();
330
- form.append('file_uuid', docUuid);
331
- form.append('view_id', viewId);
319
+ form.append('file_uuid', docUuid); // used for valid permission
320
+ form.append('name', data.name);
321
+ form.append('view_name', data.view_name);
322
+ form.append('linked_repo_id', data.linked_repo_id);
332
323
  return this.req.post(url, form);
333
324
  }
334
325
  }, {
335
- key: "modifyView",
336
- value: function modifyView(wikiId, viewId, viewData) {
337
- var url = '/api/v2.1/wiki2/' + wikiId + '/views/';
326
+ key: "modifyFileRepo",
327
+ value: function modifyFileRepo(wikiId, fileRepoId, viewData) {
328
+ var url = '/api/v2.1/wiki2/' + wikiId + '/file-repos/' + fileRepoId + '/';
338
329
  var data = {
339
- view_id: viewId,
340
- view_data: viewData
330
+ viewData: viewData
341
331
  };
342
332
  return this.req.put(url, data);
343
333
  }
334
+ }, {
335
+ key: "duplicateFileRepo",
336
+ value: function duplicateFileRepo(docUuid, wikiId, fileRepoId) {
337
+ var url = "/api/v2.1/wiki2/".concat(wikiId, "/file-repos/").concat(fileRepoId, "/duplicate/");
338
+ var form = new FormData();
339
+ form.append('file_uuid', docUuid); // used for valid permission
340
+
341
+ return this.req.post(url);
342
+ }
344
343
  }]);
345
344
  }();
346
345
  var _default = exports["default"] = SeafileAPI;
@@ -79,7 +79,8 @@ var INTERNAL_EVENT = exports.INTERNAL_EVENT = {
79
79
  CREATE_WHITEBOARD_FILE: 'create_whiteboard_file',
80
80
  GENERATE_EXDRAW_READ_ONLY_LINK: 'generate_exdraw_read_only_link',
81
81
  TRANSFER_PREVIEW_FILE_ID: 'transfer_preview_file_id',
82
- FILE_METADATA_COMPONENT: 'file_metadata_component'
82
+ FILE_METADATA_COMPONENT: 'file_metadata_component',
83
+ ADD_WIKI_LIBRARY_TOGGLE: 'add_wiki_library_click'
83
84
  };
84
85
  var PAGE_EDIT_AREA_WIDTH = exports.PAGE_EDIT_AREA_WIDTH = 672; // 672 = 794 - 2[borderLeft + borderRight] - 120[paddingLeft + paddingRight]
85
86
  var COMMENT_EDITOR_EDIT_AREA_WIDTH = exports.COMMENT_EDITOR_EDIT_AREA_WIDTH = 364;
package/dist/context.js CHANGED
@@ -35,6 +35,20 @@ var Context = /*#__PURE__*/function () {
35
35
  _this.settings['originFileURL'] = originFileURL;
36
36
  }
37
37
  });
38
+ (0, _defineProperty2["default"])(this, "getWikiSettings", function () {
39
+ if (window.wiki && window.wiki.config) {
40
+ var wikiSettings = window.wiki.config.wikiSettings;
41
+ return wikiSettings;
42
+ }
43
+ return _this.settings['wikiSettings'];
44
+ });
45
+ (0, _defineProperty2["default"])(this, "getWikiRepos", function () {
46
+ if (window.wiki && window.wiki.config) {
47
+ var repos = window.wiki.config.repos;
48
+ return repos;
49
+ }
50
+ return _this.settings['repos'];
51
+ });
38
52
  (0, _defineProperty2["default"])(this, "uploadLocalImage", function (imageFiles) {
39
53
  var docUuid = _this.getSetting('docUuid');
40
54
  return _this.api.uploadSdocImage(docUuid, imageFiles).then(function (res) {
@@ -419,24 +433,24 @@ var Context = /*#__PURE__*/function () {
419
433
  return this.api.getFileMetadataInfo(docUuid, fileType);
420
434
  }
421
435
  }, {
422
- key: "insertWikiView",
423
- value: function insertWikiView(data) {
436
+ key: "insertFileRepo",
437
+ value: function insertFileRepo(data) {
424
438
  var wikiId = this.getSetting('wikiId');
425
439
  var docUuid = this.getSetting('docUuid');
426
- return this.api.insertWikiView(wikiId, docUuid, data);
440
+ return this.api.insertFileRepo(docUuid, wikiId, data);
427
441
  }
428
442
  }, {
429
- key: "duplicateWikiView",
430
- value: function duplicateWikiView(viewId) {
443
+ key: "duplicateFileRepo",
444
+ value: function duplicateFileRepo(fileRepoId) {
431
445
  var wikiId = this.getSetting('wikiId');
432
446
  var docUuid = this.getSetting('docUuid');
433
- return this.api.duplicateWikiView(wikiId, docUuid, viewId);
447
+ return this.api.duplicateWikiView(docUuid, wikiId, fileRepoId);
434
448
  }
435
449
  }, {
436
- key: "modifyView",
437
- value: function modifyView(viewId, viewData) {
450
+ key: "modifyFileRepo",
451
+ value: function modifyFileRepo(viewId, fileRepoId, viewData) {
438
452
  var wikiId = this.getSetting('wikiId');
439
- return this.api.modifyView(wikiId, viewId, viewData);
453
+ return this.api.modifyView(wikiId, fileRepoId, viewData);
440
454
  }
441
455
  }]);
442
456
  }();
@@ -15,17 +15,16 @@ var _context = _interopRequireDefault(require("../../../context"));
15
15
  var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
16
16
  var _constants2 = require("../../constants");
17
17
  var _index = _interopRequireDefault(require("../../plugins/ai/ai-module/index.js"));
18
- var _index2 = _interopRequireDefault(require("../../plugins/file-view/insert-view-dialog/index.js"));
19
18
  var _formulaModal = _interopRequireDefault(require("../../plugins/formula/menu/formula-modal.js"));
20
19
  var _helpers = require("../../plugins/image/helpers");
21
20
  var _addLinkDialog = _interopRequireDefault(require("../../plugins/link/dialog/add-link-dialog"));
22
21
  var _dialogs = require("../../plugins/table/dialogs");
23
- var _index3 = require("../../plugins/video/constants/index.js");
24
- var _index4 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
22
+ var _index2 = require("../../plugins/video/constants/index.js");
23
+ var _index3 = _interopRequireDefault(require("../../plugins/video/dialog/add-video-link-dialog/index.js"));
25
24
  var _helpers2 = require("../../plugins/video/helpers");
26
- var _index5 = _interopRequireDefault(require("../file-insert-dialog/index.js"));
27
- var _index6 = _interopRequireDefault(require("../select-file-dialog/index.js"));
28
- var _index7 = _interopRequireDefault(require("../wiki-file-insert-dialog/index.js"));
25
+ var _index4 = _interopRequireDefault(require("../file-insert-dialog/index.js"));
26
+ var _index5 = _interopRequireDefault(require("../select-file-dialog/index.js"));
27
+ var _index6 = _interopRequireDefault(require("../wiki-file-insert-dialog/index.js"));
29
28
  var InsertElementDialog = function InsertElementDialog(_ref) {
30
29
  var editor = _ref.editor;
31
30
  var _useState = (0, _react.useState)(''),
@@ -101,7 +100,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
101
100
  var onVideoFileChanged = (0, _react.useCallback)(function (event) {
102
101
  var files = event.target.files;
103
102
  // Show warning for 3s and no further insertion if video file is more than 5MB
104
- if (files[0].size > _index3.VIDEO_MAX_SIZE_5MB) {
103
+ if (files[0].size > _index2.VIDEO_MAX_SIZE_5MB) {
105
104
  handleDisplayAlert();
106
105
  event.target.value = null;
107
106
  return;
@@ -223,7 +222,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
223
222
  insertLinkCallback: insertLinkCallback,
224
223
  closeDialog: closeDialog
225
224
  };
226
- return /*#__PURE__*/_react["default"].createElement(_index6["default"], sdocLinkProps);
225
+ return /*#__PURE__*/_react["default"].createElement(_index5["default"], sdocLinkProps);
227
226
  }
228
227
  case _constants2.ELEMENT_TYPE.FILE_LINK:
229
228
  {
@@ -233,7 +232,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
233
232
  insertLinkCallback: insertLinkCallback,
234
233
  closeDialog: closeDialog
235
234
  };
236
- return /*#__PURE__*/_react["default"].createElement(_index6["default"], fileLinkProps);
235
+ return /*#__PURE__*/_react["default"].createElement(_index5["default"], fileLinkProps);
237
236
  }
238
237
  case _constants2.ELEMENT_TYPE.WHITEBOARD:
239
238
  {
@@ -243,7 +242,7 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
243
242
  insertWhiteboardFile: insertWhiteboardFile,
244
243
  closeDialog: closeDialog
245
244
  };
246
- return /*#__PURE__*/_react["default"].createElement(_index6["default"], whiteboardProps);
245
+ return /*#__PURE__*/_react["default"].createElement(_index5["default"], whiteboardProps);
247
246
  }
248
247
  case _constants2.ELEMENT_TYPE.VIDEO:
249
248
  {
@@ -253,23 +252,11 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
253
252
  insertVideoCallback: insertVideoCallback,
254
253
  closeDialog: closeDialog
255
254
  };
256
- return /*#__PURE__*/_react["default"].createElement(_index6["default"], videoProps);
255
+ return /*#__PURE__*/_react["default"].createElement(_index5["default"], videoProps);
257
256
  }
258
257
  case _constants2.ELEMENT_TYPE.VIDEO_LINK:
259
258
  {
260
- return /*#__PURE__*/_react["default"].createElement(_index4["default"], props);
261
- }
262
- case _constants2.ELEMENT_TYPE.FILE_VIEW:
263
- {
264
- var _props = {
265
- editor: validEditor,
266
- element: element,
267
- slateNode: slateNode,
268
- insertPosition: insertPosition,
269
- dialogType: dialogType,
270
- closeDialog: closeDialog
271
- };
272
- return /*#__PURE__*/_react["default"].createElement(_index2["default"], _props);
259
+ return /*#__PURE__*/_react["default"].createElement(_index3["default"], props);
273
260
  }
274
261
  case _constants2.ELEMENT_TYPE.FORMULA:
275
262
  {
@@ -313,13 +300,13 @@ var InsertElementDialog = function InsertElementDialog(_ref) {
313
300
  case _constants2.ELEMENT_TYPE.FILE_LINK_INSET_INPUT_TEMP:
314
301
  {
315
302
  if (editor.editorType === _constants.WIKI_EDITOR) {
316
- return /*#__PURE__*/_react["default"].createElement(_index7["default"], {
303
+ return /*#__PURE__*/_react["default"].createElement(_index6["default"], {
317
304
  element: slateNode,
318
305
  editor: editor,
319
306
  closeDialog: closeDialog
320
307
  });
321
308
  }
322
- return /*#__PURE__*/_react["default"].createElement(_index5["default"], {
309
+ return /*#__PURE__*/_react["default"].createElement(_index4["default"], {
323
310
  element: slateNode,
324
311
  editor: editor,
325
312
  closeDialog: closeDialog
@@ -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.updateFileView = exports.insertFileView = exports.getWikiSettings = exports.getFileUrl = exports.getAccessibleRepos = exports.genFileViewNode = exports.calculateSize = void 0;
7
+ exports.updateFileView = exports.insertFileView = exports.getFileUrl = exports.genFileViewNode = exports.calculateSize = void 0;
8
8
  var _slate = require("@seafile/slate");
9
9
  var _slateReact = require("@seafile/slate-react");
10
10
  var _slugid = _interopRequireDefault(require("slugid"));
@@ -18,18 +18,6 @@ var getFileUrl = exports.getFileUrl = function getFileUrl(element) {
18
18
  view_id = data.view_id;
19
19
  return "".concat(serviceUrl, "/wiki/").concat(wiki_id, "/repo-views/").concat(view_id, "/");
20
20
  };
21
- var getWikiSettings = exports.getWikiSettings = function getWikiSettings() {
22
- var wikiId = _context["default"].getSetting('wikiId');
23
- var WIKI_SETTING_INTO_KEY = "seafile_wiki_".concat(wikiId, "_settings_info");
24
- var settings = window.localStorage.getItem(WIKI_SETTING_INTO_KEY);
25
- return JSON.parse(settings);
26
- };
27
- var getAccessibleRepos = exports.getAccessibleRepos = function getAccessibleRepos() {
28
- var wikiId = _context["default"].getSetting('wikiId');
29
- var WIKI_REPO_INFO_KEY = "seafile_wiki_".concat(wikiId, "_repos_info");
30
- var repos = window.localStorage.getItem(WIKI_REPO_INFO_KEY);
31
- return JSON.parse(repos);
32
- };
33
21
  var genFileViewNode = exports.genFileViewNode = function genFileViewNode(data) {
34
22
  return {
35
23
  id: _slugid["default"].nice(),
@@ -43,7 +31,7 @@ var genFileViewNode = exports.genFileViewNode = function genFileViewNode(data) {
43
31
  };
44
32
  var insertFileView = exports.insertFileView = function insertFileView(data, editor, position, slateNode) {
45
33
  if (!data) return;
46
- if (!data.view_name || !data.view_type || !data.link_repo_id) return;
34
+ if (!data.wiki_id || !data.file_repo_id) return;
47
35
  var fileViewNode = genFileViewNode(data);
48
36
  if (position === _constants.INSERT_POSITION.AFTER) {
49
37
  var path = _slate.Editor.path(editor, editor.selection);
@@ -19,7 +19,6 @@ var _commonUtils = require("../../../../utils/common-utils");
19
19
  var _localStorageUtils = _interopRequireDefault(require("../../../../utils/local-storage-utils"));
20
20
  var _constants = require("../../../constants");
21
21
  var _helpers = require("../helpers");
22
- var _rename = _interopRequireDefault(require("../rename"));
23
22
  require("./index.css");
24
23
  var FileView = function FileView(_ref) {
25
24
  var element = _ref.element,
@@ -46,16 +45,16 @@ var FileView = function FileView(_ref) {
46
45
  var viewSettings = (0, _react.useMemo)(function () {
47
46
  var settings = _context["default"].getFileViewSetting();
48
47
  var viewSettings = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, settings), {}, {
49
- repoID: data.link_repo_id,
50
48
  view_data: {
51
- view_id: data.view_id,
52
49
  wiki_id: data.wiki_id,
50
+ file_repo_id: data.file_repo_id,
51
+ width: data.width,
53
52
  height: data.height,
54
- width: data.width
53
+ icon: data.icon
55
54
  }
56
55
  });
57
56
  return viewSettings;
58
- }, [data.height, data.link_repo_id, data.view_id, data.width, data.wiki_id]);
57
+ }, [data.file_repo_id, data.height, data.icon, data.width, data.wiki_id]);
59
58
  (0, _react.useEffect)(function () {
60
59
  var copyContent = _localStorageUtils["default"].getItem(_constants.RECENT_COPY_CONTENT);
61
60
  var wikiId = _context["default"].getSetting('wikiId');
@@ -172,18 +171,12 @@ var FileView = function FileView(_ref) {
172
171
  contentEditable: "false",
173
172
  suppressContentEditableWarning: true
174
173
  }), /*#__PURE__*/_react["default"].createElement("div", {
175
- className: "sdoc-file-view-title"
176
- }, /*#__PURE__*/_react["default"].createElement(_rename["default"], {
177
- name: data.view_name,
178
- onRenameConfirm: onRename,
179
- onRenameCancel: onNameCancel
180
- })), /*#__PURE__*/_react["default"].createElement("div", {
181
174
  className: (0, _classnames["default"])('sdoc-file-view-content', {
182
175
  'is-selected': isSelected
183
176
  }),
184
177
  ref: wrapperRef,
185
178
  style: style
186
- }, /*#__PURE__*/_react["default"].createElement(_seafileDatabase.Database, {
179
+ }, /*#__PURE__*/_react["default"].createElement(_seafileDatabase.FileBase, {
187
180
  settings: viewSettings,
188
181
  ref: databaseRef
189
182
  }), !readOnly && isSelected && /*#__PURE__*/_react["default"].createElement("span", {
@@ -43,7 +43,7 @@ var withLink = function withLink(editor) {
43
43
  };
44
44
  newEditor.insertData = /*#__PURE__*/function () {
45
45
  var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee(data) {
46
- var text, res, fileName, fileUuid, _fileName, fileParentPath, filePath, _fileName2, _fileUuid, url, pathname, _context$getSetting, parts, wikiPageId, title, wikiPageList, page, linkedNodeId, _title, params, link, _link, _link2, _Editor$next, _Editor$next2, focusPath, focusPoint, _t;
46
+ var text, res, fileName, fileUuid, _fileName, fileParentPath, filePath, repoId, _fileName2, _fileUuid, url, pathname, _context$getSetting, parts, wikiPageId, title, wikiPageList, page, linkedNodeId, _title, params, link, _link, _link2, _Editor$next, _Editor$next2, focusPath, focusPoint, _t;
47
47
  return (0, _regenerator2["default"])().w(function (_context) {
48
48
  while (1) switch (_context.p = _context.n) {
49
49
  case 0:
@@ -79,7 +79,8 @@ var withLink = function withLink(editor) {
79
79
  _fileName = res.data.files_info[text].name;
80
80
  fileParentPath = res.data.files_info[text].parent_path;
81
81
  filePath = fileParentPath + '/' + _fileName;
82
- (0, _helper.insertWhiteboard)(editor, _fileName, filePath);
82
+ repoId = res.data.files_info[text].repo_id;
83
+ (0, _helper.insertWhiteboard)(editor, _fileName, filePath, repoId);
83
84
  _context.n = 9;
84
85
  break;
85
86
  case 4:
@@ -66,7 +66,7 @@ var generateWhiteboardNode = exports.generateWhiteboardNode = function generateW
66
66
  return whiteboardNode;
67
67
  };
68
68
  var insertWhiteboard = exports.insertWhiteboard = /*#__PURE__*/function () {
69
- var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee(editor, filename, filePath) {
69
+ var _ref = (0, _asyncToGenerator2["default"])(/*#__PURE__*/(0, _regenerator2["default"])().m(function _callee(editor, filename, filePath, repoId) {
70
70
  var _editor$selection;
71
71
  var repoID, eventBus, exdrawReadOnlyLink, whiteboardNode, path, position, nextPath, endOfFirstNode, range;
72
72
  return (0, _regenerator2["default"])().w(function (_context) {
@@ -84,7 +84,10 @@ var insertWhiteboard = exports.insertWhiteboard = /*#__PURE__*/function () {
84
84
  }
85
85
  return _context.a(2);
86
86
  case 2:
87
- repoID = _context2["default"].getSetting('repoID');
87
+ repoID = repoId;
88
+ if (!repoId) {
89
+ repoID = _context2["default"].getSetting('repoID');
90
+ }
88
91
  eventBus = _eventBus["default"].getInstance();
89
92
  _context.n = 3;
90
93
  return new Promise(function (resolve) {
@@ -126,7 +129,7 @@ var insertWhiteboard = exports.insertWhiteboard = /*#__PURE__*/function () {
126
129
  }
127
130
  }, _callee);
128
131
  }));
129
- return function insertWhiteboard(_x, _x2, _x3) {
132
+ return function insertWhiteboard(_x, _x2, _x3, _x4) {
130
133
  return _ref.apply(this, arguments);
131
134
  };
132
135
  }();
@@ -244,15 +244,16 @@ var QuickInsertBlockMenu = function QuickInsertBlockMenu(_ref) {
244
244
  var wikiId = _context["default"].getSetting('wikiId');
245
245
  var data = {
246
246
  wiki_id: wikiId,
247
+ name: t('Files'),
247
248
  view_name: t('View_name'),
248
- view_type: 'table',
249
- link_repo_id: item.repo_id
249
+ linked_repo_id: item.repo_id
250
250
  };
251
- _context["default"].insertWikiView(data).then(function (res) {
252
- var view = res.data.view;
253
- var viewData = (0, _objectSpread6["default"])((0, _objectSpread6["default"])({}, data), {}, {
254
- view_id: view._id
255
- });
251
+ _context["default"].insertFileRepo(data).then(function (res) {
252
+ var fileRepo = res.data;
253
+ var viewData = {
254
+ wiki_id: wikiId,
255
+ file_repo_id: fileRepo.id
256
+ };
256
257
  (0, _helpers3.insertFileView)(viewData, editor, insertPosition, slateNode);
257
258
  })["catch"](function (error) {
258
259
  var errorMessage = (0, _commonUtils.getErrorMsg)(error);
@@ -2,21 +2,23 @@
2
2
  /* position: absolute; */
3
3
  background-color: #ffff;
4
4
  max-height: 370px;
5
- max-width: 200px;
5
+ max-width: 220px;
6
6
  padding: 8px 0px;
7
7
  left: -8px;
8
8
  }
9
9
 
10
- .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-search-wrapper {
10
+ .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-tip {
11
11
  padding: 12px;
12
+ color: #666;
12
13
  }
13
14
 
14
- .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-search-wrapper>input {
15
- font-size: 12px;
16
- max-height: 30px;
17
- }
18
15
 
19
16
  .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-content-wrapper {
20
17
  max-height: 300px;
21
18
  overflow-y: auto;
22
19
  }
20
+
21
+ .sdoc-dropdown-menu .sdoc-linked-repo-list-wrapper .sdoc-linked-repo-list-add-toolbar {
22
+ padding: 12px;
23
+ color: #666;
24
+ }
@@ -1,90 +1,46 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
4
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard")["default"];
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
10
9
  var _react = _interopRequireWildcard(require("react"));
11
10
  var _reactI18next = require("react-i18next");
12
- var _reactstrap = require("reactstrap");
13
- var _helpers = require("../../plugins/file-view/helpers");
11
+ var _constants = require("../../../constants");
12
+ var _context = _interopRequireDefault(require("../../../context"));
13
+ var _eventBus = _interopRequireDefault(require("../../../utils/event-bus"));
14
14
  require("./link-repo-list.css");
15
- var useStopPropagation = function useStopPropagation() {
16
- var stopPropagation = function stopPropagation(e) {
17
- var _e$nativeEvent$stopIm, _e$nativeEvent;
18
- e.stopPropagation();
19
- (_e$nativeEvent$stopIm = (_e$nativeEvent = e.nativeEvent).stopImmediatePropagation) === null || _e$nativeEvent$stopIm === void 0 ? void 0 : _e$nativeEvent$stopIm.call(_e$nativeEvent);
20
- };
21
- return {
22
- onClick: stopPropagation,
23
- onFocus: stopPropagation,
24
- onKeyDown: stopPropagation,
25
- onKeyUp: stopPropagation,
26
- onKeyPress: stopPropagation,
27
- onMouseDown: stopPropagation,
28
- onTouchStart: stopPropagation
29
- };
30
- };
31
- var useRepos = function useRepos() {
32
- var wikiSettings = (0, _helpers.getWikiSettings)();
33
- var accessibleRepos = (0, _helpers.getAccessibleRepos)();
34
- var linkedRepoIds = wikiSettings.linked_repos;
35
- var optionsMap = accessibleRepos.reduce(function (result, item) {
36
- result[item.repo_id] = item;
37
- return result;
38
- }, {});
39
- return linkedRepoIds.map(function (id) {
40
- return optionsMap[id];
41
- });
42
- };
43
15
  var LinkedRepoList = function LinkedRepoList(_ref) {
44
16
  var onRepoClick = _ref.onRepoClick;
45
17
  var _useTranslation = (0, _reactI18next.useTranslation)('sdoc-editor'),
46
18
  t = _useTranslation.t;
47
- var isComposingRef = (0, _react.useRef)(null);
48
19
  var repoRef = (0, _react.useRef)(null);
49
- var repos = useRepos();
50
- var _useState = (0, _react.useState)(repos || []),
51
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
52
- tables = _useState2[0],
53
- setTables = _useState2[1];
54
- var inputEvents = useStopPropagation();
55
- var onChange = (0, _react.useCallback)(function (event) {
56
- if (isComposingRef.current) return;
57
- var value = event.target.value.trim().toUpperCase();
58
- if (value) {
59
- var list = repos.filter(function (item) {
60
- return item.repo_name.toUpperCase().includes(value);
61
- });
62
- setTables(list);
63
- } else {
64
- setTables(repos);
65
- }
66
- }, [repos]);
67
- var onCompositionStart = (0, _react.useCallback)(function () {
68
- isComposingRef.current = true;
20
+ var enableRepos = (0, _react.useMemo)(function () {
21
+ var repos = _context["default"].getWikiRepos();
22
+ var wikiSettings = _context["default"].getWikiSettings();
23
+ var linked_repos = wikiSettings.linked_repos;
24
+ var linkedMap = linked_repos.reduce(function (ret, id) {
25
+ ret[id] = true;
26
+ return ret;
27
+ }, {});
28
+ return repos.filter(function (item) {
29
+ return linkedMap[item.repo_id];
30
+ });
31
+ }, []);
32
+ var onAddLibraryClick = (0, _react.useCallback)(function () {
33
+ var eventBus = _eventBus["default"].getInstance();
34
+ eventBus.dispatch(_constants.INTERNAL_EVENT.ADD_WIKI_LIBRARY_TOGGLE);
69
35
  }, []);
70
- var onCompositionEnd = (0, _react.useCallback)(function (e) {
71
- isComposingRef.current = false;
72
- onChange(e);
73
- }, [onChange]);
74
36
  return /*#__PURE__*/_react["default"].createElement("div", {
75
37
  ref: repoRef,
76
38
  className: "sdoc-dropdown-menu-container sdoc-linked-repo-list-wrapper"
77
39
  }, /*#__PURE__*/_react["default"].createElement("div", {
78
- className: "sdoc-linked-repo-list-search-wrapper"
79
- }, /*#__PURE__*/_react["default"].createElement(_reactstrap.Input, Object.assign({
80
- placeholder: t('Search_1'),
81
- onChange: onChange,
82
- autoFocus: true,
83
- onCompositionStart: onCompositionStart,
84
- onCompositionEnd: onCompositionEnd
85
- }, inputEvents))), /*#__PURE__*/_react["default"].createElement("div", {
40
+ className: "sdoc-linked-repo-list-tip"
41
+ }, t('Show_files_from_a_linked_library')), /*#__PURE__*/_react["default"].createElement("div", {
86
42
  className: "sdoc-linked-repo-list-content-wrapper"
87
- }, tables.map(function (item) {
43
+ }, enableRepos.map(function (item) {
88
44
  return /*#__PURE__*/_react["default"].createElement("div", {
89
45
  key: item.repo_id,
90
46
  className: "sdoc-dropdown-menu-item text-truncate d-block",
@@ -92,6 +48,9 @@ var LinkedRepoList = function LinkedRepoList(_ref) {
92
48
  return onRepoClick(item);
93
49
  }
94
50
  }, item.repo_name);
95
- })));
51
+ })), /*#__PURE__*/_react["default"].createElement("div", {
52
+ className: "sdoc-linked-repo-list-add-toolbar",
53
+ onClick: onAddLibraryClick
54
+ }, t('Add library')));
96
55
  };
97
56
  var _default = exports["default"] = LinkedRepoList;
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
10
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/objectSpread2"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _reactI18next = require("react-i18next");
13
13
  var _reactstrap = require("reactstrap");
@@ -151,15 +151,16 @@ var InsertBlockMenu = function InsertBlockMenu(_ref) {
151
151
  var wikiId = _context["default"].getSetting('wikiId');
152
152
  var data = {
153
153
  wiki_id: wikiId,
154
+ name: t('Files'),
154
155
  view_name: t('View_name'),
155
- view_type: 'table',
156
- link_repo_id: item.repo_id
156
+ linked_repo_id: item.repo_id
157
157
  };
158
- _context["default"].insertWikiView(data).then(function (res) {
159
- var view = res.data.view;
160
- var viewData = (0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, data), {}, {
161
- view_id: view._id
162
- });
158
+ _context["default"].insertFileRepo(data).then(function (res) {
159
+ var fileRepo = res.data;
160
+ var viewData = {
161
+ wiki_id: wikiId,
162
+ file_repo_id: fileRepo.id
163
+ };
163
164
  (0, _helpers3.insertFileView)(viewData, editor, insertPosition, slateNode);
164
165
  })["catch"](function (error) {
165
166
  var errorMessage = (0, _commonUtils.getErrorMsg)(error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seafile/sdoc-editor",
3
- "version": "3.0.82",
3
+ "version": "3.0.84",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -20,7 +20,7 @@
20
20
  "@seafile/comment-editor": "~1.0.16",
21
21
  "@seafile/print-js": "1.6.6",
22
22
  "@seafile/react-image-lightbox": "5.0.4",
23
- "@seafile/seafile-database": "0.0.19",
23
+ "@seafile/seafile-database": "0.0.22",
24
24
  "@seafile/slate": "0.91.8",
25
25
  "@seafile/slate-history": "0.86.2",
26
26
  "@seafile/slate-hyperscript": "0.81.7",
@@ -72,5 +72,5 @@
72
72
  "publishConfig": {
73
73
  "access": "public"
74
74
  },
75
- "gitHead": "48881a70148e952676a5ae0da8d560743dc887da"
75
+ "gitHead": "561b204eb5bef258394f634ebf65d30c5518b036"
76
76
  }
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
- var KeyCodes = {
8
- Tab: 9,
9
- Escape: 27,
10
- Esc: 27,
11
- LeftArrow: 37,
12
- UpArrow: 38,
13
- RightArrow: 39,
14
- DownArrow: 40
15
- };
16
- var _default = exports["default"] = KeyCodes;