Committed by
Gerrit Code Review
Web UI -- added fs.debug(...) function for conditional debug messages to console
- precache loading... images. Change-Id: Ie93262b78e72f6c740ba851d8662b8170a91ab75
Showing
2 changed files
with
53 additions
and
7 deletions
| ... | @@ -23,12 +23,13 @@ | ... | @@ -23,12 +23,13 @@ |
| 23 | 'use strict'; | 23 | 'use strict'; |
| 24 | 24 | ||
| 25 | // injected references | 25 | // injected references |
| 26 | - var $log, $timeout, ts; | 26 | + var $log, $timeout, ts, fs; |
| 27 | 27 | ||
| 28 | // constants | 28 | // constants |
| 29 | var id = 'loading-anim', | 29 | var id = 'loading-anim', |
| 30 | dir = 'data/img/loading/', | 30 | dir = 'data/img/loading/', |
| 31 | pfx = '/load-', | 31 | pfx = '/load-', |
| 32 | + nImgs = 16, | ||
| 32 | speed = 100, | 33 | speed = 100, |
| 33 | waitDelay = 500; | 34 | waitDelay = 500; |
| 34 | 35 | ||
| ... | @@ -38,26 +39,51 @@ | ... | @@ -38,26 +39,51 @@ |
| 38 | th, | 39 | th, |
| 39 | idx, | 40 | idx, |
| 40 | task, | 41 | task, |
| 41 | - wait; | 42 | + wait, |
| 43 | + images = []; | ||
| 42 | 44 | ||
| 43 | - function fname(i) { | 45 | + function dbg() { |
| 46 | + var args = Array.prototype.slice.call(arguments); | ||
| 47 | + args.unshift('loading'); | ||
| 48 | + fs.debug.apply(this, args); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + function preloadImages() { | ||
| 52 | + var idx; | ||
| 53 | + | ||
| 54 | + function addImg(th) { | ||
| 55 | + var img = new Image(); | ||
| 56 | + img.src = fname(idx, th); | ||
| 57 | + images.push(img); | ||
| 58 | + } | ||
| 59 | + | ||
| 60 | + dbg('preload images start...'); | ||
| 61 | + for (idx=1; idx<=nImgs; idx++) { | ||
| 62 | + addImg('light'); | ||
| 63 | + addImg('dark'); | ||
| 64 | + } | ||
| 65 | + dbg('preload images DONE!', images); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + function fname(i, th) { | ||
| 44 | var z = i > 9 ? '' : '0'; | 69 | var z = i > 9 ? '' : '0'; |
| 45 | return dir + th + pfx + z + i + '.png'; | 70 | return dir + th + pfx + z + i + '.png'; |
| 46 | } | 71 | } |
| 47 | 72 | ||
| 48 | function nextFrame() { | 73 | function nextFrame() { |
| 49 | idx = idx === 16 ? 1 : idx + 1; | 74 | idx = idx === 16 ? 1 : idx + 1; |
| 50 | - img.attr('src', fname(idx)); | 75 | + img.attr('src', fname(idx, th)); |
| 51 | task = $timeout(nextFrame, speed); | 76 | task = $timeout(nextFrame, speed); |
| 52 | } | 77 | } |
| 53 | 78 | ||
| 54 | // start displaying 'loading...' animation (idempotent) | 79 | // start displaying 'loading...' animation (idempotent) |
| 55 | function startAnim() { | 80 | function startAnim() { |
| 81 | + dbg('start ANIMATION'); | ||
| 56 | th = ts.theme(); | 82 | th = ts.theme(); |
| 57 | div = d3.select('#'+id); | 83 | div = d3.select('#'+id); |
| 58 | if (div.empty()) { | 84 | if (div.empty()) { |
| 59 | div = d3.select('body').append('div').attr('id', id); | 85 | div = d3.select('body').append('div').attr('id', id); |
| 60 | - img = div.append('img').attr('src', fname(1)); | 86 | + img = div.append('img').attr('src', fname(1, th)); |
| 61 | idx = 1; | 87 | idx = 1; |
| 62 | task = $timeout(nextFrame, speed); | 88 | task = $timeout(nextFrame, speed); |
| 63 | } | 89 | } |
| ... | @@ -65,6 +91,7 @@ | ... | @@ -65,6 +91,7 @@ |
| 65 | 91 | ||
| 66 | // stop displaying 'loading...' animation (idempotent) | 92 | // stop displaying 'loading...' animation (idempotent) |
| 67 | function stopAnim() { | 93 | function stopAnim() { |
| 94 | + dbg('*stop* ANIMATION'); | ||
| 68 | if (task) { | 95 | if (task) { |
| 69 | $timeout.cancel(task); | 96 | $timeout.cancel(task); |
| 70 | task = null; | 97 | task = null; |
| ... | @@ -74,12 +101,14 @@ | ... | @@ -74,12 +101,14 @@ |
| 74 | 101 | ||
| 75 | // schedule function to start animation in the future | 102 | // schedule function to start animation in the future |
| 76 | function start() { | 103 | function start() { |
| 104 | + dbg('start (schedule)'); | ||
| 77 | wait = $timeout(startAnim, waitDelay); | 105 | wait = $timeout(startAnim, waitDelay); |
| 78 | } | 106 | } |
| 79 | 107 | ||
| 80 | // cancel future start, if any; stop the animation | 108 | // cancel future start, if any; stop the animation |
| 81 | function stop() { | 109 | function stop() { |
| 82 | if (wait) { | 110 | if (wait) { |
| 111 | + dbg('start CANCELED'); | ||
| 83 | $timeout.cancel(wait); | 112 | $timeout.cancel(wait); |
| 84 | wait = null; | 113 | wait = null; |
| 85 | } | 114 | } |
| ... | @@ -92,11 +121,16 @@ | ... | @@ -92,11 +121,16 @@ |
| 92 | } | 121 | } |
| 93 | 122 | ||
| 94 | angular.module('onosLayer') | 123 | angular.module('onosLayer') |
| 95 | - .factory('LoadingService', ['$log', '$timeout', 'ThemeService', | 124 | + .factory('LoadingService', |
| 96 | - function (_$log_, _$timeout_, _ts_) { | 125 | + ['$log', '$timeout', 'ThemeService', 'FnService', |
| 126 | + | ||
| 127 | + function (_$log_, _$timeout_, _ts_, _fs_) { | ||
| 97 | $log = _$log_; | 128 | $log = _$log_; |
| 98 | $timeout = _$timeout_; | 129 | $timeout = _$timeout_; |
| 99 | ts = _ts_; | 130 | ts = _ts_; |
| 131 | + fs = _fs_; | ||
| 132 | + | ||
| 133 | + preloadImages(); | ||
| 100 | 134 | ||
| 101 | return { | 135 | return { |
| 102 | start: start, | 136 | start: start, | ... | ... |
| ... | @@ -251,6 +251,17 @@ | ... | @@ -251,6 +251,17 @@ |
| 251 | return debugFlags[tag]; | 251 | return debugFlags[tag]; |
| 252 | } | 252 | } |
| 253 | 253 | ||
| 254 | + // output debug message to console, if debug tag set... | ||
| 255 | + // e.g. fs.debug('mytag', arg1, arg2, ...) | ||
| 256 | + function debug(tag) { | ||
| 257 | + var args; | ||
| 258 | + if (debugOn(tag)) { | ||
| 259 | + args = Array.prototype.slice.call(arguments, 1); | ||
| 260 | + args.unshift('['+tag+']'); | ||
| 261 | + $log.debug.apply(this, args); | ||
| 262 | + } | ||
| 263 | + } | ||
| 264 | + | ||
| 254 | angular.module('onosUtil') | 265 | angular.module('onosUtil') |
| 255 | .factory('FnService', | 266 | .factory('FnService', |
| 256 | ['$window', '$location', '$log', function (_$window_, $loc, _$log_) { | 267 | ['$window', '$location', '$log', function (_$window_, $loc, _$log_) { |
| ... | @@ -273,6 +284,7 @@ | ... | @@ -273,6 +284,7 @@ |
| 273 | isSafari: isSafari, | 284 | isSafari: isSafari, |
| 274 | isFirefox: isFirefox, | 285 | isFirefox: isFirefox, |
| 275 | debugOn: debugOn, | 286 | debugOn: debugOn, |
| 287 | + debug: debug, | ||
| 276 | find: find, | 288 | find: find, |
| 277 | inArray: inArray, | 289 | inArray: inArray, |
| 278 | removeFromArray: removeFromArray, | 290 | removeFromArray: removeFromArray, | ... | ... |
-
Please register or login to post a comment