@seafile/sdoc-editor 1.0.161 → 1.0.162-alpha.2
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/seafile-api.js +6 -2
- package/dist/basic-sdk/extension/commons/select-file-dialog/index.css +1 -1
- package/dist/basic-sdk/extension/commons/select-file-dialog/index.js +47 -3
- package/dist/basic-sdk/extension/commons/select-file-dialog/local-files/index.js +2 -0
- package/dist/basic-sdk/extension/constants/index.js +9 -1
- package/dist/basic-sdk/extension/plugins/file-link/render-elem.js +2 -3
- package/dist/basic-sdk/extension/plugins/sdoc-link/render/render-elem.js +2 -3
- package/dist/context.js +35 -1
- package/package.json +1 -1
package/dist/api/seafile-api.js
CHANGED
|
@@ -117,9 +117,13 @@ class SeafileAPI {
|
|
|
117
117
|
}
|
|
118
118
|
|
|
119
119
|
// local files
|
|
120
|
-
getSdocFiles(docUuid, p, type) {
|
|
120
|
+
getSdocFiles(docUuid, p, type, server) {
|
|
121
121
|
const url = 'api/v2.1/seadoc/dir/' + docUuid + '/?p=' + p + '&type=' + type + '&doc_uuid=' + docUuid;
|
|
122
|
-
|
|
122
|
+
const url2 = 'api/v2.1/seadoc/dir/' + docUuid + '/?p=' + p + '&doc_uuid=' + docUuid;
|
|
123
|
+
// const repoID = this.getSetting('repoID');
|
|
124
|
+
// console.log(99, url, repoID);
|
|
125
|
+
const url3 = 'api/v2.1/repos/';
|
|
126
|
+
return this.req.get(url3);
|
|
123
127
|
}
|
|
124
128
|
getSdocFileId(docUuid, p) {
|
|
125
129
|
const url = 'api/v2.1/seadoc/file-uuid/' + docUuid + '/?p=' + p;
|
|
@@ -15,18 +15,33 @@ var _toast = _interopRequireDefault(require("../../../../components/toast"));
|
|
|
15
15
|
var _utils = require("../../../../utils/");
|
|
16
16
|
var _constants = require("../../constants");
|
|
17
17
|
require("./index.css");
|
|
18
|
-
const
|
|
18
|
+
const LibraryOption = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
mode,
|
|
21
|
+
label,
|
|
22
|
+
currentMode,
|
|
23
|
+
onUpdateMode
|
|
24
|
+
} = _ref;
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
26
|
+
className: `repo-list-item ${mode === currentMode ? 'active' : ''}`,
|
|
27
|
+
onClick: () => onUpdateMode(mode)
|
|
28
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
29
|
+
className: "library"
|
|
30
|
+
}, label));
|
|
31
|
+
};
|
|
32
|
+
const SelectSdocFileDialog = _ref2 => {
|
|
19
33
|
let {
|
|
20
34
|
editor,
|
|
21
35
|
dialogType,
|
|
22
36
|
closeDialog,
|
|
23
37
|
insertLinkCallback
|
|
24
|
-
} =
|
|
38
|
+
} = _ref2;
|
|
25
39
|
const modalTitle = dialogType === _constants.ELEMENT_TYPE.FILE_LINK ? 'Select_file' : 'Select_sdoc_document';
|
|
26
40
|
const {
|
|
27
41
|
t
|
|
28
42
|
} = (0, _reactI18next.useTranslation)();
|
|
29
43
|
const [currentSelectedFile, setCurrentSelectedFile] = (0, _react.useState)(null);
|
|
44
|
+
const [mode, setMode] = (0, _react.useState)('only_current_library');
|
|
30
45
|
const onSelectedFile = (0, _react.useCallback)(fileInfo => {
|
|
31
46
|
setCurrentSelectedFile(fileInfo);
|
|
32
47
|
}, []);
|
|
@@ -70,7 +85,20 @@ const SelectSdocFileDialog = _ref => {
|
|
|
70
85
|
closeDialog();
|
|
71
86
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
87
|
}, [currentSelectedFile]);
|
|
88
|
+
const selectMode = mode => {
|
|
89
|
+
// onUpdateMode(mode);
|
|
90
|
+
if (mode === _constants.MODE_TYPE_MAP.ONLY_CURRENT_LIBRARY) {
|
|
91
|
+
selectRepo(currentRepo);
|
|
92
|
+
}
|
|
93
|
+
// } else if (mode === MODE_TYPE_MAP.ONLY_OTHER_LIBRARIES) {
|
|
94
|
+
// selectRepo(repoList[0]);
|
|
95
|
+
// } else if (mode === MODE_TYPE_MAP.RECENTLY_USED) {
|
|
96
|
+
// selectRepo(null);
|
|
97
|
+
// }
|
|
98
|
+
// setSelectedPath('/');
|
|
99
|
+
};
|
|
73
100
|
return /*#__PURE__*/_react.default.createElement(_reactstrap.Modal, {
|
|
101
|
+
scrollable: true,
|
|
74
102
|
toggle: closeDialog,
|
|
75
103
|
isOpen: true,
|
|
76
104
|
autoFocus: false,
|
|
@@ -82,7 +110,23 @@ const SelectSdocFileDialog = _ref => {
|
|
|
82
110
|
toggle: closeDialog
|
|
83
111
|
}, t(modalTitle)), /*#__PURE__*/_react.default.createElement(_reactstrap.ModalBody, {
|
|
84
112
|
className: "p-0"
|
|
85
|
-
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
113
|
+
}, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", null, "left column"), /*#__PURE__*/_react.default.createElement(LibraryOption, {
|
|
114
|
+
mode: _constants.MODE_TYPE_MAP.ONLY_CURRENT_LIBRARY,
|
|
115
|
+
label: t('Current Library'),
|
|
116
|
+
currentMode: mode,
|
|
117
|
+
onUpdateMode: selectMode
|
|
118
|
+
}), true && /*#__PURE__*/_react.default.createElement(LibraryOption, {
|
|
119
|
+
mode: _constants.MODE_TYPE_MAP.ONLY_OTHER_LIBRARIES,
|
|
120
|
+
label: t('Other Libraries'),
|
|
121
|
+
currentMode: mode,
|
|
122
|
+
onUpdateMode: selectMode
|
|
123
|
+
}), /*#__PURE__*/_react.default.createElement(LibraryOption, {
|
|
124
|
+
mode: _constants.MODE_TYPE_MAP.RECENTLY_USED,
|
|
125
|
+
label: t('Recently Used')
|
|
126
|
+
// currentMode={mode}
|
|
127
|
+
,
|
|
128
|
+
onUpdateMode: selectMode
|
|
129
|
+
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
86
130
|
className: "sdoc-file-select-container"
|
|
87
131
|
}, /*#__PURE__*/_react.default.createElement(_localFiles.default, {
|
|
88
132
|
fileType: _constants.FILE_TYPE[dialogType],
|
|
@@ -46,6 +46,7 @@ const LocalFiles = _ref => {
|
|
|
46
46
|
item.indexId = _slugid.default.nice();
|
|
47
47
|
});
|
|
48
48
|
// Open folder
|
|
49
|
+
console.log(3, res.data);
|
|
49
50
|
if (indexId && treeData.length > 0) {
|
|
50
51
|
const newFileListData = (0, _helpers.addDataToTree)(treeData, indexId, res.data, p);
|
|
51
52
|
setTreeData([...newFileListData]);
|
|
@@ -89,6 +90,7 @@ const LocalFiles = _ref => {
|
|
|
89
90
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
90
91
|
}, []);
|
|
91
92
|
const renderFileTree = (0, _react.useCallback)(data => {
|
|
93
|
+
// console.log(2, data);
|
|
92
94
|
if (!Array.isArray(data) || data.length === 0) return null;
|
|
93
95
|
return data.map(item => {
|
|
94
96
|
var _item$children, _item$children2;
|
|
@@ -263,7 +263,7 @@ Object.defineProperty(exports, "MENUS_CONFIG_MAP", {
|
|
|
263
263
|
return _menusConfig.MENUS_CONFIG_MAP;
|
|
264
264
|
}
|
|
265
265
|
});
|
|
266
|
-
exports.MOUSE_ENTER_EVENT_DISABLED_MAP = void 0;
|
|
266
|
+
exports.MOUSE_ENTER_EVENT_DISABLED_MAP = exports.MODE_TYPE_MAP = void 0;
|
|
267
267
|
Object.defineProperty(exports, "MULTI_COLUMN", {
|
|
268
268
|
enumerable: true,
|
|
269
269
|
get: function () {
|
|
@@ -520,6 +520,14 @@ const INSERT_POSITION = exports.INSERT_POSITION = {
|
|
|
520
520
|
};
|
|
521
521
|
const LOCAL_IMAGE = exports.LOCAL_IMAGE = 'local-image';
|
|
522
522
|
const LOCAL_VIDEO = exports.LOCAL_VIDEO = 'local-video';
|
|
523
|
+
const MODE_TYPE_MAP = exports.MODE_TYPE_MAP = {
|
|
524
|
+
CURRENT_AND_OTHER_REPOS: 'current_repo_and_other_repos',
|
|
525
|
+
ONLY_CURRENT_LIBRARY: 'only_current_library',
|
|
526
|
+
ONLY_ALL_REPOS: 'only_all_repos',
|
|
527
|
+
ONLY_OTHER_LIBRARIES: 'only_other_libraries',
|
|
528
|
+
RECENTLY_USED: 'recently_used',
|
|
529
|
+
SEARCH_RESULTS: 'search_results'
|
|
530
|
+
};
|
|
523
531
|
const LIST_TYPE_ARRAY = exports.LIST_TYPE_ARRAY = [_elementType.UNORDERED_LIST, _elementType.ORDERED_LIST];
|
|
524
532
|
const LIST_ITEM_CORRELATION_TYPE = exports.LIST_ITEM_CORRELATION_TYPE = [_elementType.UNORDERED_LIST, _elementType.ORDERED_LIST, _elementType.LIST_ITEM];
|
|
525
533
|
const LIST_ITEM_SUPPORTED_TRANSFORMATION = exports.LIST_ITEM_SUPPORTED_TRANSFORMATION = [_elementType.UNORDERED_LIST, _elementType.ORDERED_LIST, 'left', 'center', 'right', _elementType.BLOCKQUOTE];
|
|
@@ -134,9 +134,8 @@ const FileLink = _ref => {
|
|
|
134
134
|
style: style
|
|
135
135
|
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
136
136
|
href: (0, _helpers.getUrl)(element.doc_uuid),
|
|
137
|
-
onClick: e =>
|
|
138
|
-
|
|
139
|
-
},
|
|
137
|
+
onClick: e => e.preventDefault(),
|
|
138
|
+
onDragStart: e => e.preventDefault(),
|
|
140
139
|
title: element.title
|
|
141
140
|
}, children))), isShowInsertHoverMenu && /*#__PURE__*/_react.default.createElement(_hoverMenu.default, {
|
|
142
141
|
editor: editor,
|
|
@@ -141,9 +141,8 @@ const SdocFileLink = _ref => {
|
|
|
141
141
|
style: style
|
|
142
142
|
}, /*#__PURE__*/_react.default.createElement("a", {
|
|
143
143
|
href: url,
|
|
144
|
-
onClick: e =>
|
|
145
|
-
|
|
146
|
-
},
|
|
144
|
+
onClick: e => e.preventDefault(),
|
|
145
|
+
onDragStart: e => e.preventDefault(),
|
|
147
146
|
title: element.title
|
|
148
147
|
}, children))), isShowInsertHoverMenu && !readOnly && editor.selection && _slate.Range.isCollapsed(editor.selection) && /*#__PURE__*/_react.default.createElement(_hoverMenu.default, {
|
|
149
148
|
url: url,
|
package/dist/context.js
CHANGED
|
@@ -14,6 +14,7 @@ class Context {
|
|
|
14
14
|
constructor() {
|
|
15
15
|
(0, _defineProperty2.default)(this, "initSettings", () => {
|
|
16
16
|
this.settings = window.seafile ? window.seafile : window.seafileConfig;
|
|
17
|
+
console.log(1, this.settings);
|
|
17
18
|
const {
|
|
18
19
|
name,
|
|
19
20
|
username,
|
|
@@ -26,6 +27,7 @@ class Context {
|
|
|
26
27
|
};
|
|
27
28
|
this.user = new _model.User(userInfo);
|
|
28
29
|
if (this.settings['isSdocRevision']) {
|
|
30
|
+
console.log(2);
|
|
29
31
|
const repoID = this.getSetting('repoID');
|
|
30
32
|
const siteRoot = this.getSetting('siteRoot');
|
|
31
33
|
const originFilePath = this.getSetting('originFilePath');
|
|
@@ -60,6 +62,7 @@ class Context {
|
|
|
60
62
|
this.initSettings(); // lazy init context class
|
|
61
63
|
const server = this.getSetting('serviceUrl');
|
|
62
64
|
const token = this.getSetting('accessToken');
|
|
65
|
+
// console.log(2, server, token)
|
|
63
66
|
this.api = new _seafileApi.default(server, token);
|
|
64
67
|
const isOpenSocket = this.getSetting('isOpenSocket');
|
|
65
68
|
if (isOpenSocket) {
|
|
@@ -197,7 +200,38 @@ class Context {
|
|
|
197
200
|
// local files
|
|
198
201
|
getSdocLocalFiles(p, type) {
|
|
199
202
|
const docUuid = this.getSetting('docUuid');
|
|
200
|
-
|
|
203
|
+
const repoID = this.getSetting('repoID');
|
|
204
|
+
console.log(100, docUuid, repoID);
|
|
205
|
+
console.log(100, p, type, docUuid);
|
|
206
|
+
return this.api.getSdocFiles(docUuid, p, type, this.server);
|
|
207
|
+
}
|
|
208
|
+
listRepos(options) {
|
|
209
|
+
/*
|
|
210
|
+
* options: `{type: 'shared'}`, `{type: ['mine', 'shared', ...]}`
|
|
211
|
+
*/
|
|
212
|
+
let url = this.server + '/api/v2.1/repos/';
|
|
213
|
+
if (!options) {
|
|
214
|
+
// fetch all types of repos
|
|
215
|
+
return this.req.get(url);
|
|
216
|
+
}
|
|
217
|
+
return this.req.get(url, {
|
|
218
|
+
params: options,
|
|
219
|
+
paramsSerializer: {
|
|
220
|
+
serialize: function (params) {
|
|
221
|
+
let list = [];
|
|
222
|
+
for (let key in params) {
|
|
223
|
+
if (Array.isArray(params[key])) {
|
|
224
|
+
for (let i = 0, len = params[key].length; i < len; i++) {
|
|
225
|
+
list.push(key + '=' + encodeURIComponent(params[key][i]));
|
|
226
|
+
}
|
|
227
|
+
} else {
|
|
228
|
+
list.push(key + '=' + encodeURIComponent(params[key]));
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return list.join('&');
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
});
|
|
201
235
|
}
|
|
202
236
|
getSdocLocalFileId(p) {
|
|
203
237
|
const docUuid = this.getSetting('docUuid');
|