periodicjs.core.controller
Advanced tools
Comparing version 1.90.115 to 1.90.119
@@ -344,17 +344,50 @@ /* | ||
var returnObjectDifference = function(original,revision){ | ||
// console.log('revision',revision); | ||
// console.log('original',original); | ||
var changesetdata={}; | ||
var changesetdata={},comparestatus; | ||
for(var prop in revision){ | ||
// console.log('prop',prop); | ||
// console.log('revision[prop]',JSON.stringify(revision[prop])); | ||
// if(original[prop]){ | ||
// console.log('original[prop]',JSON.stringify(original[prop])); | ||
// } | ||
if(!original[prop] || (JSON.stringify(revision[prop]) !== JSON.stringify(original[prop]) )){ | ||
changesetdata[prop] = revision[prop]; | ||
if(Array.isArray(revision[prop]) && original[prop] ){ | ||
for(var op =0; op <revision[prop].length; op++){ | ||
if(original[prop][op] && original[prop][op]._id && revision[prop][op].toString() === original[prop][op]._id.toString()){ | ||
comparestatus='array of prop('+prop+') is same'; | ||
} | ||
else if( | ||
original[prop][op] && | ||
original[prop][op].entity_item && | ||
revision[prop][op].entity_item && | ||
revision[prop][op].entity_item.toString() === original[prop][op].entity_item._id.toString() | ||
){ | ||
comparestatus='array entity_item of prop('+prop+') is the same'; | ||
} | ||
else if( | ||
original[prop][op] && | ||
original[prop][op].entity_collection && | ||
revision[prop][op].entity_collection && | ||
revision[prop][op].entity_collection.toString() === original[prop][op].entity_collection._id.toString() | ||
){ | ||
comparestatus='array entity_collection of prop('+prop+') is same'; | ||
} | ||
else if( | ||
original[prop][op] && | ||
original[prop][op].item && | ||
revision[prop][op].item && | ||
revision[prop][op].item.toString() === original[prop][op].item._id.toString() | ||
){ | ||
comparestatus='array item of prop('+prop+') is same'; | ||
} | ||
else{ | ||
comparestatus='array prop('+prop+') is different'; | ||
changesetdata[prop] = revision[prop]; | ||
} | ||
} | ||
} | ||
else if(original[prop] && original[prop]._id && (original[prop]._id.toString() === revision[prop].toString())){ | ||
comparestatus=' prop('+prop+') id is the same'; | ||
} | ||
else{ | ||
comparestatus=' prop('+prop+') id is different'; | ||
changesetdata[prop] = revision[prop]; | ||
} | ||
} | ||
} | ||
console.log('changesetdata',changesetdata); | ||
logger.silly('changesetdata',changesetdata); | ||
return changesetdata; | ||
@@ -454,3 +487,4 @@ }; | ||
if (options.saverevision && originalrevision) { | ||
var changesetdata = updatedoc; | ||
var changesetdata = updatedoc, | ||
changesetdiff; | ||
delete changesetdata.docid; | ||
@@ -468,36 +502,38 @@ delete changesetdata._csrf; | ||
delete changesetdata.mediafiles; | ||
var changesetdiff; | ||
model.populate( | ||
changesetdata, | ||
options.population, | ||
function(err,populatedchangeset){ | ||
if(err){ | ||
logger.error(err); | ||
} | ||
else{ | ||
changesetdiff=returnObjectDifference(originalrevision, populatedchangeset); | ||
if(Object.keys(changesetdiff).length>0){ | ||
model.findByIdAndUpdate( | ||
id, { | ||
$push: { | ||
'changes': { | ||
changeset: changesetdiff, | ||
editor:req.user._id, | ||
editor_username:req.user.username | ||
} | ||
} | ||
},// // {safe: true, upsert: true}, | ||
function (err) { | ||
if (err) { | ||
logger.error(err); | ||
} | ||
} | ||
); | ||
changesetdiff = returnObjectDifference(originalrevision, changesetdata); | ||
if(Object.keys(changesetdiff).length>0){ | ||
model.findByIdAndUpdate( | ||
id, { | ||
$push: { | ||
'changes': { | ||
changeset: changesetdiff, | ||
editor:req.user._id, | ||
editor_username:req.user.username | ||
} | ||
} | ||
else{ | ||
logger.silly('no changes to save'); | ||
},// // {safe: true, upsert: true}, | ||
function (err) { | ||
if (err) { | ||
logger.error(err); | ||
} | ||
} | ||
); | ||
} | ||
else{ | ||
logger.silly('no changes to save'); | ||
} | ||
// model.populate( | ||
// changesetdata, | ||
// options.population, | ||
// function(err,populatedchangeset){ | ||
// if(err){ | ||
// logger.error(err); | ||
// } | ||
// else{ | ||
} | ||
}); | ||
// } | ||
// }); | ||
} | ||
@@ -504,0 +540,0 @@ } |
{ | ||
"name": "periodicjs.core.controller", | ||
"description": "Customizable CMS platform", | ||
"version": "1.90.115", | ||
"version": "1.90.119", | ||
"main": "index.js", | ||
@@ -6,0 +6,0 @@ "engines": { |
119226
1160