diff --git a/lib/client/edit.js b/lib/client/edit.js index 8d216bf7..21e3b121 100644 --- a/lib/client/edit.js +++ b/lib/client/edit.js @@ -158,8 +158,6 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch; Util.ifExec(!isDiff, function(patch) { var query, isAllowed = DOM.Storage.isAllowed(), - isString = Util.isString(patch), - lessLength = patch.length < lValue.length, getSave = function(hash) { return function(data) { onSave(data, hash); @@ -167,20 +165,19 @@ var CloudCmd, Util, DOM, CloudFunc, ace, DiffProto, diff_match_patch; }; Value = lValue; - - if (isString && patch.length && lessLength) { - lValue = patch; - query = '?patch'; - } - - + Util.ifExec(!isAllowed, function(loadHash) { DOM.RESTful.save(lPath, lValue, getSave(loadHash), query); }, function(callback) { DOM.checkStorageHash(lPath, function(error, equal, loadHash) { + var isString = Util.isString(patch), + lessLength = patch.length < lValue.length; + if (!error) { - if (!equal) - query = ''; + if (equal && isString && patch.length && lessLength) { + lValue = patch; + query = '?patch'; + } callback(loadHash); }