Procházet zdrojové kódy

WIP: impl page:updateHasDraftOnHackmd websocket event

Yuki Takei před 7 roky
rodič
revize
c5e848ae48
3 změnil soubory, kde provedl 19 přidání a 3 odebrání
  1. 4 1
      lib/models/page.js
  2. 4 1
      lib/routes/page.js
  3. 11 1
      resource/js/app.js

+ 4 - 1
lib/models/page.js

@@ -1348,7 +1348,10 @@ module.exports = function(crowi) {
     }
     }
 
 
     pageData.hasDraftOnHackmd = newValue;
     pageData.hasDraftOnHackmd = newValue;
-    return pageData.save();
+    let savedPage = pageData.save();
+
+    pageEvent.emit('updateHasDraftOnHackmd', pageData);
+    return savedPage;
   };
   };
 
 
   pageSchema.statics.getHistories = function() {
   pageSchema.statics.getHistories = function() {

+ 4 - 1
lib/routes/page.js

@@ -24,7 +24,10 @@ module.exports = function(crowi, app) {
 
 
   const pageEvent = crowi.event('page');
   const pageEvent = crowi.event('page');
   pageEvent.on('update', function(page, user) {
   pageEvent.on('update', function(page, user) {
-    crowi.getIo().sockets.emit('page edited', {page, user});
+    crowi.getIo().sockets.emit('page:update', {page, user});
+  });
+  pageEvent.on('updateHasDraftOnHackmd', function(page) {
+    crowi.getIo().sockets.emit('page:updateHasDraftOnHackmd', {page});
   });
   });
 
 
 
 

+ 11 - 1
resource/js/app.js

@@ -428,7 +428,7 @@ if (customHeaderEditorElem != null) {
 
 
 // notification from websocket
 // notification from websocket
 const socket = io();
 const socket = io();
-socket.on('page edited', function(data) {
+socket.on('page:update', function(data) {
   console.log(data);
   console.log(data);
   if (data.page.path == pagePath) {
   if (data.page.path == pagePath) {
     // update PageStatusAlert
     // update PageStatusAlert
@@ -444,6 +444,16 @@ socket.on('page edited', function(data) {
     }
     }
   }
   }
 });
 });
+socket.on('page:updateHasDraftOnHackmd', function(data) {
+  console.log(data);
+  if (data.page.path == pagePath) {
+    // update PageEditorByHackmd
+    const pageEditorByHackmd = componentInstances.pageEditorByHackmd;
+    if (pageEditorByHackmd != null) {
+      pageEditorByHackmd.setHasDraftOnHackmd(data.page.hasDraftOnHackmd);
+    }
+  }
+});
 
 
 // うわーもうー (commented by Crowi team -- 2018.03.23 Yuki Takei)
 // うわーもうー (commented by Crowi team -- 2018.03.23 Yuki Takei)
 $('a[data-toggle="tab"][href="#revision-history"]').on('show.bs.tab', function() {
 $('a[data-toggle="tab"][href="#revision-history"]').on('show.bs.tab', function() {