mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-31 19:30:07 +00:00
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:
parent
3c223b3fa5
commit
8b44986e33
@ -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...
|
||||
|
||||
31
ui/files.js
31
ui/files.js
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
14
ui/marks.js
14
ui/marks.js
@ -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...
|
||||
|
||||
12
ui/tags.js
12
ui/tags.js
@ -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...
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user