now .json data is saved ONLY if updated (still does not apply to data.json)...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2013-12-24 05:23:51 +04:00
parent 3c223b3fa5
commit 8b44986e33
4 changed files with 59 additions and 9 deletions

View File

@ -87,12 +87,13 @@ var toggleBookmark = makeMarkToggler(
} else {
BOOKMARKS.splice(BOOKMARKS.indexOf(gid), 1)
}
bookmarksUpdated()
})
// focus next bookmark...
// focus next/prev bookmark...
//
// NOTE: this will not jump to bookmarks on other ribbons...
var nextBookmark = makeNextFromListAction(
getBookmarkedGIDBefore,
function(){ return BOOKMARKS })
@ -117,6 +118,7 @@ var loadFileBookmarks = makeFileLoader(
var saveFileBookmarks = makeFileSaver(
'Bookmarks',
BOOKMARKS_FILE_DEFAULT,
function(){
return [
@ -126,6 +128,11 @@ var saveFileBookmarks = makeFileSaver(
})
function bookmarksUpdated(){
fileUpdated('Bookmarks')
}
/**********************************************************************
* Setup...

View File

@ -23,7 +23,8 @@ var IMAGE_PATTERN = /.*\.(jpg|jpeg|png|gif)$/i
var FILE_LOADERS = []
var FILE_SAVERS = []
var FILE_SAVERS = {}
var FILES_UPDATED = []
@ -245,7 +246,7 @@ function makeFileLoader(title, file_dfl, file_pattern, set_data, evt_name, skip_
}
// XXX make this check for updates -- no need to re-save if nothing
// changed...
function makeFileSaver(file_dfl, get_data, skip_reg){
function makeFileSaver(title, file_dfl, get_data, skip_reg){
var _saver = function(name){
name = name == null
? normalizePath(CONFIG.cache_dir_var +'/'+ Date.timeStamp())
@ -253,21 +254,37 @@ function makeFileSaver(file_dfl, get_data, skip_reg){
dumpJSON(name + '-' + file_dfl, get_data())
}
!skip_reg && FILE_SAVERS.push(_saver)
if(!skip_reg){
FILE_SAVERS[title] = _saver
}
return _saver
}
// mark file type as updated...
function fileUpdated(name){
if(FILES_UPDATED.indexOf(name) < 0 && name in FILE_SAVERS){
FILES_UPDATED.push(name)
}
}
function runFileLoaders(prefix, res){
return $.when.apply(null, FILE_LOADERS.map(function(load){
return bubbleProgress(prefix, load(), res, true)
}))
}
// NOTE: if all is set, this will force save everything...
// XXX do we need bubbleProgress(..) here???
function runFileSavers(name){
FILE_SAVERS.map(function(save){
return save(name)
})
function runFileSavers(name, all){
var updated = FILES_UPDATED
FILES_UPDATED = []
for(var n in FILE_SAVERS){
if(all || updated.indexOf(n) >= 0){
showStatusQ('Saving: File:', n)
FILE_SAVERS[n](name)
}
}
}

View File

@ -236,6 +236,8 @@ var toggleMark = makeMarkToggler(
} else {
MARKED.splice(MARKED.indexOf(gid), 1)
}
marksUpdated()
})
@ -281,6 +283,8 @@ function toggleAllMarks(action, mode){
$('.viewer').trigger('togglingMarks', [updated, action])
marksUpdated()
return res
}
@ -328,6 +332,8 @@ function invertImageMarks(){
.trigger('togglingMarks', [on, 'on'])
.trigger('togglingMarks', [off, 'off'])
marksUpdated()
return on.concat(off)
}
@ -378,6 +384,8 @@ function toggleMarkBlock(image){
.trigger('togglingImageBlockMarks', [image, updated, state])
.trigger('togglingMarks', [updated, state ? 'on' : 'off'])
marksUpdated()
return state
}
@ -580,12 +588,18 @@ var loadFileMarks = makeFileLoader(
// Save image marks to file
var saveFileMarks = makeFileSaver(
'Marks',
MARKED_FILE_DEFAULT,
function(){
return MARKED
})
function marksUpdated(){
fileUpdated('Marks')
}
/**********************************************************************
* Setup...

View File

@ -59,6 +59,8 @@ function buildTagsFromImages(tagset, images){
tagset[tag] = tagset[tag].filter(function(e){ return e != null })
}
tagsUpdated()
return tagset
}
@ -119,6 +121,7 @@ function addTag(tags, gid, tagset, images){
if(updated){
img.tags = img_tags
imageUpdated(gid)
tagsUpdated()
}
}
@ -155,6 +158,7 @@ function removeTag(tags, gid, tagset, images){
if(updated){
imageUpdated(gid)
tagsUpdated()
}
}
@ -344,6 +348,7 @@ function tagOnlyBookmarked(tags){ return tagOnlyList(BOOKMARKED, tags) }
function markTagged(tags){
MARKED = tagSelectAND(tags)
updateImages()
marksUpdated()
return MARKED
}
function unmarkTagged(tags){
@ -355,6 +360,7 @@ function unmarkTagged(tags){
}
})
updateImages()
marksUpdated()
return set
}
@ -470,12 +476,18 @@ var loadFileTags = makeFileLoader(
// Save image marks to file
var saveFileTags = makeFileSaver(
'Tags',
TAGS_FILE_DEFAULT,
function(){
return TAGS
})
function tagsUpdated(){
fileUpdated('Tags')
}
/**********************************************************************
* Setup...