several fixes...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2014-01-30 08:53:27 +04:00
parent b6990615cd
commit a85262255f
2 changed files with 23 additions and 7 deletions

View File

@ -61,6 +61,9 @@ if(window.CEF_dumpJSON != null){
// Things ImageGrid needs... // Things ImageGrid needs...
// XXX do we need assync versions?? // XXX do we need assync versions??
window.listDir = function(path){ window.listDir = function(path){
if(!fs.existsSync(osPath(path))){
return null
}
return fs.readdirSync(osPath(path)) return fs.readdirSync(osPath(path))
} }
// XXX make this work across fs... // XXX make this work across fs...

View File

@ -253,6 +253,9 @@ function loadLatestJSONFile(path, dfl, pattern, diff_pattern, default_data, trac
// find the latest... // find the latest...
if(pattern != null){ if(pattern != null){
file_list = listDir(path) file_list = listDir(path)
if(file_list == null){
return res.reject()
}
pattern = RegExp(pattern) pattern = RegExp(pattern)
var file = $.map(file_list, function(e){ var file = $.map(file_list, function(e){
return pattern.test(e) ? e : null return pattern.test(e) ? e : null
@ -268,6 +271,9 @@ function loadLatestJSONFile(path, dfl, pattern, diff_pattern, default_data, trac
// collect and merge diffs... // collect and merge diffs...
if(diff_pattern != null){ if(diff_pattern != null){
file_list = file_list == null ? listDir(path) : file_list file_list = file_list == null ? listDir(path) : file_list
if(file_list == null){
return res.reject()
}
diff_pattern = RegExp(diff_pattern) diff_pattern = RegExp(diff_pattern)
var diff_data = [diff_data] var diff_data = [diff_data]
var diffs_names = $.map(file_list, function(e){ var diffs_names = $.map(file_list, function(e){
@ -418,7 +424,6 @@ function makeFileLoader(title, name, default_data, set_data, error, evt_name, sk
return res return res
} }
if(!skip_reg){ if(!skip_reg){
console.log('!!!!!!', title, skip_reg)
FILE_LOADERS.push(_loader) FILE_LOADERS.push(_loader)
} }
return _loader return _loader
@ -442,7 +447,8 @@ function makeFileSaver(title, file_dfl, get_data, skip_reg){
} }
// mark file type as updated... // Mark file type as updated...
//
function fileUpdated(name){ function fileUpdated(name){
if(FILES_UPDATED.indexOf(name) < 0 && name in FILE_SAVERS){ if(FILES_UPDATED.indexOf(name) < 0 && name in FILE_SAVERS){
FILES_UPDATED.push(name) FILES_UPDATED.push(name)
@ -450,10 +456,11 @@ function fileUpdated(name){
} }
function runFileLoaders(prefix, res, tracker){ // NOTE: this will bubble progress to next automatically...
function runFileLoaders(prefix, next, tracker){
FILES_UPDATED = [] FILES_UPDATED = []
return $.when.apply(null, FILE_LOADERS.map(function(load){ return $.when.apply(null, FILE_LOADERS.map(function(load){
return bubbleProgress(prefix, load(null, tracker), res, true) return bubbleProgress(prefix, load(null, tracker), next, true)
})) }))
} }
@ -478,6 +485,9 @@ function runFileSavers(path, date, all){
// NOTE: this is not registered in file loaders as it needs to be called // NOTE: this is not registered in file loaders as it needs to be called
// explicitly before anything else is loaded... // explicitly before anything else is loaded...
// NOTE: after v2.2 this will not load the current position as it's stored
// in a separate file (current.json), see: loadFileState(..) for
// details...
var loadFileData = makeFileLoader( var loadFileData = makeFileLoader(
'Data', 'Data',
CONFIG.data_file, CONFIG.data_file,
@ -497,6 +507,7 @@ var loadFileData = makeFileLoader(
}, },
null, null,
null, null,
// stop from registering in FILE_LOADERS...
true) true)
@ -639,6 +650,8 @@ function loadFileState(path, prefix, tracker){
var res = $.Deferred() var res = $.Deferred()
// XXX load config...
bubbleProgress(prefix, bubbleProgress(prefix,
loadFileData(path, tracker), loadFileData(path, tracker),
res, res,
@ -646,9 +659,8 @@ function loadFileState(path, prefix, tracker){
.done(function(json){ .done(function(json){
setBaseURL(base) setBaseURL(base)
// load the rest of the files...
$.when( $.when(
// XXX load config...
// load current position... // load current position...
// added on 2.2 // added on 2.2
bubbleProgress(prefix, bubbleProgress(prefix,
@ -663,12 +675,13 @@ function loadFileState(path, prefix, tracker){
.done(function(cur){ .done(function(cur){
DATA.current = cur DATA.current = cur
}), }),
// load images... // load images...
bubbleProgress(prefix, bubbleProgress(prefix,
loadFileImages(base, tracker), res, true), loadFileImages(base, tracker), res, true),
// run registered loaders... // run registered loaders...
// added on 2.1 // added on 2.1
// XXX bubbleProgress???
runFileLoaders(prefix, res, tracker)) runFileLoaders(prefix, res, tracker))
.done(function(){ .done(function(){
$('.viewer').trigger('fileStateLoaded') $('.viewer').trigger('fileStateLoaded')