1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 15:09:14 +00:00

Sdoc draft (#5556)

* [dir view] redesigned the sdoc draft identifier

* [dir view] added option 'Mark as draft' to 'New File' dialog; added big button '+ SeaDoc' for empty library

* [sdoc draft] fixed API typos

* [sdoc file view] displayed draft identifier & added 'unmark as draft' for drafts

* [media/sdoc-editor] updated i18n/l10n strings for sdoc-editor

* [dir view] 'New' dropdown menu: added '(beta)' for 'New SeaDoc File'
This commit is contained in:
llj
2023-07-22 15:54:25 +08:00
committed by GitHub
parent f02f40ee3a
commit 68ed3e5773
20 changed files with 148 additions and 99 deletions

View File

@@ -866,15 +866,26 @@ class LibContentView extends React.Component {
});
}
onAddFile = (filePath, isDraft) => {
onAddFile = (filePath, isMarkdownDraft, isSdocDraft) => {
let repoID = this.props.repoID;
seafileAPI.createFile(repoID, filePath, isDraft).then(res => {
seafileAPI.createFile(repoID, filePath, isMarkdownDraft).then(res => {
let name = Utils.getFileName(filePath);
let parentPath = Utils.getDirName(filePath);
if (this.state.currentMode === 'column') {
this.addNodeToTree(name, parentPath, 'file');
}
if (parentPath === this.state.path && !this.state.isViewFile) {
if (isSdocDraft) { // the new file is marked to be draft
seafileAPI.sdocMarkAsDraft(repoID, filePath).then((res) => {
this.addDirent(name, 'file', res.data.size, isSdocDraft);
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
this.addDirent(name, 'file', res.data.size);
});
return;
}
this.addDirent(name, 'file', res.data.size);
}
}).catch((error) => {
@@ -1377,8 +1388,8 @@ class LibContentView extends React.Component {
}
}
addDirent = (name, type, size) => {
let item = this.createDirent(name, type, size);
addDirent = (name, type, size, isSdocDraft) => {
let item = this.createDirent(name, type, size, isSdocDraft);
let direntList = this.state.direntList;
if (type === 'dir') {
direntList.unshift(item);
@@ -1714,11 +1725,15 @@ class LibContentView extends React.Component {
return new TreeNode({object});
}
createDirent(name, type, size) {
createDirent(name, type, size, isSdocDraft) {
// use current dirent parent's permission as it's permission
const { userPerm: permission } = this.state;
let mtime = new Date().getTime()/1000;
let dirent = new Dirent({name, type, mtime, size, permission});
const mtime = new Date().getTime()/1000;
const obj = { name, type, mtime, size, permission };
if (isSdocDraft) {
obj.is_sdoc_draft = isSdocDraft;
}
const dirent = new Dirent(obj);
return dirent;
}