Skip to content

Commit b6bb446

Browse files
committed
docx to sdoc
1 parent 75a26dd commit b6bb446

File tree

3 files changed

+25
-8
lines changed

3 files changed

+25
-8
lines changed

frontend/src/utils/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -608,7 +608,7 @@ export const Utils = {
608608
}
609609

610610
if ((permission == 'rw' || permission == 'cloud-edit') && enableSeadoc) {
611-
if (dirent.name.endsWith('.md')) {
611+
if (dirent.name.endsWith('.md') || dirent.name.endsWith('.docx')) {
612612
list.push(CONVERT_TO_SDOC);
613613
}
614614

seahub/api2/endpoints/file.py

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,9 @@
2828
from seahub.views.file import can_preview_file, can_edit_file
2929
from seahub.constants import PERMISSION_READ_WRITE
3030
from seahub.utils.repo import parse_repo_perm, is_repo_admin, is_repo_owner
31-
from seahub.utils.file_types import MARKDOWN, TEXT, SEADOC, MARKDOWN_SUPPORT_CONVERT_TYPES, SDOC_SUPPORT_CONVERT_TYPES
31+
from seahub.utils.file_types import MARKDOWN, TEXT, SEADOC, \
32+
MARKDOWN_SUPPORT_CONVERT_TYPES, SDOC_SUPPORT_CONVERT_TYPES, \
33+
DOCX_SUPPORT_CONVERT_TYPES
3234
from seahub.tags.models import FileUUIDMap
3335
from seahub.seadoc.models import SeadocHistoryName, SeadocDraft, SeadocCommentReply
3436
from seahub.base.models import FileComment
@@ -553,12 +555,13 @@ def post(self, request, repo_id, format=None):
553555
dst_type = request.data.get('dst_type')
554556

555557
extension = Path(path).suffix
556-
if extension not in ['.md', '.sdoc']:
558+
if extension not in ['.md', '.sdoc', '.docx']:
557559
error_msg = 'path invalid.'
558560
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
559561

560562
if (extension == '.md' and dst_type not in MARKDOWN_SUPPORT_CONVERT_TYPES) or \
561-
(extension == '.sdoc' and dst_type not in SDOC_SUPPORT_CONVERT_TYPES):
563+
(extension == '.sdoc' and dst_type not in SDOC_SUPPORT_CONVERT_TYPES) or \
564+
(extension == '.docx' and dst_type not in DOCX_SUPPORT_CONVERT_TYPES):
562565
error_msg = 'dst_type invalid.'
563566
return api_error(status.HTTP_400_BAD_REQUEST, error_msg)
564567

@@ -596,6 +599,9 @@ def post(self, request, repo_id, format=None):
596599
if extension == '.md':
597600
src_type = 'markdown'
598601
new_filename = filename[:-2] + 'sdoc'
602+
if extension == '.docx':
603+
src_type = 'docx'
604+
new_filename = filename[:-4] + 'sdoc'
599605
elif extension == '.sdoc':
600606
src_type = 'sdoc'
601607
if dst_type == 'markdown':
@@ -606,14 +612,24 @@ def post(self, request, repo_id, format=None):
606612
new_filename = check_filename_or_rename(repo_id, parent_dir, new_filename)
607613
new_file_path = posixpath.join(parent_dir, new_filename)
608614

609-
download_token = seafile_api.get_fileserver_access_token(repo_id, file_id, 'download', username)
615+
download_token = seafile_api.get_fileserver_access_token(repo_id,
616+
file_id,
617+
'download',
618+
username)
610619

611620
obj_id = json.dumps({'parent_dir': parent_dir})
612-
upload_token = seafile_api.get_fileserver_access_token(repo_id, obj_id, 'upload-link', username,
621+
upload_token = seafile_api.get_fileserver_access_token(repo_id,
622+
obj_id,
623+
'upload-link',
624+
username,
613625
use_onetime=True)
614-
doc_uuid = get_seadoc_file_uuid(repo, path)
626+
if extension == '.sdoc':
627+
doc_uuid = get_seadoc_file_uuid(repo, path)
628+
else:
629+
doc_uuid = get_seadoc_file_uuid(repo, new_file_path)
615630

616631
if dst_type != 'docx':
632+
# md, docx file convert to sdoc
617633
try:
618634
resp = convert_file(path, username, doc_uuid,
619635
download_token, upload_token,
@@ -629,7 +645,7 @@ def post(self, request, repo_id, format=None):
629645
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR,
630646
'Internal Server Error')
631647
else:
632-
648+
# sdoc file convert to docx
633649
try:
634650
resp = sdoc_convert_to_docx(path, username, doc_uuid,
635651
download_token, upload_token,

seahub/utils/file_types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@
1313

1414

1515
MARKDOWN_SUPPORT_CONVERT_TYPES = ['sdoc']
16+
DOCX_SUPPORT_CONVERT_TYPES = ['sdoc']
1617
SDOC_SUPPORT_CONVERT_TYPES = ['markdown', 'docx']

0 commit comments

Comments
 (0)