Explorar o código

imprv save behavior

Shun Miyazawa %!s(int64=2) %!d(string=hai) anos
pai
achega
567adddda2

+ 2 - 2
apps/app/src/components/SavePageControls.tsx

@@ -49,12 +49,12 @@ const SavePageButton = (props: {slackChannels: string, isDeviceLargerThanMd?: bo
 
 
   const save = useCallback(async(): Promise<void> => {
   const save = useCallback(async(): Promise<void> => {
     // save
     // save
-    globalEmitter.emit('saveAndReturnToView', { slackChannels });
+    globalEmitter.emit('saveAndReturnToView', { wip: false, slackChannels });
   }, [slackChannels]);
   }, [slackChannels]);
 
 
   const saveAndOverwriteScopesOfDescendants = useCallback(() => {
   const saveAndOverwriteScopesOfDescendants = useCallback(() => {
     // save
     // save
-    globalEmitter.emit('saveAndReturnToView', { overwriteScopesOfDescendants: true, slackChannels });
+    globalEmitter.emit('saveAndReturnToView', { wip: false, overwriteScopesOfDescendants: true, slackChannels });
   }, [slackChannels]);
   }, [slackChannels]);
 
 
   const saveAndMakeWip = useCallback(() => {
   const saveAndMakeWip = useCallback(() => {

+ 0 - 5
apps/app/src/server/models/page.ts

@@ -1126,11 +1126,6 @@ schema.methods.makeWip = function(disableTtl: boolean) {
   }
   }
 };
 };
 
 
-schema.methods.toggleWip = function(wip: boolean) {
-  this.wip = wip;
-  this.ttlTimestamp = undefined;
-};
-
 /*
 /*
  * Merge obsolete page model methods and define new methods which depend on crowi instance
  * Merge obsolete page model methods and define new methods which depend on crowi instance
  */
  */

+ 9 - 1
apps/app/src/server/service/page/index.ts

@@ -4147,7 +4147,15 @@ class PageService implements IPageService {
     const newPageData = pageData;
     const newPageData = pageData;
 
 
     // Once updated it's exempt from automatic deletion
     // Once updated it's exempt from automatic deletion
-    newPageData.toggleWip(options.wip);
+    if (options.wip == null) {
+      newPageData.ttlTimestamp = undefined;
+    }
+    else if (options.wip) {
+      newPageData.unpublish();
+    }
+    else {
+      newPageData.publish();
+    }
 
 
     // use the previous data if absent
     // use the previous data if absent
     const grant = options.grant ?? clonedPageData.grant;
     const grant = options.grant ?? clonedPageData.grant;