Browse Source

get all tag related this page

yusuketk 7 years ago
parent
commit
1baeb98042
2 changed files with 20 additions and 20 deletions
  1. 18 17
      src/server/models/page-tag-relation.js
  2. 2 3
      src/server/routes/page.js

+ 18 - 17
src/server/models/page-tag-relation.js

@@ -87,23 +87,24 @@ class PageTagRelation {
       .exec();
   }
 
-  // /**
-  //  * find all user and group relation of UserGroup
-  //  *
-  //  * @static
-  //  * @param {UserGroup} userGroup
-  //  * @returns {Promise<UserGroupRelation[]>}
-  //  * @memberof UserGroupRelation
-  //  */
-  // static findAllRelationForUserGroup(userGroup) {
-  //   debug('findAllRelationForUserGroup is called', userGroup);
-  //   return this
-  //     .find({
-  //       relatedGroup: userGroup
-  //     })
-  //     .populate('relatedUser')
-  //     .exec();
-  // }
+  /**
+   * find all tag of page
+   *
+   * @static
+   * @param {page} page
+   * @returns {Tag[]}
+   * @memberof PageTagRelation
+   */
+  static findAllTagForPage(page) {
+    return new Promise((resolve, reject) => {
+      this.find({relatedPage: page._id}, function(err, tags) {
+        if (err) {
+          reject(err);
+        }
+        resolve(tags);
+      });
+    });
+  }
 
   // /**
   //  * find all user and group relation of UserGroups

+ 2 - 3
src/server/routes/page.js

@@ -107,10 +107,11 @@ module.exports = function(crowi, app) {
     }
   }
 
-  function updateTags(page, user, pageTags, updateOrCreate, previousRevision) {
+  async function updateTags(page, user, pageTags, updateOrCreate, previousRevision) {
     // if (pageTags == null) {
     //   Tag.removeTagById(tag.id);
     // }
+    const relatedTags = await PageTagRelation.findAllTagForPage(page);
     Tag.find({name: pageTags}, async function(err, tag) {
       let settingTag;
       if (tag.length == 0) {
@@ -122,8 +123,6 @@ module.exports = function(crowi, app) {
       // Relation を作成
       PageTagRelation.createRelation(page, settingTag);
     });
-
-    // PageTagRelation.createRelation(page, pageTag);
   }
 
   function addRendarVarsForPage(renderVars, page) {