mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-11-01 11:50:07 +00:00
some refactoring to the files.js file API, now relatively generic...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
9db9983371
commit
a20cda9ed3
@ -156,7 +156,36 @@ function prevBookmark(){
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************/
|
/**********************************************************************
|
||||||
|
* Files...
|
||||||
|
*/
|
||||||
|
|
||||||
|
var loadFileBookmarks = makeFileLoader(
|
||||||
|
'Bookmarks',
|
||||||
|
BOOKMARKS_FILE_DEFAULT,
|
||||||
|
BOOKMARKS_FILE_PATTERN,
|
||||||
|
function(data){
|
||||||
|
BOOKMARKS = data[0] == null ? [] : data[0]
|
||||||
|
BOOKMARKS_DATA = data[1] == null ? {} : data[1]
|
||||||
|
})
|
||||||
|
FILE_LOADERS.push(loadFileBookmarks)
|
||||||
|
|
||||||
|
|
||||||
|
var saveFileBookmarks = makeFileSaver(
|
||||||
|
BOOKMARKS_FILE_DEFAULT,
|
||||||
|
function(){
|
||||||
|
return [
|
||||||
|
BOOKMARKS,
|
||||||
|
BOOKMARKS_DATA
|
||||||
|
]
|
||||||
|
})
|
||||||
|
FILE_SAVERS.push(saveFileBookmarks)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* Setup...
|
||||||
|
*/
|
||||||
|
|
||||||
// setup event handlers for the bookmark framework...
|
// setup event handlers for the bookmark framework...
|
||||||
//
|
//
|
||||||
|
|||||||
146
ui/files.js
146
ui/files.js
@ -6,6 +6,9 @@
|
|||||||
|
|
||||||
//var DEBUG = DEBUG != null ? DEBUG : true
|
//var DEBUG = DEBUG != null ? DEBUG : true
|
||||||
|
|
||||||
|
var FILE_LOADERS = []
|
||||||
|
var FILE_SAVERS = []
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
@ -80,6 +83,19 @@ function bubbleProgress(prefix, from, to, only_progress){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function runFileLoaders(prefix, res){
|
||||||
|
return $.when.apply(null, FILE_LOADERS.map(function(load){
|
||||||
|
return bubbleProgress(prefix, load(), res, true)
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
// XXX do we need bubbleProgress(..) here???
|
||||||
|
function runFileSavers(name){
|
||||||
|
FILE_SAVERS.map(function(save){
|
||||||
|
return save(name)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Semi-generic deferred file loader
|
// Semi-generic deferred file loader
|
||||||
//
|
//
|
||||||
// if pattern is given, then search for the latest (ordered last) file
|
// if pattern is given, then search for the latest (ordered last) file
|
||||||
@ -183,6 +199,57 @@ function loadLatestFile(path, dfl, pattern, diff_pattern, default_data){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function makeFileLoader(title, file_dfl, file_pattern, data_set){
|
||||||
|
return function(path){
|
||||||
|
var res = $.Deferred()
|
||||||
|
// default locations...
|
||||||
|
if(path == null){
|
||||||
|
var base = normalizePath(CACHE_DIR_VAR)
|
||||||
|
var loader = loadLatestFile(base,
|
||||||
|
file_dfl,
|
||||||
|
file_pattern,
|
||||||
|
null,
|
||||||
|
[])
|
||||||
|
|
||||||
|
// explicit path...
|
||||||
|
// XXX need to account for paths without a CACHE_DIR
|
||||||
|
} else {
|
||||||
|
path = normalizePath(path)
|
||||||
|
var base = path.split(CACHE_DIR)[0]
|
||||||
|
//base = normalizePath(path +'/'+ CACHE_DIR_VAR)
|
||||||
|
base = path +'/'+ CACHE_DIR
|
||||||
|
|
||||||
|
// XXX is this correct???
|
||||||
|
var loader = loadLatestFile(base,
|
||||||
|
path.split(base)[0],
|
||||||
|
RegExp(path.split(base)[0]),
|
||||||
|
null,
|
||||||
|
[])
|
||||||
|
}
|
||||||
|
|
||||||
|
bubbleProgress(title, loader, res)
|
||||||
|
|
||||||
|
res.done(data_set)
|
||||||
|
|
||||||
|
return res
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function makeFileSaver(file_dfl, data_get){
|
||||||
|
return function(name){
|
||||||
|
name = name == null
|
||||||
|
? normalizePath(CACHE_DIR_VAR +'/'+ Date.timeStamp())
|
||||||
|
: name
|
||||||
|
|
||||||
|
dumpJSON(name + '-' + file_dfl, data_get())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************/
|
||||||
|
|
||||||
// Construct a ribbons hierarchy from the fav dirs structure
|
// Construct a ribbons hierarchy from the fav dirs structure
|
||||||
//
|
//
|
||||||
// NOTE: this depends on listDir(...)
|
// NOTE: this depends on listDir(...)
|
||||||
@ -318,79 +385,6 @@ function saveFileImages(name){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function makeBasicLoader(title, file_dfl, file_pattern, finalize){
|
|
||||||
return function(path){
|
|
||||||
var res = $.Deferred()
|
|
||||||
// default locations...
|
|
||||||
if(path == null){
|
|
||||||
var base = normalizePath(CACHE_DIR_VAR)
|
|
||||||
var loader = loadLatestFile(base,
|
|
||||||
file_dfl,
|
|
||||||
file_pattern,
|
|
||||||
null,
|
|
||||||
[])
|
|
||||||
|
|
||||||
// explicit path...
|
|
||||||
// XXX need to account for paths without a CACHE_DIR
|
|
||||||
} else {
|
|
||||||
path = normalizePath(path)
|
|
||||||
var base = path.split(CACHE_DIR)[0]
|
|
||||||
//base = normalizePath(path +'/'+ CACHE_DIR_VAR)
|
|
||||||
base = path +'/'+ CACHE_DIR
|
|
||||||
|
|
||||||
// XXX is this correct???
|
|
||||||
var loader = loadLatestFile(base,
|
|
||||||
path.split(base)[0],
|
|
||||||
RegExp(path.split(base)[0]),
|
|
||||||
null,
|
|
||||||
[])
|
|
||||||
}
|
|
||||||
|
|
||||||
bubbleProgress(title, loader, res)
|
|
||||||
|
|
||||||
res.done(finalize)
|
|
||||||
|
|
||||||
return res
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Load image marks form file
|
|
||||||
//
|
|
||||||
// NOTE: if no marks are found then set them to []
|
|
||||||
var loadFileMarks = makeBasicLoader(
|
|
||||||
'Marks',
|
|
||||||
MARKED_FILE_DEFAULT,
|
|
||||||
MARKED_FILE_PATTERN,
|
|
||||||
function(data){
|
|
||||||
MARKED = data
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
// Save image marks to file
|
|
||||||
function saveFileMarks(name){
|
|
||||||
name = name == null ? normalizePath(CACHE_DIR_VAR +'/'+ Date.timeStamp()) : name
|
|
||||||
|
|
||||||
dumpJSON(name + '-' + MARKED_FILE_DEFAULT, MARKED)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var loadFileBookmarks = makeBasicLoader(
|
|
||||||
'Bookmarks',
|
|
||||||
BOOKMARKS_FILE_DEFAULT,
|
|
||||||
BOOKMARKS_FILE_PATTERN,
|
|
||||||
function(data){
|
|
||||||
BOOKMARKS = data[0] == null ? [] : data[0]
|
|
||||||
BOOKMARKS_DATA = data[1] == null ? {} : data[1]
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
function saveFileBookmarks(name){
|
|
||||||
name = name == null ? normalizePath(CACHE_DIR_VAR +'/'+ Date.timeStamp()) : name
|
|
||||||
|
|
||||||
dumpJSON(name + '-' + BOOKMARKS_FILE_DEFAULT, [BOOKMARKS, BOOKMARKS_DATA])
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Load images, ribbons and marks from cache
|
// Load images, ribbons and marks from cache
|
||||||
//
|
//
|
||||||
// XXX add support for explicit filenames...
|
// XXX add support for explicit filenames...
|
||||||
@ -438,10 +432,13 @@ function loadFileState(path, prefix){
|
|||||||
// normalizePath(DATA.image_file, base)
|
// normalizePath(DATA.image_file, base)
|
||||||
// : null), res, true),
|
// : null), res, true),
|
||||||
// load marks if available...
|
// load marks if available...
|
||||||
|
runFileLoaders(prefix, res))
|
||||||
|
/*
|
||||||
bubbleProgress(prefix,
|
bubbleProgress(prefix,
|
||||||
loadFileMarks(), res, true),
|
loadFileMarks(), res, true),
|
||||||
bubbleProgress(prefix,
|
bubbleProgress(prefix,
|
||||||
loadFileBookmarks(), res, true))
|
loadFileBookmarks(), res, true))
|
||||||
|
*/
|
||||||
.done(function(){
|
.done(function(){
|
||||||
reloadViewer()
|
reloadViewer()
|
||||||
res.resolve()
|
res.resolve()
|
||||||
@ -484,8 +481,7 @@ function saveFileState(name, no_normalize_path){
|
|||||||
|
|
||||||
dumpJSON(name + '-data.json', data)
|
dumpJSON(name + '-data.json', data)
|
||||||
// XXX do we need to do this???
|
// XXX do we need to do this???
|
||||||
saveFileMarks(name)
|
runFileSavers(name)
|
||||||
saveFileBookmarks(name)
|
|
||||||
|
|
||||||
// save the updated images...
|
// save the updated images...
|
||||||
if(IMAGES_UPDATED.length > 0){
|
if(IMAGES_UPDATED.length > 0){
|
||||||
|
|||||||
@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
<script src="ribbons.js"></script>
|
<script src="ribbons.js"></script>
|
||||||
<script src="data.js"></script>
|
<script src="data.js"></script>
|
||||||
|
<script src="files.js"></script>
|
||||||
<script src="urlhistory.js"></script>
|
<script src="urlhistory.js"></script>
|
||||||
<script src="crop.js"></script>
|
<script src="crop.js"></script>
|
||||||
<script src="sort.js"></script>
|
<script src="sort.js"></script>
|
||||||
@ -34,7 +35,6 @@
|
|||||||
<script src="modes.js"></script>
|
<script src="modes.js"></script>
|
||||||
<script src="marks.js"></script>
|
<script src="marks.js"></script>
|
||||||
<script src="bookmarks.js"></script>
|
<script src="bookmarks.js"></script>
|
||||||
<script src="files.js"></script>
|
|
||||||
<script src="localstorage.js"></script>
|
<script src="localstorage.js"></script>
|
||||||
<script src="info.js"></script>
|
<script src="info.js"></script>
|
||||||
<script src="ui.js"></script>
|
<script src="ui.js"></script>
|
||||||
|
|||||||
33
ui/marks.js
33
ui/marks.js
@ -443,7 +443,38 @@ function markImagesDialog(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************/
|
|
||||||
|
/**********************************************************************
|
||||||
|
* Files...
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Load image marks form file
|
||||||
|
//
|
||||||
|
// NOTE: if no marks are found then set them to []
|
||||||
|
var loadFileMarks = makeFileLoader(
|
||||||
|
'Marks',
|
||||||
|
MARKED_FILE_DEFAULT,
|
||||||
|
MARKED_FILE_PATTERN,
|
||||||
|
function(data){
|
||||||
|
MARKED = data
|
||||||
|
})
|
||||||
|
FILE_LOADERS.push(loadFileMarks)
|
||||||
|
|
||||||
|
|
||||||
|
// Save image marks to file
|
||||||
|
var saveFileMarks = makeFileSaver(
|
||||||
|
MARKED_FILE_DEFAULT,
|
||||||
|
function(){
|
||||||
|
return MARKED
|
||||||
|
})
|
||||||
|
FILE_SAVERS.push(saveFileMarks)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**********************************************************************
|
||||||
|
* Setup...
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
function setupMarks(viewer){
|
function setupMarks(viewer){
|
||||||
console.log('Marks: setup...')
|
console.log('Marks: setup...')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user