From 5d3a50cb158418d2107f3793e659baed2c73e9b7 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Mon, 20 Jan 2014 10:24:49 +0400 Subject: [PATCH] refactoring files.js... Signed-off-by: Alex A. Naanou --- ui/files.js | 108 +++++++++++++++++++++++++++------------------------- 1 file changed, 56 insertions(+), 52 deletions(-) diff --git a/ui/files.js b/ui/files.js index 40dd57ed..f45042f9 100755 --- a/ui/files.js +++ b/ui/files.js @@ -27,15 +27,12 @@ var FILES_UPDATED = [] /********************************************************* Helpers ***/ -function makeBaseFilename(base, date, ext){ +function makeBaseFilename(base, ext){ ext = ext == null ? CONFIG.json_ext : ext - if(date == null){ - return CONFIG.base_file_pattern - .replace('${BASE}', base) - .replace('${EXT}', ext) - } - return date +'-'+ name +'.'+ ext + return CONFIG.base_file_pattern + .replace('${BASE}', base) + .replace('${EXT}', ext) } function makeFilename(base, date, ext){ date = date == null ? Date.timeStamp() : date @@ -49,6 +46,7 @@ function makeFilename(base, date, ext){ function makeFilenamePattern(base, ext){ return RegExp(makeFilename(base, '^[0-9]*', ext)+'$') } + function makeDiffFilename(base, date, diff, ext){ date = date == null ? Date.timeStamp() : date diff = diff == null ? CONFIG.diff_suffix : diff @@ -234,51 +232,44 @@ function loadLatestFile(path, dfl, pattern, diff_pattern, default_data){ } -// XXX needs revision and testing... -function loadFile(title, path, file_dfl, file_pattern, default_data){ - var res = $.Deferred() - // default locations... - if(path == null){ - var base = normalizePath(CONFIG.cache_dir_var) - var loader = loadLatestFile(base, - file_dfl, - file_pattern, - null, - default_data) - - // explicit path... - // XXX need to account for paths without a CONFIG.cache_dir - } else { - path = normalizePath(path) - var base = path.split(CONFIG.cache_dir)[0] - //base = normalizePath(path +'/'+ CONFIG.cache_dir_var) - base = path +'/'+ CONFIG.cache_dir - - // XXX is this correct??? - var loader = loadLatestFile(base, - path.split(base)[0], - RegExp(path.split(base)[0]), - null, - default_data) - } - - bubbleProgress(title, loader, res) - - return res -} - - -function makeFileLoader(title, base, default_data, set_data, error, evt_name, skip_reg){ +// NOTE: config change to name will not affect this... +function makeFileLoader(title, name, default_data, set_data, error, evt_name, skip_reg){ var _loader = function(path){ - var res = loadFile( - title, - path, - makeBaseFilename(base), - makeFilenamePattern(base), - default_data) + var res = $.Deferred() + + // NOTE: these are static!! + var file_dfl = makeBaseFilename(name) + var file_pattern = makeFilenamePattern(name) + + // default locations... + if(path == null){ + var base = normalizePath(CONFIG.cache_dir_var) + var loader = loadLatestFile(base, + file_dfl, + file_pattern, + null, + default_data) + + // explicit path... + // XXX need to account for paths without a CONFIG.cache_dir + } else { + path = normalizePath(path) + var base = path.split(CONFIG.cache_dir)[0] + //base = normalizePath(path +'/'+ CONFIG.cache_dir_var) + base = path +'/'+ CONFIG.cache_dir + + // XXX is this correct??? + var loader = loadLatestFile(base, + path.split(base)[0], + RegExp(path.split(base)[0]), + null, + default_data) + } res.done(set_data) + bubbleProgress(title, loader, res) + if(error != null){ res.fail(error) } @@ -290,6 +281,8 @@ function makeFileLoader(title, base, default_data, set_data, error, evt_name, sk !skip_reg && FILE_LOADERS.push(_loader) return _loader } + + // XXX make this check for updates -- no need to re-save if nothing // changed... function makeFileSaver(title, file_dfl, get_data, skip_reg){ @@ -321,6 +314,8 @@ function runFileLoaders(prefix, res){ return bubbleProgress(prefix, load(), res, true) })) } + + // NOTE: if all is set, this will force save everything... // XXX do we need bubbleProgress(..) here??? function runFileSavers(path, date, all){ @@ -494,7 +489,6 @@ function saveFileImages(name, date, remove_diffs){ }) } - // XXX use the pattern... dumpJSON(name, IMAGES) IMAGES_UPDATED = [] @@ -514,6 +508,7 @@ function saveFileImagesDiff(name, date){ }) dumpJSON(name, updated) + IMAGES_UPDATED = [] } @@ -806,8 +801,8 @@ function exportImageTo(gid, path, im_name, size){ // copy... // NOTE: the sad smily face here is here for JS compatibility ;) - ;(function(src, dest){ - copyFile(src, dest) + return (function(src, dest){ + return copyFile(src, dest) .done(function(){ console.log(src, 'done.') }) @@ -847,6 +842,10 @@ function exportImagesTo(path, im_name, dir_name, size){ selection.sort(imageOrderCmp) var z = (('10e' + (selection.length + '').length) * 1 + '').slice(2) + var queue = [] + var pool = [] + var pool_size = 10 + // go through ribbons... for(var i=DATA.ribbons.length-1; i >= 0; i--){ var ribbon = DATA.ribbons[i] @@ -863,11 +862,16 @@ function exportImagesTo(path, im_name, dir_name, size){ var o = selection.indexOf(gid) + '' dest = dest.replace('%i', (z + o).slice(o.length)) - exportImageTo(gid, path, dest, size) + queue.push([gid, path, dest, size]) } path = normalizePath(path +'/'+ dir_name) } + + // XXX pool this... + queue.forEach(function(e){ + exportImageTo.apply(null, e) + }) }