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

Merge pull request #746 from weseek/fix/page-history

Fix/page history
Yuki Takei 7 лет назад
Родитель
Сommit
8c0d836425

+ 5 - 3
src/client/js/components/PageHistory.js

@@ -97,7 +97,9 @@ class PageHistory extends React.Component {
       return ;
     }
 
-    this.props.crowi.apiGet('/revisions.get', {revision_id: revision._id})
+    this.props.crowi.apiGet('/revisions.get',
+      { page_id: this.props.pageId, revision_id: revision._id}
+    )
     .then(res => {
       if (res.ok) {
         this.setState({
@@ -110,10 +112,10 @@ class PageHistory extends React.Component {
           })
         });
       }
-    }).catch(err => {
+    })
+    .catch(err => {
 
     });
-
   }
 
   render() {

+ 3 - 3
src/server/models/page.js

@@ -897,7 +897,7 @@ module.exports = function(crowi) {
         savedPage = newPage;
       })
       .then(() => {
-        const newRevision = Revision.prepareRevision(savedPage, body, user, {format: format});
+        const newRevision = Revision.prepareRevision(savedPage, body, null, user, {format: format});
         return pushRevision(savedPage, newRevision, user);
       })
       .then(() => {
@@ -908,7 +908,7 @@ module.exports = function(crowi) {
       });
   };
 
-  pageSchema.statics.updatePage = async function(pageData, body, user, options = {}) {
+  pageSchema.statics.updatePage = async function(pageData, body, previousBody, user, options = {}) {
     validateCrowi();
 
     const Page = this
@@ -922,7 +922,7 @@ module.exports = function(crowi) {
     // update existing page
     applyGrant(pageData, user, grant, grantUserGroupId);
     let savedPage = await pageData.save();
-    const newRevision = await Revision.prepareRevision(pageData, body, user);
+    const newRevision = await Revision.prepareRevision(pageData, body, previousBody, user);
     const revision = await pushRevision(savedPage, newRevision, user, grant, grantUserGroupId);
     savedPage = await Page.findByPath(revision.path).populate('revision').populate('creator');
 

+ 2 - 2
src/server/models/revision.js

@@ -93,7 +93,7 @@ module.exports = function(crowi) {
     });
   };
 
-  revisionSchema.statics.prepareRevision = function(pageData, body, user, options) {
+  revisionSchema.statics.prepareRevision = function(pageData, body, previousBody, user, options) {
     const Revision = this;
 
     if (!options) {
@@ -112,7 +112,7 @@ module.exports = function(crowi) {
     newRevision.author = user._id;
     newRevision.createdAt = Date.now();
     if (pageData.revision != null) {
-      newRevision.hasDiffToPrev = body !== pageData.revision.body;
+      newRevision.hasDiffToPrev = body !== previousBody;
     }
 
     return newRevision;

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

@@ -602,7 +602,9 @@ module.exports = function(crowi, app) {
     }
 
     try {
-      page = await Page.updatePage(page, pageBody, req.user, options);
+      const Revision = crowi.model('Revision');
+      const previousRevision = await Revision.findById(revisionId);
+      page = await Page.updatePage(page, pageBody, previousRevision.body, req.user, options);
     }
     catch (err) {
       logger.error('error on _api/pages.update', err);

+ 1 - 1
src/server/routes/revision.js

@@ -33,7 +33,7 @@ module.exports = function(crowi, app) {
     }
 
     try {
-      const revision = await Revision.findById(revisionId);
+      const revision = await Revision.findById(revisionId).populate('author', 'User');
       return res.json(ApiResponse.success({ revision }));
     }
     catch (err) {