diff --git a/app/scripts/models/app-model.js b/app/scripts/models/app-model.js index 8b96b2ac..149355f6 100644 --- a/app/scripts/models/app-model.js +++ b/app/scripts/models/app-model.js @@ -305,7 +305,8 @@ var AppModel = Backbone.Model.extend({ }, fileInfo); } else if (params.fileData) { logger.info('Open file from supplied content'); - this.openFileWithData(params, callback, fileInfo, params.fileData, true); + var needSaveToCache = params.storage !== 'file'; + this.openFileWithData(params, callback, fileInfo, params.fileData, needSaveToCache); } else if (!params.storage) { logger.info('Open file from cache as main storage'); this.openFileFromCache(params, callback, fileInfo); @@ -330,7 +331,8 @@ var AppModel = Backbone.Model.extend({ logger.info('Open file from content loaded from storage'); params.fileData = data; params.rev = stat && stat.rev || null; - that.openFileWithData(params, callback, fileInfo, data, true); + var needSaveToCache = storage.name !== 'file'; + that.openFileWithData(params, callback, fileInfo, data, needSaveToCache); } }); }; @@ -338,7 +340,7 @@ var AppModel = Backbone.Model.extend({ if (cacheRev && storage.stat) { logger.info('Stat file'); storage.stat(params.path, params.opts, function(err, stat) { - if (fileInfo && (err || stat && stat.rev === cacheRev)) { + if (fileInfo && storage.name !== 'file' && (err || stat && stat.rev === cacheRev)) { logger.info('Open file from cache because ' + (err ? 'stat error' : 'it is latest'), err); that.openFileFromCache(params, callback, fileInfo); } else if (stat) { @@ -353,7 +355,7 @@ var AppModel = Backbone.Model.extend({ storageLoad(); } } else { - logger.info('Open file from cache, after load will sync', params.storage); + logger.info('Open file from cache, will sync after load', params.storage); this.openFileFromCache(params, function(err, file) { if (!err && file) { logger.info('Sync just opened file'); @@ -609,7 +611,7 @@ var AppModel = Backbone.Model.extend({ } file.set('syncDate', new Date()); if (file.get('modified')) { - logger.info('Updated sync date, saving modified file to cache and storage'); + logger.info('Updated sync date, saving modified file'); saveToCacheAndStorage(); } else if (file.get('dirty')) { logger.info('Saving not modified dirty file to cache'); @@ -627,11 +629,14 @@ var AppModel = Backbone.Model.extend({ }); }; var saveToCacheAndStorage = function() { - logger.info('Save to cache and storage'); + logger.info('Getting file data for saving'); file.getData(function(data, err) { if (err) { return complete(err); } - if (!file.get('dirty')) { - logger.info('Save to storage, skip cache because not dirty'); + if (storage === 'file') { + logger.info('Saving to file storage'); + saveToStorage(data); + } else if (!file.get('dirty')) { + logger.info('Saving to storage, skip cache because not dirty'); saveToStorage(data); } else { logger.info('Saving to cache'); @@ -695,7 +700,7 @@ var AppModel = Backbone.Model.extend({ } } else if (stat.rev === fileInfo.get('rev')) { if (file.get('modified')) { - logger.info('Stat found same version, modified, saving to cache and storage'); + logger.info('Stat found same version, modified, saving'); saveToCacheAndStorage(); } else { logger.info('Stat found same version, not modified'); diff --git a/release-notes.md b/release-notes.md index e3047824..725613d9 100644 --- a/release-notes.md +++ b/release-notes.md @@ -17,6 +17,7 @@ Auto-type, ui improvements `*` don't check updates at startup `*` repos moved to github organization account `*` allow opening same file twice +`*` local files are not saved to cache `-` prevent second app instance on windows `-` fix drag-drop in Safari