From abbf3de3fa59e41527289221c98c55d7611e2bb6 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Tue, 18 Feb 2014 00:20:51 +0400 Subject: [PATCH] added progress fail state... Signed-off-by: Alex A. Naanou --- ui/files.js | 14 +++++++++++--- ui/ui.js | 20 ++++++++++++++------ 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/ui/files.js b/ui/files.js index 0322ded2..a841e04d 100755 --- a/ui/files.js +++ b/ui/files.js @@ -147,11 +147,15 @@ function statusProgress(msg, tracker, close_button){ var total = 0 var done = 0 + // XXX do we need a fail handler here??? return tracker .done(function(){ // XXX for some reason this does not allways display "done" closeProgressBar(progress) }) + .fail(function(){ + closeProgressBar(progress, 'error') + }) .progress(function(){ var args = $.makeArray(arguments) var getter = args[args.length-1] @@ -830,9 +834,13 @@ function loadDir(path, no_preview_processing, prefix, tracker){ if(tracker == null){ var tracker = statusProgress('Loading') // XXX is this the right way to go??? - res.done(function(){ - tracker.resolve() - }) + res + .done(function(){ + tracker.resolve() + }) + .fail(function(){ + tracker.reject() + }) } if(tracker == false){ tracker == null diff --git a/ui/ui.js b/ui/ui.js index 2e113541..0c340c95 100755 --- a/ui/ui.js +++ b/ui/ui.js @@ -496,7 +496,7 @@ function getProgressContainer(mode, parent){ // By default triggers the progressDone event. // // Shorthand: -// closeProgressBar(name) +// closeProgressBar(name[, msg]) // // - progressDone // Triggered by user or progressClose handler. @@ -561,10 +561,11 @@ function progressBar(name, container, close, hide_timeout, auto_remove){ }) state.text(' ('+done+' of '+total+')') }) - .on('progressDone', function(evt, done){ + .on('progressDone', function(evt, done, msg){ done = done == null ? bar.attr('value') : done + msg = msg == null ? 'done' : msg bar.attr('value', done) - state.text(' (done)') + state.text(' ('+msg+')') widget.find('.close').hide() setTimeout(function(){ @@ -590,8 +591,12 @@ function progressBar(name, container, close, hide_timeout, auto_remove){ }) if(close === false){ - widget.on('progressClose', function(){ - widget.trigger('progressDone') + widget.on('progressClose', function(evt, msg){ + if(msg != null){ + widget.trigger('progressDone', [null, msg]) + } else { + widget.trigger('progressDone') + } }) } else if(close != null){ widget.on('progressClose', close) @@ -627,7 +632,10 @@ function resetProgressBar(name){ function updateProgressBar(name, done, total){ return triggerProgressBarEvent(name, 'progressUpdate', [done, total]) } -function closeProgressBar(name){ +function closeProgressBar(name, msg){ + if(msg != null){ + return triggerProgressBarEvent(name, 'progressClose', [msg]) + } return triggerProgressBarEvent(name, 'progressClose') }