* [bug #59286] save form data from doc basic info modal.

This commit is contained in:
sunhao
2025-03-05 10:16:54 +08:00
committed by 曹延义
parent 988ccdb0f5
commit d9e6f3d52a
+35 -10
View File
@@ -6,6 +6,7 @@ let currentUser = null;
let currentSpaceType = '';
let userPrivs = {};
let docLangData = null;
let docBasicModal = {};
const savingDocData = {};
window.setZentaoSlashMenu = function(menus, title, vision)
@@ -325,6 +326,11 @@ function handleSwitchView(mode, location, info)
if(url === lastAppUrl) return;
if(lastAppUrl && !$.apps.getAppUrl().endsWith(url)) $.apps.updateAppUrl(url, info.title ? (info.title + documentTitleSuffix) : originalDocumentTitle);
lastAppUrl = url;
if(docBasicModal.current)
{
docBasicModal.current.destroy();
docBasicModal = {};
}
}
function showDocBasicModal(docID, isDraft)
@@ -335,23 +341,42 @@ function showDocBasicModal(docID, isDraft)
const libID = docApp.libID;
const moduleID = docApp.moduleID;
const url = $.createLink('doc', 'setDocBasic', `objectType=${spaceType}&objectID=${spaceID}&libID=${libID}&moduleID=${moduleID}&docID=${docID || 0}&isDraft=${isDraft ? 'yes' : 'no'}`);
const modal = {current: null};
zui.Modal.open(
console.log('showDocBasicModal', {docBasicModal: {...docBasicModal}, docID});
if(docBasicModal.doc === docID && docBasicModal.current)
{
ref: modal,
url: url,
request: {
error: error => {
if(modal.current) modal.current.hide();
showSaveFailedAlert(error);
docBasicModal.current.show();
}
else
{
if(docBasicModal.current) docBasicModal.current.destroy();
docBasicModal.doc = docID;
zui.Modal.open(
{
ref : docBasicModal,
url : url,
destroyOnHide: false,
cache : true,
request: {
error: error => {
if(docBasicModal.current) docBasicModal.current.hide();
showSaveFailedAlert(error);
}
},
onHidden: () => {
if(!docBasicModal.keepOnHide) docBasicModal.current.destroy();
},
$onDestroy: () => {
if(docBasicModal.current) docBasicModal = {};
}
}
});
});
}
return new Promise((resolve) => {window.docBasicModalResolver = resolve;});
}
window.beforeSetDocBasicInfo = function(_, form)
{
docBasicModal.keepOnHide = true;
if (window.docBasicModalResolver) window.docBasicModalResolver(new FormData(form));
zui.Modal.query('#setDocBasicForm').hide();
return false;