From ce68f6a763ce8de8957f84af4f52dbe1d74cd232 Mon Sep 17 00:00:00 2001 From: mr Date: Tue, 8 Feb 2011 18:31:02 +0100 Subject: minor fixes and graphical progressbar from jquery-ui --- application.rb | 14 + public/javascripts/jquery-ui-progressbar.js | 49 ++++ public/javascripts/toxcreate.js | 26 ++ .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 225 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../images/ui-bg_gloss-wave_16_121212_500x100.png | Bin 0 -> 478 bytes .../ui-bg_highlight-hard_15_888888_1x100.png | Bin 0 -> 150 bytes .../ui-bg_highlight-hard_55_555555_1x100.png | Bin 0 -> 115 bytes .../ui-bg_highlight-soft_35_adadad_1x100.png | Bin 0 -> 145 bytes .../ui-bg_highlight-soft_60_dddddd_1x100.png | Bin 0 -> 106 bytes .../images/ui-bg_inset-soft_15_121212_1x100.png | Bin 0 -> 103 bytes .../progressbar/images/ui-icons_666666_256x240.png | Bin 0 -> 4369 bytes .../progressbar/images/ui-icons_aaaaaa_256x240.png | Bin 0 -> 4369 bytes .../progressbar/images/ui-icons_bbbbbb_256x240.png | Bin 0 -> 5355 bytes .../progressbar/images/ui-icons_c98000_256x240.png | Bin 0 -> 4369 bytes .../progressbar/images/ui-icons_cccccc_256x240.png | Bin 0 -> 4369 bytes .../progressbar/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../progressbar/images/ui-icons_f29a00_256x240.png | Bin 0 -> 4369 bytes public/progressbar/progressbar.css | 305 +++++++++++++++++++++ views/layout.haml | 4 +- views/model.haml | 14 +- views/style.sass | 7 +- views/validation.haml | 2 +- 23 files changed, 414 insertions(+), 7 deletions(-) create mode 100644 public/javascripts/jquery-ui-progressbar.js create mode 100644 public/progressbar/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 public/progressbar/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 public/progressbar/images/ui-bg_gloss-wave_16_121212_500x100.png create mode 100644 public/progressbar/images/ui-bg_highlight-hard_15_888888_1x100.png create mode 100644 public/progressbar/images/ui-bg_highlight-hard_55_555555_1x100.png create mode 100644 public/progressbar/images/ui-bg_highlight-soft_35_adadad_1x100.png create mode 100644 public/progressbar/images/ui-bg_highlight-soft_60_dddddd_1x100.png create mode 100644 public/progressbar/images/ui-bg_inset-soft_15_121212_1x100.png create mode 100644 public/progressbar/images/ui-icons_666666_256x240.png create mode 100644 public/progressbar/images/ui-icons_aaaaaa_256x240.png create mode 100644 public/progressbar/images/ui-icons_bbbbbb_256x240.png create mode 100644 public/progressbar/images/ui-icons_c98000_256x240.png create mode 100644 public/progressbar/images/ui-icons_cccccc_256x240.png create mode 100644 public/progressbar/images/ui-icons_cd0a0a_256x240.png create mode 100644 public/progressbar/images/ui-icons_f29a00_256x240.png create mode 100644 public/progressbar/progressbar.css diff --git a/application.rb b/application.rb index f561b54..ab6eb46 100644 --- a/application.rb +++ b/application.rb @@ -93,6 +93,20 @@ get '/model/:id/status/?' do end end +get '/model/:id/progress/?' do + response['Content-Type'] = 'text/plain' + model = ToxCreateModel.get(params[:id]) + if (task = OpenTox::Task.exist?(model.task_uri)) + task = OpenTox::Task.exist?(model.task_uri) + percentage_completed = task.metadata[OT.percentageCompleted] + end + begin + haml :model_progress, :locals=>{:percentage_completed=>percentage_completed}, :layout => false + rescue + return "unavailable" + end +end + get '/model/:id/name/?' do response['Content-Type'] = 'text/plain' model = ToxCreateModel.get(params[:id]) diff --git a/public/javascripts/jquery-ui-progressbar.js b/public/javascripts/jquery-ui-progressbar.js new file mode 100644 index 0000000..64c2a2c --- /dev/null +++ b/public/javascripts/jquery-ui-progressbar.js @@ -0,0 +1,49 @@ +/*! + * jQuery UI 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.9",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, +NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, +"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); +if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, +"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, +d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); +c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.9"})})(jQuery); +; \ No newline at end of file diff --git a/public/javascripts/toxcreate.js b/public/javascripts/toxcreate.js index 493168f..949b9ea 100755 --- a/public/javascripts/toxcreate.js +++ b/public/javascripts/toxcreate.js @@ -23,6 +23,7 @@ $(function() { $("body") var newstati = new Array; $.each(stati, function(){ + checkProgress(this, subjectstr); if(checkStatus(this, subjectstr) > 0) newstati.push(this); }); if (newstati.length > 0) var statusCheck = setTimeout('checkStati("' + newstati.join(", ") + '", "' + subjectstr + '")',10000); @@ -59,6 +60,31 @@ $(function() { }); return id; }; + + + checkProgress = function(id, subjectstr) { + var opts = {action: 'model/' + id + '/progress' + subjectstr, id: id}; + var progress_changed = $.ajax({ + url: opts.action, + async: false, + dataType: 'html', + data: { + '_method': 'get' + }, + success: function(data) { + var progress = data.trim(); + if (progress == "100") return -1; + + $("div#model_" + id + "_progress").progressbar("value", parseInt(progress)); + }, + error: function(data) { + id = -1; + } + }); + return id; + }; + + loadModel = function(id, view) { if(id == "") return -1; diff --git a/public/progressbar/images/ui-bg_flat_0_aaaaaa_40x100.png b/public/progressbar/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000..e3dcd29 Binary files /dev/null and b/public/progressbar/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/public/progressbar/images/ui-bg_glass_95_fef1ec_1x400.png b/public/progressbar/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..4443fdc Binary files /dev/null and b/public/progressbar/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/public/progressbar/images/ui-bg_gloss-wave_16_121212_500x100.png b/public/progressbar/images/ui-bg_gloss-wave_16_121212_500x100.png new file mode 100644 index 0000000..a2371bf Binary files /dev/null and b/public/progressbar/images/ui-bg_gloss-wave_16_121212_500x100.png differ diff --git a/public/progressbar/images/ui-bg_highlight-hard_15_888888_1x100.png b/public/progressbar/images/ui-bg_highlight-hard_15_888888_1x100.png new file mode 100644 index 0000000..da27188 Binary files /dev/null and b/public/progressbar/images/ui-bg_highlight-hard_15_888888_1x100.png differ diff --git a/public/progressbar/images/ui-bg_highlight-hard_55_555555_1x100.png b/public/progressbar/images/ui-bg_highlight-hard_55_555555_1x100.png new file mode 100644 index 0000000..1453bc1 Binary files /dev/null and b/public/progressbar/images/ui-bg_highlight-hard_55_555555_1x100.png differ diff --git a/public/progressbar/images/ui-bg_highlight-soft_35_adadad_1x100.png b/public/progressbar/images/ui-bg_highlight-soft_35_adadad_1x100.png new file mode 100644 index 0000000..5a5a41d Binary files /dev/null and b/public/progressbar/images/ui-bg_highlight-soft_35_adadad_1x100.png differ diff --git a/public/progressbar/images/ui-bg_highlight-soft_60_dddddd_1x100.png b/public/progressbar/images/ui-bg_highlight-soft_60_dddddd_1x100.png new file mode 100644 index 0000000..747e1fa Binary files /dev/null and b/public/progressbar/images/ui-bg_highlight-soft_60_dddddd_1x100.png differ diff --git a/public/progressbar/images/ui-bg_inset-soft_15_121212_1x100.png b/public/progressbar/images/ui-bg_inset-soft_15_121212_1x100.png new file mode 100644 index 0000000..9df26a0 Binary files /dev/null and b/public/progressbar/images/ui-bg_inset-soft_15_121212_1x100.png differ diff --git a/public/progressbar/images/ui-icons_666666_256x240.png b/public/progressbar/images/ui-icons_666666_256x240.png new file mode 100644 index 0000000..f87de1c Binary files /dev/null and b/public/progressbar/images/ui-icons_666666_256x240.png differ diff --git a/public/progressbar/images/ui-icons_aaaaaa_256x240.png b/public/progressbar/images/ui-icons_aaaaaa_256x240.png new file mode 100644 index 0000000..64af7f1 Binary files /dev/null and b/public/progressbar/images/ui-icons_aaaaaa_256x240.png differ diff --git a/public/progressbar/images/ui-icons_bbbbbb_256x240.png b/public/progressbar/images/ui-icons_bbbbbb_256x240.png new file mode 100644 index 0000000..9d71edb Binary files /dev/null and b/public/progressbar/images/ui-icons_bbbbbb_256x240.png differ diff --git a/public/progressbar/images/ui-icons_c98000_256x240.png b/public/progressbar/images/ui-icons_c98000_256x240.png new file mode 100644 index 0000000..ba8dafc Binary files /dev/null and b/public/progressbar/images/ui-icons_c98000_256x240.png differ diff --git a/public/progressbar/images/ui-icons_cccccc_256x240.png b/public/progressbar/images/ui-icons_cccccc_256x240.png new file mode 100644 index 0000000..9254e05 Binary files /dev/null and b/public/progressbar/images/ui-icons_cccccc_256x240.png differ diff --git a/public/progressbar/images/ui-icons_cd0a0a_256x240.png b/public/progressbar/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..2ab019b Binary files /dev/null and b/public/progressbar/images/ui-icons_cd0a0a_256x240.png differ diff --git a/public/progressbar/images/ui-icons_f29a00_256x240.png b/public/progressbar/images/ui-icons_f29a00_256x240.png new file mode 100644 index 0000000..540e43b Binary files /dev/null and b/public/progressbar/images/ui-icons_f29a00_256x240.png differ diff --git a/public/progressbar/progressbar.css b/public/progressbar/progressbar.css new file mode 100644 index 0000000..92e3f82 --- /dev/null +++ b/public/progressbar/progressbar.css @@ -0,0 +1,305 @@ +/* + * jQuery UI CSS Framework 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?tr&ffDefault=Helvetica,%20Arial,%20sans-serif&fwDefault=normal&fsDefault=1.1&fsDefaultUnit=em&cornerRadius=5&cornerRadiusUnit=px&bgColorHeader=888888&bgTextureHeader=04_highlight_hard.png&bgImgOpacityHeader=15&borderColorHeader=404040&fcHeader=ffffff&iconColorHeader=cccccc&bgColorContent=121212&bgTextureContent=12_gloss_wave.png&bgImgOpacityContent=16&borderColorContent=404040&fcContent=eeeeee&iconColorContent=bbbbbb&bgColorDefault=adadad&bgTextureDefault=03_highlight_soft.png&bgImgOpacityDefault=35&borderColorDefault=cccccc&fcDefault=333333&iconColorDefault=666666&bgColorHover=dddddd&bgTextureHover=03_highlight_soft.png&bgImgOpacityHover=60&borderColorHover=dddddd&fcHover=000000&iconColorHover=c98000&bgColorActive=121212&bgTextureActive=05_inset_soft.png&bgImgOpacityActive=15&borderColorActive=000000&fcActive=ffffff&iconColorActive=f29a00&bgColorHighlight=555555&bgTextureHighlight=04_highlight_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=404040&fcHighlight=cccccc&iconColorHighlight=aaaaaa&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Helvetica, Arial, sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Helvetica, Arial, sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #404040; background: #121212 url(images/ui-bg_gloss-wave_16_121212_500x100.png) 50% top repeat-x; color: #eeeeee; } +.ui-widget-content a { color: #eeeeee; } +.ui-widget-header { border: 1px solid #404040; background: #888888 url(images/ui-bg_highlight-hard_15_888888_1x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #cccccc; background: #adadad url(images/ui-bg_highlight-soft_35_adadad_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #333333; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #333333; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #dddddd; background: #dddddd url(images/ui-bg_highlight-soft_60_dddddd_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #000000; } +.ui-state-hover a, .ui-state-hover a:hover { color: #000000; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #000000; background: #121212 url(images/ui-bg_inset-soft_15_121212_1x100.png) 50% 50% repeat-x; font-weight: normal; color: #ffffff; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #ffffff; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #404040; background: #555555 url(images/ui-bg_highlight-hard_55_555555_1x100.png) 50% top repeat-x; color: #cccccc; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #cccccc; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_bbbbbb_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_bbbbbb_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_cccccc_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_666666_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_c98000_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_f29a00_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_aaaaaa_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; } +.ui-corner-tr { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; } +.ui-corner-br { -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } +.ui-corner-top { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } +.ui-corner-right { -moz-border-radius-topright: 5px; -webkit-border-top-right-radius: 5px; border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -webkit-border-bottom-right-radius: 5px; border-bottom-right-radius: 5px; } +.ui-corner-left { -moz-border-radius-topleft: 5px; -webkit-border-top-left-radius: 5px; border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -webkit-border-bottom-left-radius: 5px; border-bottom-left-radius: 5px; } +.ui-corner-all { -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Progressbar 1.8.9 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:20px; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:20px; } \ No newline at end of file diff --git a/views/layout.haml b/views/layout.haml index 78af858..d54b413 100644 --- a/views/layout.haml +++ b/views/layout.haml @@ -6,7 +6,9 @@ %title ToxCreate %script{:type => "text/javascript", :src => "javascripts/jquery.js"} %script{:type => "text/javascript", :src => "javascripts/toxcreate.js"} - %link{:rel=>'stylesheet', :href=>'stylesheets/style.css', :type => "text/css"} + %script{:type => "text/javascript", :src => "javascripts/jquery-ui-progressbar.js"} + %link{:rel=>'stylesheet', :href=>'stylesheets/style.css', :type => "text/css"} + %link{:rel=>'stylesheet', :href=>'progressbar/progressbar.css', :type => "text/css"} %body .logo diff --git a/views/model.haml b/views/model.haml index 32439a9..52d143c 100644 --- a/views/model.haml +++ b/views/model.haml @@ -14,11 +14,17 @@ %dd %span{:id => "model_#{model.id}_status", :class => "model_status"} = haml :model_status, :locals=>{:model=>model}, :layout => false - - if model.task_uri && model.status != "Completedss" + - if model.task_uri && model.status != "Completed" - if (task = OpenTox::Task.exist?(model.task_uri)) - percentage_completed = task.metadata[OT.percentageCompleted] - %span{:id => "model_#{model.id}_progress", :class => "model_progress"} - = haml :model_progress, :locals=>{:percentage_completed=>percentage_completed}, :layout => false + - js = "$('#model_#{model.id}_progress').progressbar({ value: #{percentage_completed} })"; + :javascript + $(function() { + #{js} + }); + + %div{:id => "model_#{model.id}_progress", :class => "model_progress"} + //= haml :model_progress, :locals=>{:percentage_completed=>percentage_completed}, :layout => false - if is_authorized(model.web_uri, "DELETE") ( %a{:href => url_for("/model/#{model.id}"), :id => "delete_#{model.id}", :class => 'delete'} @@ -75,4 +81,4 @@ %a{:href => File.join(model.validation_qmrf_uri,"editor")} QMRF Editor, %a{:href => "#{model.uri}.yaml#{subjectstring}"} YAML %em (experts, models cannot be represented in Excel) - = haml :validation, :locals=>{:model=>model}, :layout => false + = haml :validation, :locals=>{:model=>model,:subjectstring => subjectstring}, :layout => false diff --git a/views/style.sass b/views/style.sass index 27bf6fe..a2b8191 100644 --- a/views/style.sass +++ b/views/style.sass @@ -249,4 +249,9 @@ dl background-color: #FEFEFF .edit_button - font-size: 0.5em \ No newline at end of file + font-size: 0.5em + +.model_progress + width: 240px + height: 20px + float: right \ No newline at end of file diff --git a/views/validation.haml b/views/validation.haml index 5fc7371..ce35536 100644 --- a/views/validation.haml +++ b/views/validation.haml @@ -8,7 +8,7 @@ - if model.validation_report_uri %dt Detailed report: %dd - %a{:href => model.validation_report_uri, :target => "_blank"} show + %a{:href => model.validation_report_uri + subjectstring, :target => "_blank"} show %dt Number of predictions %dd= model.nr_predictions - case model.type -- cgit v1.2.3