|
@@ -1330,22 +1330,24 @@ module.exports = function(crowi) {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * update hasDraftOnHackmd if revision and 'bodyOnHackmd' has difference
|
|
|
|
|
|
|
+ * update hasDraftOnHackmd
|
|
|
|
|
+ * !! This will be invoked many time from many people !!
|
|
|
|
|
+ *
|
|
|
* @param {Page} pageData
|
|
* @param {Page} pageData
|
|
|
- * @param {string} bodyOnHackmd
|
|
|
|
|
|
|
+ * @param {Boolean} newValue
|
|
|
*/
|
|
*/
|
|
|
|
|
+ pageSchema.statics.updateHasDraftOnHackmd = async function(pageData, newValue) {
|
|
|
const revisionIdStr = pageData.revision.toString();
|
|
const revisionIdStr = pageData.revision.toString();
|
|
|
const revisionHackmdSyncedIdStr = pageData.revisionHackmdSynced.toString();
|
|
const revisionHackmdSyncedIdStr = pageData.revisionHackmdSynced.toString();
|
|
|
if (revisionIdStr !== revisionHackmdSyncedIdStr) {
|
|
if (revisionIdStr !== revisionHackmdSyncedIdStr) {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- else if (pageData.hasDraftOnHackmd) {
|
|
|
|
|
- // do nothing when hasDraftOnHackmd is already 'true'
|
|
|
|
|
|
|
+ else if (pageData.hasDraftOnHackmd === newValue) {
|
|
|
|
|
+ // do nothing when hasDraftOnHackmd equals to newValue
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- pageData = await pageData.populate();
|
|
|
|
|
- pageData.hasDraftOnHackmd = pageData.revision.body !== bodyOnHackmd;
|
|
|
|
|
|
|
+ pageData.hasDraftOnHackmd = newValue;
|
|
|
return pageData.save();
|
|
return pageData.save();
|
|
|
};
|
|
};
|
|
|
|
|
|