Просмотр исходного кода

WIP: impl page:updateHasDraftOnHackmd websocket event

Yuki Takei 7 лет назад
Родитель
Сommit
c5e848ae48
3 измененных файлов с 19 добавлено и 3 удалено
  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;
-    return pageData.save();
+    let savedPage = pageData.save();
+
+    pageEvent.emit('updateHasDraftOnHackmd', pageData);
+    return savedPage;
   };
 
   pageSchema.statics.getHistories = function() {

+ 4 - 1
lib/routes/page.js

@@ -24,7 +24,10 @@ module.exports = function(crowi, app) {
 
   const pageEvent = crowi.event('page');
   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
 const socket = io();
-socket.on('page edited', function(data) {
+socket.on('page:update', function(data) {
   console.log(data);
   if (data.page.path == pagePath) {
     // 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)
 $('a[data-toggle="tab"][href="#revision-history"]').on('show.bs.tab', function() {