Browse Source

tempotrarily comment out

yusuketk 7 năm trước cách đây
mục cha
commit
464c138f5e
2 tập tin đã thay đổi với 63 bổ sung49 xóa
  1. 58 49
      src/server/models/page.js
  2. 5 0
      src/server/models/tag.js

+ 58 - 49
src/server/models/page.js

@@ -300,55 +300,64 @@ module.exports = function(crowi) {
     const newTagNameList = [newTagsName]; // [TODO] listing requested Tags on client side
     const newTagNameList = [newTagsName]; // [TODO] listing requested Tags on client side
 
 
     // get tags relate this page
     // get tags relate this page
-    const relations = await PageTagRelation.find({relatedPage: page._id});
-    const relatedTagNameList = await Promise.all(relations.map(async function(relation) {
-      const relatedTag =  await Tag.findOne({_id: relation.relatedTag});
-      return relatedTag.name;
-    }));
-
-    // creat unlinked tag list
-    const unlinkedTagNameList = [];
-    relatedTagNameList.map(function(relatedTagName) {
-      if (!newTagNameList.includes(relatedTagName)) {
-        unlinkedTagNameList.push(relatedTagName);
-      }
-    });
-
-    // unlinked page-tag-relations
-    unlinkedTagNameList.map(function(tagName) {
-      Tag.findOne({name: tagName}, function(err, tag) {
-        PageTagRelation.remove({relatedPage: page._id, relatedTag: tag._id}, function(err, relation) {
-          if (err) {
-            throw new Error(err);
-          }
-          debug('remove tag relation: ', tag.name);
-        });
-      });
-    });
-
-    // creat set tag list
-    const setTagNameList = [];
-    newTagNameList.map(function(newTagName) {
-      if (!relatedTagNameList.includes(newTagName)) {
-        setTagNameList.push(newTagName);
-      }
-    });
-
-    // set tags
-    setTagNameList.map((tagName) => {
-      Tag.findOne({name: tagName}, async function(err, tag) {
-        if (tag == null) {
-          tag = await Tag.create({name: tagName});
-        }
-        // make a relation
-        PageTagRelation.create({relatedPage: page._id, relatedTag: tag._id}, function(err, relation) {
-          if (err) {
-            throw new Error(err);
-          }
-          debug('tag linked this page: ', tag.name);
-        });
-      });
-    });
+    const relations = await PageTagRelation.find({relatedPage: page._id}).populate('relatedTag').select('-_id relatedTag');
+    console.log(relations);
+    // // relations.populate(...)
+    // // const relatedTagNameList = await Promise.all(relations.map(async function(relation) {
+    // //   const relatedTag =  await Tag.findOne({_id: relation.relatedTag});
+    // //   return relatedTag.name;
+    // // }));
+
+    // const relatedTags = ...;
+
+    // // creat unlinked tag list
+    // // TODO use filter and includes
+    // const unlinkedTagNameList = [];
+    // relatedTagNameList.map(function(relatedTagName) {
+    //   if (!newTagNameList.includes(relatedTagName)) {
+    //     return relatedTagName;
+    //   }
+    // });
+
+    // relatedTagTags.forEach(tag => {
+    //   // await つかえないかも
+    //   await tag.remove();
+    // })
+    // // unlinked page-tag-relations
+    // // unlinkedTagNameList.map(function(tagName) {
+    // //   Tag.findOne({name: tagName}, function(err, tag) {
+    // //     PageTagRelation.remove({relatedPage: page._id, relatedTag: tag._id}, function(err, relation) {
+    // //       if (err) {
+    // //         throw new Error(err);
+    // //       }
+    // //       debug('remove tag relation: ', tag.name);
+    // //     });
+    // //   });
+    // // });
+
+    // // creat set tag list
+    // const setTagNameList = [];
+    // newTagNameList.map(function(newTagName) {
+    //   if (!relatedTagNameList.includes(newTagName)) {
+    //     setTagNameList.push(newTagName);
+    //   }
+    // });
+// const setTagNameList = ['a', 'b', 'c'];
+//     // set tags
+//     setTagNameList.map((tagName) => {
+//       Tag.findOne({name: tagName}, async function(err, tag) {
+//         if (tag == null) {
+//           tag = await Tag.create({name: tagName});
+//         }
+//         // make a relation
+//         PageTagRelation.create({relatedPage: page._id, relatedTag: tag._id}, function(err, relation) {
+//           if (err) {
+//             throw new Error(err);
+//           }
+//           debug('tag linked this page: ', tag.name);
+//         });
+//       });
+//     });
   };
   };
 
 
 
 

+ 5 - 0
src/server/models/tag.js

@@ -18,6 +18,11 @@ schema.plugin(mongoosePaginate);
  * @class Tag
  * @class Tag
  */
  */
 class Tag {
 class Tag {
+
+  async findOrCreate(tagName) {
+
+  }
+
 }
 }
 
 
 module.exports = function() {
 module.exports = function() {