From cdf8c334b42ff0e2b4d21feeeedd4ebc1da93151 Mon Sep 17 00:00:00 2001 From: Aysam Guerler Date: Thu, 19 Sep 2013 22:53:34 -0400 Subject: [PATCH] Drag&drop multiple file upload: updates and fixes --- .../webapps/galaxy/api/history_contents.py | 9 +- static/scripts/galaxy.modal.js | 14 +- static/scripts/galaxy.upload.js | 313 ++++++++++++++---- static/scripts/utils/galaxy.uploadbox.js | 258 ++++++++++----- static/style/blue/base.css | 15 +- static/style/blue/sprite-fugue.png | Bin 26025 -> 69891 bytes static/style/blue/sprite-history-buttons.png | Bin 2227 -> 9477 bytes static/style/blue/sprite-history-states.png | Bin 1190 -> 3765 bytes static/style/src/less/upload.less | 127 ++++--- 9 files changed, 506 insertions(+), 230 deletions(-) diff --git a/lib/galaxy/webapps/galaxy/api/history_contents.py b/lib/galaxy/webapps/galaxy/api/history_contents.py index 240e2f72219..091964a4721 100644 --- a/lib/galaxy/webapps/galaxy/api/history_contents.py +++ b/lib/galaxy/webapps/galaxy/api/history_contents.py @@ -235,8 +235,15 @@ class HistoryContentsController( BaseAPIController, UsesHistoryDatasetAssociatio # get file destination file_destination = dataset.get_file_name() - # save file locally + # check if the directory exists + dn = os.path.dirname(file_destination) + if not os.path.exists(dn): + os.makedirs(dn) + + # get file and directory names fn = os.path.basename(content.filename) + + # save file locally open(file_destination, 'wb').write(content.file.read()) # log diff --git a/static/scripts/galaxy.modal.js b/static/scripts/galaxy.modal.js index 523dfdfc3f5..93894602701 100644 --- a/static/scripts/galaxy.modal.js +++ b/static/scripts/galaxy.modal.js @@ -77,13 +77,25 @@ var GalaxyModal = Backbone.View.extend( // link functions $.each(options.buttons, function(name, value) { - footer.append($('').text(name).click(value)).append(" "); + footer.append($('').text(name).click(value)).append(" "); }); } else // default close button footer.append($('').text('Close').click(function() { self.hide() })).append(" "); }, + // enable buttons + enable: function(name) + { + $(this.el).find('#' + String(name).toLowerCase()).prop('disabled', false); + }, + + // disable buttons + disable: function(name) + { + $(this.el).find('#' + String(name).toLowerCase()).prop('disabled', true); + }, + /* HTML TEMPLATES */ diff --git a/static/scripts/galaxy.upload.js b/static/scripts/galaxy.upload.js index 1dfa61ecfe3..cb12793cf06 100644 --- a/static/scripts/galaxy.upload.js +++ b/static/scripts/galaxy.upload.js @@ -1,5 +1,5 @@ /* - galaxy upload v1.0 + galaxy upload */ // dependencies @@ -14,12 +14,20 @@ var GalaxyUpload = Backbone.View.extend( // button button_show : null, - // file counter - file_counter: 0, + // upload mod + uploadbox: null, // initialize initialize : function() { + // wait for galaxy history panel (workaround due to the use of iframes) + if (!Galaxy.currHistoryPanel) + { + var self = this; + window.setTimeout(function() { self.initialize() }, 500) + return; + } + // add activate icon var self = this; this.button_show = new mod_master.GalaxyMasterIcon ( @@ -37,87 +45,252 @@ var GalaxyUpload = Backbone.View.extend( // events events : { - 'mouseover' : 'event_mouseover', - 'mouseleave' : 'event_mouseleave' + 'mouseover' : 'event_mouseover', + 'mouseleave' : 'event_mouseleave' }, // mouse over event_mouseover : function (e) { - $('#galaxy-upload-box').addClass('highlight'); }, // mouse left event_mouseleave : function (e) { - $('#galaxy-upload-box').removeClass('highlight'); }, // start - event_start : function(index, file, message) + event_announce : function(index, file, message) { - // make id - var id = '#galaxy-upload-file-' + index; + // hide info + this.uploadbox.info().hide(); - // add tag - $('#galaxy-upload-box').append(this.template_file(id)); + // make id + var id = '#upload-' + index; + + // add upload item + $(this.el).append(this.template_file(id)); + + // scroll to bottom + $(this.el).scrollTop($(this.el).prop('scrollHeight')); + + // access upload item + var it = this.get_upload_item(index); + + // fade in + it.fadeIn(); // update title - $('#galaxy-upload-file-' + index).find('.title').html(file.name); + it.find('.title').html(file.name); + // configure select field + it.find('#extension').select2( + { + placeholder: 'Auto-detect', + width: 'copy', + ajax: { + url: "http://www.weighttraining.com/sm/search", + dataType: 'jsonp', + quietMillis: 100, + data: function(term, page) + { + return { + types: ["exercise"], + limit: -1, + term: term + }; + }, + results: function(data, page) + { + return { results: data.results.exercise } + } + }, + formatResult: function(exercise) + { + return "
" + exercise.term + "
"; + }, + formatSelection: function(exercise) + { + return exercise.term; + }, + initSelection : function (element, callback) + { + var elementText = $(element).attr('data-init-text'); + callback({"term":elementText}); + } + }); + + // add functionality to remove button + var self = this; + it.find('.remove').on('click', function() { self.event_remove (index) }); + // initialize progress this.event_progress(index, file, 0); - // update counter - this.file_counter++; - this.refresh(); + // update button status + this.modal.enable('Upload'); + this.modal.enable('Reset'); + }, + + // start + event_initialize : function(index, file, message) + { + // update on screen counter + this.button_show.number(message); + + // get element + var it = this.get_upload_item(index); + + // read in configuration + var data = { + source : "upload", + space_to_tabs : it.find('#space_to_tabs').is(':checked'), + extension : it.find('#extension').val() + } + + // return additional data to be send with file + return data; }, // progress event_progress : function(index, file, message) { - // get progress bar - var el = $('#galaxy-upload-file-' + index); + // get element + var it = this.get_upload_item(index); // get value var percentage = parseInt(message); // update progress - el.find('.progress').css({ width : percentage + '%' }); + it.find('.progress-bar').css({ width : percentage + '%' }); // update info - el.find('.info').html(percentage + '% of ' + this.size_to_string (file.size)); + it.find('.info').html(percentage + '% of ' + this.size_to_string (file.size)); }, // end event_success : function(index, file, message) - { + { + // get element + var it = this.get_upload_item(index); + + // update progress frame + it.addClass('panel-success'); + it.removeClass('panel-default'); + // update galaxy history Galaxy.currHistoryPanel.refresh(); - // update counter - this.file_counter--; - this.refresh(); + // make sure progress is shown correctly + this.event_progress(index, file, 100); + + // update on screen counter + this.button_show.number(''); }, // end event_error : function(index, file, message) { - // get file box - var el = $('#galaxy-upload-file-' + index); + // get element + var it = this.get_upload_item(index); // update progress frame - el.find('.progress-frame').addClass('failed'); + it.addClass('panel-danger'); + it.removeClass('panel-default'); - // update error message - el.find('.error').html("Failed: " + message); - - // update progress + // remove progress bar + it.find('.progress').remove(); + + // write error message + it.find('.error').html('Failed: ' + message); + + // make sure progress is shown correctly this.event_progress(index, file, 0); - // update counter - this.file_counter--; - this.refresh(); + // update on screen counter + this.button_show.number(''); + }, + + // start upload process + event_upload : function() + { + // hide configuration + $(this.el).find('.panel-body').hide(); + + // switch icon + $(this.el).find('.remove').each(function() + { + $(this).removeClass('fa-icon-trash'); + $(this).addClass('fa-icon-caret-down'); + }); + + // update button status + this.modal.disable('Upload'); + + // configure url + var current_history = Galaxy.currHistoryPanel.model.get('id'); + this.uploadbox.configure({url : galaxy_config.root + "api/histories/" + current_history + "/contents"}); + + // initiate upload procedure in plugin + this.uploadbox.upload(); + }, + + // remove all + event_reset : function() + { + // remove from screen + var panels = $(this.el).find('.panel'); + var self = this; + panels.fadeOut({complete: function() + { + // remove panels + panels.remove(); + + // show on screen info + self.uploadbox.info().fadeIn(); + }}); + + // update button status + this.modal.disable('Upload'); + this.modal.disable('Reset'); + + // remove from queue + this.uploadbox.reset(); + }, + + // remove item from upload list + event_remove : function(index) + { + // remove + var self = this; + var it = this.get_upload_item(index); + + // fade out and update button status + it.fadeOut({complete: function() + { + // remove from screen + it.remove(); + + // remove from queue + self.uploadbox.remove(index); + + // update reset button + if ($(self.el).find('.panel').length > 0) + self.modal.enable('Reset'); + else { + // disable reset button + self.modal.disable('Reset'); + + // show on screen info + self.uploadbox.info().fadeIn(); + } + + // update upload button + if (self.uploadbox.length() > 0) + self.modal.enable('Upload'); + else + self.modal.disable('Upload'); + }}); }, // show/hide upload frame @@ -126,14 +299,6 @@ var GalaxyUpload = Backbone.View.extend( // prevent default e.preventDefault(); - // wait for galaxy history panel (workaround due to the use of iframes) - if (!Galaxy.currHistoryPanel) - { - var self = this; - window.setTimeout(function() { self.event_show(e) }, 200) - return; - } - // create modal if (!this.modal) { @@ -142,44 +307,45 @@ var GalaxyUpload = Backbone.View.extend( this.modal = new mod_modal.GalaxyModal( { title : 'Upload files from your local drive', - body : this.template(), + body : this.template('upload-box'), buttons : { - 'Close' : function() {self.modal.hide()} + 'Select' : function() {self.uploadbox.select()}, + 'Upload' : function() {self.event_upload()}, + 'Reset' : function() {self.event_reset()}, + 'Close' : function() {self.modal.hide()} } }); - // get current history - var current_history = Galaxy.currHistoryPanel.model.get('id'); - + // set element + this.setElement('#upload-box'); + // file upload var self = this; - $('#galaxy-upload-box').uploadbox( + this.uploadbox = this.$el.uploadbox( { - url : galaxy_config.root + "api/histories/" + current_history + "/contents", dragover : self.event_mouseover, dragleave : self.event_mouseleave, - start : function(index, file, message) { self.event_start(index, file, message) }, + announce : function(index, file, message) { self.event_announce(index, file, message) }, + initialize : function(index, file, message) { return self.event_initialize(index, file, message) }, success : function(index, file, message) { self.event_success(index, file, message) }, progress : function(index, file, message) { self.event_progress(index, file, message) }, error : function(index, file, message) { self.event_error(index, file, message) }, - data : {source : "upload"} }); - // set element - this.setElement('#galaxy-upload-box'); + // update button status + this.modal.disable('Upload'); + this.modal.disable('Reset'); } - + // show modal this.modal.show(); }, - // update counter - refresh: function () + // get upload item + get_upload_item: function(index) { - if (this.file_counter > 0) - this.button_show.number(this.file_counter); - else - this.button_show.number(''); + // get element + return $(this.el).find('#upload-' + index); }, // to string @@ -197,21 +363,32 @@ var GalaxyUpload = Backbone.View.extend( }, // load html template - template: function() + template: function(id) { - return '
'; + return '
'; }, // load html template template_file: function(id) { - return '
' + - '
' + - '
' + - '
' + - '
' + + return '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '
' + + '' + + '
' + + '' + - '
' + '
'; } }); diff --git a/static/scripts/utils/galaxy.uploadbox.js b/static/scripts/utils/galaxy.uploadbox.js index 5f67ccaf486..d7d5cb57d92 100755 --- a/static/scripts/utils/galaxy.uploadbox.js +++ b/static/scripts/utils/galaxy.uploadbox.js @@ -1,5 +1,5 @@ /* - galaxy upload lib v1.0 - uses FileReader, FormData and XMLHttpRequest + galaxy upload lib - uses FileReader, FormData and XMLHttpRequest */ ;(function($) { @@ -11,67 +11,71 @@ { url : '', paramname : 'content', - maxfilesize : 2048, - data : {}, + maxfilesize : 250, dragover : function() {}, dragleave : function() {}, + announce : function() {}, initialize : function() {}, - start : function() {}, progress : function() {}, success : function() {}, error : function(index, file, message) { alert(message); }, error_browser : "Your browser does not support drag-and-drop file uploads.", - error_filesize : "This file is too large. Please use an FTP client to upload it.", - error_default : "The upload failed. Please make sure the file is available and accessible.", - text_default : "Drag&drop files here or click to browse your local drive.", - text_degrade : "Click here to browse your local drive.

Unfortunately, your browser does not support multiple file uploads or drag&drop.
Please upgrade to i.e. Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+." + error_filesize : "This file is too large (>250MB). Please use an FTP client to upload it.", + error_default : "Please make sure the file is available.", + text_default : "Drag&drop files into this box or click 'Select' to select files!", + text_degrade : "Unfortunately, your browser does not support multiple file uploads or drag&drop.
Please upgrade to i.e. Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+." } - // global file queue - var queue = []; + // options + var opts = {}; + + // file queue + var queue = {}; - // global counter for file being currently processed - var queue_index = -1; + // counter for file being currently processed + var queue_index = 0; - // global queue status + // queue length + var queue_length = 0; + + // indicates if queue is currently running var queue_status = false; + // element + var el = null; + // attach to element $.fn.uploadbox = function(options) { // parse options - var opts = $.extend({}, default_opts, options); + opts = $.extend({}, default_opts, options); // compatibility var mode = window.File && window.FileReader && window.FormData && window.XMLHttpRequest; + // element + el = this; + // append upload button - this.append(''); - this.append('
'); + el.append(''); + el.append('
'); // set info text if (mode) - this.find('#uploadbox_info').html(opts.text_default); + el.find('#uploadbox_info').html(opts.text_default); else - this.find('#uploadbox_info').html(opts.text_degrade); + el.find('#uploadbox_info').html(opts.text_degrade); // attach events - this.on('drop', drop); - this.on('dragover', dragover); - this.on('dragleave', dragleave); - - // attach click event - this.on('click', function(e) - { - e.stopPropagation(); - $('#uploadbox_input').trigger(e); - }); + el.on('drop', drop); + el.on('dragover', dragover); + el.on('dragleave', dragleave); // attach change event $('#uploadbox_input').change(function(e) { - var files = e.target.files; - upload(files); + // add files to queue + add(e.target.files); }); // drop event @@ -81,11 +85,8 @@ if(!e.dataTransfer) return; - // get files from event - var files = e.dataTransfer.files; - - // start upload - upload(files); + // add files to queue + add(e.dataTransfer.files); // prevent default e.preventDefault(); @@ -98,14 +99,14 @@ function dragover(e) { e.preventDefault(); - opts.dragover.call(this, e); + opts.dragover.call(e); } // drag leave function dragleave(e) { e.stopPropagation(); - opts.dragleave.call(this, e); + opts.dragleave.call(e); } // progress @@ -117,39 +118,61 @@ } // respond to an upload request - function upload(files) + function add(files) { - // get current queue size - var queue_sofar = queue.length; - // add new files to queue - for (var index = 0; index < files.length; index++) - queue.push(files[index]); + for (var i = 0; i < files.length; i++) + { + // new identifier + var index = String(++queue_index); - // tell client about new uploads - for (var index = queue_sofar; index < queue.length; index++) - opts.start(index, queue[index], ""); + // add to queue + queue[index] = files[i]; - // initiate processing loop if process loop is not running already - if (!queue_status) - process(); + // increase counter + queue_length++; + + // announce + opts.announce(index, queue[index], ""); + } } + // remove entry from queue + function remove(index) + { + if (queue[index]) + { + // remove from queue + delete queue[index]; + + // update counter + queue_length--; + } + } + // process an upload, recursive function process() { - // check if for files - if (queue_index + 1 == queue.length) + // get an identifier from the queue + var index = -1; + for (var key in queue) { - queue_status = false; - return; + index = key; + break; } - // set status - queue_status = true; + // validate + if (queue_length == 0) + return; - // identify current index - var index = ++queue_index; + // get current file from queue + var file = queue[index]; + + // remove from queue + remove(index) + + // start + var data = opts.initialize(index, file, length); // add file to queue try @@ -158,50 +181,45 @@ var reader = new FileReader(); // identify maximum file size - var file = queue[index]; var filesize = file.size; var maxfilesize = 1048576 * opts.maxfilesize; - + // set index reader.index = index; if (filesize < maxfilesize) { - // link loadend is always called at the end - reader.onloadend = function(e) + // link load + reader.onload = function(e) { - send(index, file) + send(index, file, data) }; // link error reader.onerror = function(e) { - opts.error(index, file, opts.error_default); - queue_status = false; + error(index, file, opts.error_default); }; // read data reader.readAsDataURL(file); } else { // skip file - opts.error(index, file, opts.error_filesize); - - // restart process - process(); + error(index, file, opts.error_filesize); } } catch (err) { // parse error - opts.error(index, file, err); + error(index, file, err); } } // send file - function send (index, file) + function send (index, file, data) { // construct form data var formData = new FormData(); - for (var key in opts.data) - formData.append(key, opts.data[key]); + for (var key in data) + formData.append(key, data[key]); formData.append(opts.paramname, file, file.name); // prepare request @@ -237,22 +255,94 @@ // pass any error to the error option if (xhr.status < 200 || xhr.status > 299) { - // request error - opts.error(index, file, xhr.statusText + " (Server Code " + xhr.status + ")"); + // format error + var text = xhr.statusText; + if (!xhr.statusText) + text = opts.error_default; - // reset status - queue_status = false; - } else { + // request error + error(index, file, text + " (Server Code " + xhr.status + ")"); + } else // parse response - opts.success(index, file, response); - - // upload next file - process(); - } + success(index, file, response); } } - // return - return this; + // success + function success (index, file, msg) + { + // parse message + opts.success(index, file, msg); + + // restart process after success + process(); + } + + // error + function error (index, file, err) + { + // parse error + opts.error(index, file, err); + + // restart process after error + process(); + } + + /* + public interface + */ + + // open file browser for selection + function select() + { + $('#uploadbox_input').trigger('click'); + } + + // remove all entries from queue + function reset(index) + { + for (index in queue) + remove(index); + } + + // initiate upload process + function upload() + { + if (!queue_status) + process(); + } + + // current queue length + function length() + { + return queue_length; + } + + // set options + function configure(options) + { + // update current configuration + opts = $.extend({}, opts, options); + + // return new configuration + return opts; + } + + // visibility of on screen information + function info() + { + return el.find('#uploadbox_info'); + } + + // export functions + return { + 'select' : select, + 'remove' : remove, + 'upload' : upload, + 'reset' : reset, + 'length' : length, + 'configure' : configure, + 'info' : info + }; } })(jQuery); \ No newline at end of file diff --git a/static/style/blue/base.css b/static/style/blue/base.css index 518608b656d..fe3688e99ee 100644 --- a/static/style/blue/base.css +++ b/static/style/blue/base.css @@ -1122,15 +1122,12 @@ ul.icons{list-style-type:none;text-indent:-0.75em}ul.icons li [class^="fa-icon-" .galaxy-frame .frame .f-close{right:5px;top:1px} .galaxy-frame .frame .f-pin{left:6px;top:1px} .galaxy-frame .frame .f-resize{background:#fff;width:16px;height:16px;color:#2c3143;right:0px;bottom:0px;text-align:center;line-height:16px;border:0px} -.galaxy-upload-box{width:100%;height:200px;max-height:200px;padding:10px 0px 0px 0px;text-align:center;cursor:pointer;overflow:scroll;font-size:12px;line-height:1.428571429;-moz-border-radius:5px;border-radius:5px;border:1px dashed #bfbfbf}.galaxy-upload-box .corner-soft{-moz-border-radius:3px;border-radius:3px} -.galaxy-upload-box .shadow{-webkit-box-shadow:0 0 2px rgba(0,0,0,0.3)} -.galaxy-upload-box .highlight{border:1px dashed #333} -.galaxy-upload-box .file{position:relative;margin:5px 20px 5px 20px;border:1px solid #bfbfbf;color:#333}.galaxy-upload-box .file .title{margin:3px 130px 0px 5px;text-align:left;overflow:hidden;border:0px} -.galaxy-upload-box .file .progress-frame{border:0px;margin:0px 5px 3px 5px;height:7px;background:#bfbfbf} -.galaxy-upload-box .file .progress{background:#5cb85c;height:100%;width:0%} -.galaxy-upload-box .file .failed{background:#d9534f} -.galaxy-upload-box .file .error{font-size:11px;text-align:left;overflow:hidden;margin:0px 5px 0px 5px} -.galaxy-upload-box .file .info{position:absolute;top:4px;right:5px;font-size:11px;text-align:right;overflow:hidden;max-width:100px;max-height:12px} +.upload-box{width:100%;height:250px;max-height:250px;text-align:center;overflow:scroll;font-size:12px;line-height:1.33;-moz-border-radius:5px;border-radius:5px;border:1px dashed #bfbfbf;padding:20px}.upload-box .panel{display:none}.upload-box .panel .panel-heading{position:relative;height:19px;padding:5px}.upload-box .panel .panel-heading .title{position:absolute;top:2px;font-weight:normal;text-align:left;margin:0px;max-width:300px;overflow:hidden} +.upload-box .panel .panel-heading .info{position:absolute;top:3px;font-weight:normal;right:20px;text-align:right;margin:0px} +.upload-box .panel .panel-heading .remove{position:absolute;cursor:pointer;top:0px;right:3px} +.upload-box .panel .panel-body{position:relative;padding:5px} +.upload-box .panel .panel-footer{position:relative;height:20px;padding:0px}.upload-box .panel .panel-footer .progress{height:10px;margin:5px} +.upload-box .panel .panel-footer .error{font-weight:normal;margin:2px} .unselectable{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none} .parent-width{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;width:100%;*width:90%} .clear:before,.clear:after{content:" ";display:table;} diff --git a/static/style/blue/sprite-fugue.png b/static/style/blue/sprite-fugue.png index c0410ecd14724c9e0d7d8d12c17fddbee5870f1d..a8989a41de4cef05595e091ca443815716a339d8 100644 GIT binary patch literal 69891 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

{fs}ysPM)`me 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

    ?+C=EK??5b;{x|x;WSBf`0I!x5 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 diff --git a/static/style/blue/sprite-history-buttons.png b/static/style/blue/sprite-history-buttons.png index 7e63ae25257630d1fe7840fe2256ba4b53ea0b04..a2d4f4b3337125e38691860d7bd2c0c948d737ba 100644 GIT binary patch literal 9477 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 K{=a;hKldM}3bW|| delta 2215 zcmV;Y2w3-pO0yA=B!32COGiWi000000Qp0^e*gdoXh}ptRA}DqnLUW(SQ5v7Ju_ep z3`m*9av%j8bZ}q=3+>>*3Kqt}!Ya7H(MT6z6VkW7C@VXAN?=fSgIg|kV1%`r++T61eW_6vF^qttAJ`f$c_1iDfgpsuRtm` z_BU+U8Opy?I)AAC5km9<2MB!Me^cWLz^?NiS2mnxS@zGjZ{M1VqV&G_;)`T5nanD@ z!P~cQOMGZnsO4B-oUm z>hpsG4X`#n{j{z^Js&iiO?h&1B83ocUASKtc3oFC8V%WKH14fcKw4E5>?n#*6s5HG z`T037UVpquJD?;-lJzfngXn(5r210A9`;RDXF@fVN>6N|GeFuB!oFzOey#uIuVa zl3*By0<;UE#}$CZ?d|QSNs>GpjYcF%@@zJneF|8v>*_^>P9~ED@E!1D9pFdchuLga zf~0Bstle%ud;R(~p679PcD7)ZNbYtS@~eKoFQk-0N-6sNz5u?e8?bJJpGA*r|4W0t zet-R%;c!S8hJ5qQH&vVbQ0NaoCDnVvg~86w&N6@`Nt8Un>St$X-X=SA48ssoO5wV$ z08Us1R1^5hbzLE)6oz34RsjXvzl}w(==1q}!Ro$$Si{SJV3Q{rz|lHuvmuoKq+ftk z);Awp$pB7S)q_%1RS6Wesm&>JWwOTSi;YY__UR_<4Z{<#>Bd@NmN&r<=rIb=G zm&-z}4*Zl4hJco)X^EI532_{+HIk-juu85aeG7c6s;a!Yx{^0HH&x?FKnfx1Du0}A zGGgGmuI70jVHg5n+crs(RE;DntX?RiYLQhf^HgAzrl}K#A=lT}+}+)wsw%g)w=|ngY}@AW z@Gt?Kdu3iO9L8~My?OJ7ZTUdcG=Ch&Ndddsv5ew4w!$!EI-TM;4xZg-p=uOtWh)^LWoYk-Lp~%QxUMUO5bh(u3&W7RyE`6|5AuS0@CYy!Md9e^ zh~f$t$A9_qWhpcm3`o-y+qTg(4MkA^%qPI8+wB6Fx~`kuZkJxK$9O#cD1RSVmW8Hi zJb(T?efsoi42_*>}l4u8H1oCC+KMk6sh z+TJ?3olZwyTwK&g#e37u>FH^G#xC|1?i7RSg7UfYm-_--6mv8wrM$SfD878`MFt?3 z%Vi0Wm%ROb0lqB;a8gQnb91wEBwi&ISWc(Y5+L`$>AKD9;-Ian>M_7#vA{GJbxY+%}26Jg+UZW9|@;v z%HiQ*>ihoLMgSp1D@{}D{rmR}27_`v2m;#eHq<^$tUJLViXvRsEned!NkSAwSe6B= zG1x}esV65Vve9VBdOm2iT2cscQJ1Noz*#I7<&-}ki!vUMv2A)nq%_s33XZ*iJ@T_ zcBMb`>fhaV0i<~VjdS6xiF6&nm{ouLhF^kq)dvmW@4#oQlFEY0OnD!GzjivEzXd^{ zDT-pwX0y+Le*yp57oayB4wYW7hvPV;Y5L^dyLbNv%73)BEhid=VR%WBlnbV5GM~@S zsq_rnQd+y759afE%8rJkAQc!am&@`>+qTVQGPwlaRX1)rLA#z0CX-3VDz&oIDi#0$002ovPDHLkV1f(sIXnOW diff --git a/static/style/blue/sprite-history-states.png b/static/style/blue/sprite-history-states.png index 1fe1c4301387507d4d9b181bc6b66cbb714f3cfb..bc6eb2f349e40dbc1dbf63c43d0dd2306aa4c965 100644 GIT binary patch literal 3765 zcmeHKZ%CDA6#u>Ny_QyLnbQzKVT6AI+f=YY(5{*D&ds#K5%yukK2%E>Xd}=pB_T)q z(qHCc--aKAM7I&q(oIHv=-QaYLI*mU{h1oNDQaHteRqD(`@XmL^@b4p+JWoyJm)#T zbIyC7bDrneR$1|0{F<~i0OI{+C3|E{l;8H)Rr2@xwm$uO# z_SXSxH}a>U{mLdF;Uj;EZ(muw_CdmT|7arQBE#pafUf&t7=_TZEE$Jn3?Ll7ruFsp zIE5o%qqsO#gf7cwl~Z8Zyi1fF)_QyYCST_t1q23VT7{e(vZ5(Fn>;EWwB${&vZ!e( zIB)k(ROwHdJ}Z$5I_K_un;(Qj39vf97UcuuL=&A zq>C5j5abkmJ`<3T0319h=imkI-UZIcAsB`!D?!!7|2v{h)LTTs)>fdPz!apV;bEYz z4w#>}rMMT+1(@}MBeSI?;M_SN7&KiBg@6ke+&}^Zr>k>xqSvhhnwx=`7=S>J2WV&j zl9QcMv^+%1fe3e%F3Hy=`9DiiE@?M;&-TgHV)A%p+jqRGe7VY<6e&sEMyhueF3aYMujJAq z4&xoDSJDI%7{faZDNfDKxh8L-0lEAPj4uU|M+NF8Q5IJKX2<5>_uL_Tn7Er!O0hhI z<{3bRnD2I4Sw8=9b02oZzl&S5x3FV)yKEZ_%WnGOUoPxi@83|PfFUD<+P{t{pxPH4 z-G1>xI#DuD&=c`R`dP)jG;tAw^S?PI3UxUS*DLu}+}k2x#_?2I3pT}U!qebWoO~?L zkAsNQUS8Z*{E~GWJ#T)G;`kCAdE-;H_4!ymX2Sp4VrnFgZbx3pqP5%L)x7X0 zzK`phZ@{B@@bk=1=$QJ}1+*4?+!1*tzn=UGyZ$J~*y5Pl4;n!Ul4(5(EjaaY-T_>d z%}8b?c{buo#y5Dd@Bj^u<%x}^uB8I(Suw-Bh`|!1y>Qa<3}dRPl;bPupeUg1+o?%0 z)3O7=jI$D_kjG)2Mu4#i6~NVdMwR5rA6n#%*Q6A!x}*hb-GnBG8HeT8*4ETeD0Eo_ zRp30*1=ZHpqP@Kxb8~YFBnrEPf4HHcL6xMcDgwjd@L+y^epLdW7$I7I^yravQ_@aZ zM8%Y&JXs1%i$z66DdpwmsHv$zTwI*=En#$ac1nLE4UU^qC{LEBrKP1pG&WOci?mU+ zoSB)4`}glF1#X+4ZfWoGBd z$OyW-yH&t)r0bVhNXP6|pF&(|X{q#djpSu%^38X|N?}mC+*$UU78OX#?DzYn{hC65 zf4_=N*6>R^miju3vAGiDm&a$jh delta 1170 zcmV;D1a14Z9i|D8B!32COGiWi000000Qp0^e*gdkTS-JgR7l6|l}%_AXB@_V^AX+9 zxG`xOB?Me3l57HL!vwa6g1XxZTWNGF2qm6888s(k2_%EsRZ!_kO-s|#TggG_l295- zyS9~L49S}R#hJAluC5S0}HdZlP|5kR&Wr-2Y&Z+Tm5E9St{X1y?*Gd6Pc zC|tV+hY#D0fq-~_>J&huS&wY)Q7m=)c2Ru%xG(^8b-|f4AW7o8BmsnsK%iSSnVq^fZ7B50Z@lq8s)h0~{Decig5 zN!dJ(lCoL2dKEGmVa(;=`gNxfphY&%v80+BIDa0hs)SKdU~mu`8l2`C*$jZtmMvn* z9uFiE!u0$(?AQU9FN=X4%bqAc4h=zjJEYT~>o7S91AhZzpk2Gfz;fYqnUKxMMF6;Y z6H+O-Z~^Y!6D9NWV$fs~qEX1_0U}Z~Ixaa9)<|6)#N!(iR(k&o=#Zk(MH#@%Y6lQ0 zYlMO^QZRxAjDr3RRWkoUFOhtSGzB!%VOLVg1~-0m(P3JBx>K zuIXcTR_)|z<|$_%>&~(5NOn}e!LKd9G5-3u_~U0`Sp7Kdbq_on||dzE|Et zl~jVY@A3WaA5bKPUsiu+H2!tDUD=WRV)=94{maindI5lpk)iM5$x1DmD1_u2EXk@@ zUggVOUvWQqpTWli<&2T6#s`}wOr?q}8K=>nFf*$HNsG!DBLyRrLDEcIStPR>n*CDeaM*^VqA2wB^)WIs!rI!Jb=keTu9t2}(>UGP*%@-X-2fPd!J|iy z$mMd@$wI)iSzo#(eLi2~fddEV>FJ@mx|)1G&y5>5NTpKF)fbUe!r^c?a6Xkv(ca#U z+wI2V@eqr}$cx`>IeGnl|L;X4mzS3r9e*7qoleu#)Wne^N07}Qd`(RaE|<$WKv41f z{pWxtfYsGio;-O%TU#6T_4PC~G|=4K%%MYvkY$0q%#DGc<^Ae zj!($Cu9t4f7gt2r_3=VTdJ(7