Procházet zdrojové kódy

Fix and Feature: Add creator property to Page Object

* Show creator info in sidebar (instead of last update user)
Sotaro KARASAWA před 11 roky
rodič
revize
9d09306341
2 změnil soubory, kde provedl 9 přidání a 2 odebrání
  1. 7 0
      models/page.js
  2. 2 2
      views/page.html

+ 7 - 0
models/page.js

@@ -17,11 +17,16 @@ module.exports = function(app, models) {
 
 
     pageData.latestRevision = pageData.revision;
     pageData.latestRevision = pageData.revision;
     pageData.populate([
     pageData.populate([
+      {path: 'creator', model: 'User'},
       {path: 'revision', model: 'Revision'},
       {path: 'revision', model: 'Revision'},
       {path: 'liker', options: { limit: 11 }},
       {path: 'liker', options: { limit: 11 }},
       {path: 'seenUsers', options: { limit: 11 }},
       {path: 'seenUsers', options: { limit: 11 }},
     ], function (err, pageData) {
     ], function (err, pageData) {
       models.Page.populate(pageData, {path: 'revision.author', model: 'User'}, function(err, pageData) {
       models.Page.populate(pageData, {path: 'revision.author', model: 'User'}, function(err, pageData) {
+        // v1.1.1 以前では creator が存在しなかったため、なかったら revision.author をつっこんでおく
+        if (undefined === pageData.creator) {
+          pageData.creator = pageData.revision.author;
+        }
         return callback(err, pageData);
         return callback(err, pageData);
       });
       });
     });
     });
@@ -33,6 +38,7 @@ module.exports = function(app, models) {
     redirectTo: { type: String, index: true },
     redirectTo: { type: String, index: true },
     grant: { type: Number, default: GRANT_PUBLIC, index: true },
     grant: { type: Number, default: GRANT_PUBLIC, index: true },
     grantedUsers: [{ type: ObjectId, ref: 'User' }],
     grantedUsers: [{ type: ObjectId, ref: 'User' }],
+    creator: { type: ObjectId, ref: 'User', index: true },
     liker: [{ type: ObjectId, ref: 'User', index: true }],
     liker: [{ type: ObjectId, ref: 'User', index: true }],
     seenUsers: [{ type: ObjectId, ref: 'User', index: true }],
     seenUsers: [{ type: ObjectId, ref: 'User', index: true }],
     createdAt: { type: Date, default: Date.now },
     createdAt: { type: Date, default: Date.now },
@@ -365,6 +371,7 @@ module.exports = function(app, models) {
 
 
       var newPage = new Page();
       var newPage = new Page();
       newPage.path = path;
       newPage.path = path;
+      newPage.creaator = user;
       newPage.createdAt = Date.now();
       newPage.createdAt = Date.now();
       newPage.updatedAt = Date.now();
       newPage.updatedAt = Date.now();
       newPage.redirectTo = redirectTo;
       newPage.redirectTo = redirectTo;

+ 2 - 2
views/page.html

@@ -170,11 +170,11 @@
 <div class="page-meta">
 <div class="page-meta">
   <div class="row">
   <div class="row">
     <div class="col-md-3 creator-picture">
     <div class="col-md-3 creator-picture">
-      <img src="{{ author|picture }}" class="picture picture-lg picture-rounded"><br>
+      <img src="{{ page.creator|picture }}" class="picture picture-lg picture-rounded"><br>
     </div>
     </div>
     <div class="col-md-9">
     <div class="col-md-9">
       <p class="creator">
       <p class="creator">
-        {{ author.name }}
+        {{ page.creator.name }}
       </p>
       </p>
       <p class="created-at">
       <p class="created-at">
         作成日: {{ page.createdAt|datetz('Y/m/d H:i:s') }}<br>
         作成日: {{ page.createdAt|datetz('Y/m/d H:i:s') }}<br>