t2-web 0.0.9 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +6 -0
- data/README +1 -1
- data/Rakefile +1 -1
- data/bin/config.ru +8 -0
- data/bin/t2_webapp.rb +83 -41
- data/doc/rdoc/CHANGES.html +15 -0
- data/doc/rdoc/README.html +1 -1
- data/doc/rdoc/created.rid +3 -3
- data/doc/rdoc/index.html +1 -1
- data/public/css/form.css +1 -0
- data/public/css/tipsy.css +1 -1
- data/public/scripts/form.js +2 -26
- data/public/scripts/results.js +62 -11
- data/views/form.haml +3 -4
- data/views/results.haml +1 -0
- metadata +5 -4
data/CHANGES
CHANGED
@@ -1,5 +1,11 @@
|
|
1
1
|
= Changes log for the Taverna via the Web Gem
|
2
2
|
|
3
|
+
== Version 0.1.0
|
4
|
+
* Results are downloaded directly and stored in tmp files - progress cycle works once
|
5
|
+
* Added rackup configuration file: config.ru
|
6
|
+
* webapp is run using rackup now to enable configuration of web server timeout
|
7
|
+
* Increased tooltip size and anchored them to the 'west'
|
8
|
+
* Port is set via: rackup -p 9494
|
3
9
|
|
4
10
|
== Version 0.0.9
|
5
11
|
* Changed " to ' in generate_header_table (header HTML block used in JS .write("") method)
|
data/README
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
Authors:: Konstantinos Karasavvas
|
5
|
-
Gem Version:: 0.0
|
5
|
+
Gem Version:: 0.1.0
|
6
6
|
Contact:: mailto:kostas.karasavvas@nbic.nl
|
7
7
|
Licence:: MIT (See LICENCE or http://www.opensource.org/licenses/mit-license)
|
8
8
|
Copyright:: (c) 2012 Netherlands Bioinformatics Centre, The Netherlands
|
data/Rakefile
CHANGED
@@ -12,7 +12,7 @@ require 'rdoc/task'
|
|
12
12
|
|
13
13
|
spec = Gem::Specification.new do |s|
|
14
14
|
s.name = 't2-web'
|
15
|
-
s.version = '0.0
|
15
|
+
s.version = '0.1.0'
|
16
16
|
s.extra_rdoc_files = ['README', 'LICENSE', 'CHANGES']
|
17
17
|
s.summary = 'Web application that generates a Web UI form for a Taverna2 workflow, given its myExperiment id, for ease of execution. The only requirement for the user is a web browser.'
|
18
18
|
s.description = s.summary
|
data/bin/config.ru
ADDED
data/bin/t2_webapp.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'rubygems' if RUBY_VERSION < '1.9'
|
4
|
-
require 'sinatra'
|
4
|
+
require 'sinatra/base'
|
5
5
|
require 'haml'
|
6
6
|
require 'open-uri'
|
7
7
|
require 'rest-client'
|
8
8
|
require 't2-server'
|
9
9
|
require 'myexperiment-rest'
|
10
10
|
require 'cgi'
|
11
|
+
require 'stringio'
|
11
12
|
#require "t2-web" TODO: move whole of WebT2App in lib
|
12
13
|
|
13
14
|
# TODO: add constants.rb file in lib for all constants (e.g. myExp user URL, other URLs
|
@@ -17,7 +18,7 @@ class WebT2App < Sinatra::Base
|
|
17
18
|
WEB_APP_NAME = "t2web"
|
18
19
|
# TODO: const for TMP_UPLOAD_PATH ? - need to read from config file?
|
19
20
|
|
20
|
-
set :port, 9494
|
21
|
+
#set :port, 9494 set from: rackup -p 9494
|
21
22
|
set :views, File.dirname(__FILE__) + '/../views'
|
22
23
|
set :public_folder, File.dirname(__FILE__) + '/../public'
|
23
24
|
|
@@ -71,7 +72,7 @@ END
|
|
71
72
|
end
|
72
73
|
|
73
74
|
|
74
|
-
# Generates the contents of the header frame
|
75
|
+
# Generates the contents of the header frame table
|
75
76
|
def generate_header_table(my_exp_wkf, my_exp_usr)
|
76
77
|
<<END
|
77
78
|
<div id='header'>
|
@@ -100,15 +101,20 @@ END
|
|
100
101
|
end
|
101
102
|
|
102
103
|
|
103
|
-
# Generates tooltip html text
|
104
|
-
def
|
105
|
-
|
104
|
+
# Generates tooltip html text with type prefix
|
105
|
+
def generate_tooltip(type, input)
|
106
|
+
if type =~ /description/i
|
107
|
+
type << CGI::unescapeHTML(input.descriptions[0])
|
108
|
+
else
|
109
|
+
type << CGI::unescapeHTML(input.examples[0])
|
110
|
+
end
|
106
111
|
end
|
107
112
|
|
113
|
+
# TODO: remove 02/04/2012
|
108
114
|
# Generates tooltip html text for textarea example
|
109
|
-
def generate_textarea_tooltip(input)
|
110
|
-
|
111
|
-
end
|
115
|
+
#def generate_textarea_tooltip(input)
|
116
|
+
# "Example: " << CGI::unescapeHTML(input.examples[0])
|
117
|
+
#end
|
112
118
|
|
113
119
|
|
114
120
|
# Generates the contents of the data-navigation frame
|
@@ -119,7 +125,8 @@ END
|
|
119
125
|
my_exp_wkf.outputs.each do |output|
|
120
126
|
data_navigation_frame << "<tr>"
|
121
127
|
if finished_execution
|
122
|
-
|
128
|
+
# TODO: currently t2_server, wid and wkf_version are not used
|
129
|
+
data_navigation_frame << "<td><a href='javascript:void(0);' onclick='parent.readTmpOutput(\\\"#{t2_server}\\\", \\\"#{uuid}\\\", " <<
|
123
130
|
"\\\"#{output.name}\\\", \\\"#{wid}\\\", \\\"#{wkf_version}\\\");'>#{output.name}</a></td><td></td>"
|
124
131
|
else
|
125
132
|
data_navigation_frame << "<td>#{output.name}</td><td><img src='/images/snake_transparent.gif' alt='Loading Content...'></td>"
|
@@ -132,17 +139,38 @@ END
|
|
132
139
|
|
133
140
|
|
134
141
|
# Check type of data and generate appropriate html for that result!
|
142
|
+
# Takes list as input -- TODO: rdoc methods properly!
|
135
143
|
def generate_html_result(data)
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
144
|
+
data.gsub(/[\n]/, '<br>')
|
145
|
+
end
|
146
|
+
|
147
|
+
|
148
|
+
# Check type of data and generate appropriate html for that result!
|
149
|
+
# Takes list as input, returns as file stream -- TODO: rdoc methods properly!
|
150
|
+
def flatten_list_results(list)
|
151
|
+
data = ""
|
152
|
+
#p list
|
153
|
+
if list.instance_of? Array
|
154
|
+
# flatten (sub-)list and remove nils and if present, newlines
|
155
|
+
# then join list as a multi-line string
|
156
|
+
data = list.flatten.compact.map {|e| e.chomp}.join("\n")
|
142
157
|
else
|
143
|
-
|
158
|
+
data = list.chomp
|
144
159
|
end
|
145
|
-
|
160
|
+
|
161
|
+
StringIO.new data
|
162
|
+
end
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
# copies output stream to a tmp file in the specified subdir
|
167
|
+
# TODO: make proper rdoc
|
168
|
+
def copy_to_tmp(subdir, filename, out)
|
169
|
+
FileUtils.mkdir_p("/tmp/#{WEB_APP_NAME}/#{subdir}") unless File.exist?("/tmp/#{WEB_APP_NAME}/#{subdir}")
|
170
|
+
tmp_file = File.open("/tmp/#{WEB_APP_NAME}/#{subdir}/#{filename}", "w")
|
171
|
+
FileUtils.copy_stream(out, tmp_file)
|
172
|
+
tmp_file.close
|
173
|
+
"Successfully copied #{filename}!!"
|
146
174
|
end
|
147
175
|
|
148
176
|
end
|
@@ -240,46 +268,58 @@ END
|
|
240
268
|
end
|
241
269
|
|
242
270
|
|
243
|
-
|
244
|
-
# Get results for specified run and output - display it in data-display div
|
271
|
+
# Get results from all outputs and store in tmp folder
|
245
272
|
# Cross-domain AJAX to get result from T2
|
246
|
-
get "/#{WEB_APP_NAME}/run/:uuid/
|
247
|
-
|
248
|
-
# Get http request's parameters
|
249
|
-
# TODO: consider adding the following to a session
|
250
|
-
@wid = params[:wid]
|
251
|
-
@wkf_version = params[:wkf_version]
|
252
|
-
|
253
|
-
# Get myExperiment workflow object
|
254
|
-
# TODO: with sessions that would be remembered
|
255
|
-
@my_exp_wkf = MyExperimentREST::Workflow.from_id_and_version(@wid, @wkf_version)
|
273
|
+
get "/#{WEB_APP_NAME}/run/:uuid/outputs" do
|
256
274
|
|
257
275
|
@run_uuid = params[:uuid]
|
258
276
|
@t2_server = params[:server]
|
259
|
-
t2_output = params[:out]
|
260
277
|
|
261
278
|
# Get t2 server and then the run using uuid
|
262
279
|
server = T2Server::Server.connect(@t2_server)
|
263
280
|
run = server.run(@run_uuid)
|
264
281
|
|
265
|
-
# Get output from t2 server
|
282
|
+
# Get output ports from t2 server and store in tmp folder
|
283
|
+
# TODO: TMP folder constant from config!
|
266
284
|
# TODO: that gets the whole output.. request client lib to support partial
|
267
285
|
# download! -- refs could then be used to download the full results!
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
286
|
+
run.get_output_ports.each do |t2_output|
|
287
|
+
begin
|
288
|
+
data_lists = run.get_output(t2_output, false)
|
289
|
+
rescue Exception => e
|
290
|
+
data_lists = run.get_output("#{t2_output}.error", false)
|
291
|
+
end
|
292
|
+
|
293
|
+
# flatten the results
|
294
|
+
data_stream = flatten_list_results(data_lists)
|
295
|
+
|
296
|
+
# copy results to tmp
|
297
|
+
copy_to_tmp("outputs/#{@run_uuid}", t2_output, data_stream)
|
272
298
|
end
|
273
|
-
|
274
|
-
# that should be a sample of the results -- not the complete results!
|
275
|
-
data = generate_html_result(data_lists)
|
276
299
|
|
277
|
-
|
300
|
+
# return success!
|
301
|
+
"Successful download!"
|
302
|
+
end
|
303
|
+
|
304
|
+
|
305
|
+
# Get results for specified run and output (stored locally from tmp)
|
306
|
+
# display it in data-display div
|
307
|
+
# Cross-domain AJAX to get result from T2
|
308
|
+
get "/#{WEB_APP_NAME}/run/:uuid/output/:out" do
|
309
|
+
|
310
|
+
run_uuid = params[:uuid]
|
311
|
+
t2_output = params[:out]
|
312
|
+
|
313
|
+
# add HTML tags to display properly
|
314
|
+
data = File.open("/tmp/#{WEB_APP_NAME}/outputs/#{run_uuid}/#{t2_output}", "r").read
|
315
|
+
|
316
|
+
generate_html_result(data)
|
278
317
|
end
|
279
318
|
|
280
319
|
|
281
320
|
# Used from input's upload-form to upload files without refresh (actually
|
282
321
|
# a hidden iframe is refreshed).
|
322
|
+
# TODO: use copy_to_tmp method!!
|
283
323
|
post "/#{WEB_APP_NAME}/upload" do
|
284
324
|
filename = params[:file][:filename]
|
285
325
|
tempfile = params[:file][:tempfile]
|
@@ -288,8 +328,10 @@ END
|
|
288
328
|
"Successfully copied #{filename}!!"
|
289
329
|
end
|
290
330
|
|
331
|
+
# start the server if ruby file executed directly
|
332
|
+
run! if app_file == $0
|
291
333
|
end
|
292
334
|
|
293
335
|
|
294
336
|
# Start Web App
|
295
|
-
|
337
|
+
# $ rackup -p 9494
|
data/doc/rdoc/CHANGES.html
CHANGED
@@ -76,6 +76,21 @@
|
|
76
76
|
|
77
77
|
<h1>Changes log for the Taverna via the Web Gem</h1>
|
78
78
|
|
79
|
+
<h2>Version 0.1.0</h2>
|
80
|
+
<ul><li>
|
81
|
+
<p>Results are downloaded directly and stored in tmp files - progress cycle
|
82
|
+
works once</p>
|
83
|
+
</li><li>
|
84
|
+
<p>Added rackup configuration file: config.ru</p>
|
85
|
+
</li><li>
|
86
|
+
<p>webapp is run using rackup now to enable configuration of web server
|
87
|
+
timeout</p>
|
88
|
+
</li><li>
|
89
|
+
<p>Increased tooltip size and anchored them to the ‘west’</p>
|
90
|
+
</li><li>
|
91
|
+
<p>Port is set via: rackup -p 9494</p>
|
92
|
+
</li></ul>
|
93
|
+
|
79
94
|
<h2>Version 0.0.9</h2>
|
80
95
|
<ul><li>
|
81
96
|
<p>Changed “ to ‘ in generate_header_table (header HTML block used in JS
|
data/doc/rdoc/README.html
CHANGED
@@ -80,7 +80,7 @@
|
|
80
80
|
<p>Konstantinos Karasavvas</p>
|
81
81
|
</td></tr><tr><td class="rdoc-term"><p>Gem Version</p></td>
|
82
82
|
<td>
|
83
|
-
<p>0.0
|
83
|
+
<p>0.1.0</p>
|
84
84
|
</td></tr><tr><td class="rdoc-term"><p>Contact</p></td>
|
85
85
|
<td>
|
86
86
|
<p><a href="mailto:kostas.karasavvas@nbic.nl">kostas.karasavvas@nbic.nl</a></p>
|
data/doc/rdoc/created.rid
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Wed,
|
1
|
+
Wed, 04 Apr 2012 14:30:43 +0200
|
2
2
|
LICENSE Fri, 22 Jul 2011 16:33:48 +0200
|
3
|
-
README
|
4
|
-
CHANGES
|
3
|
+
README Fri, 23 Mar 2012 10:39:17 +0100
|
4
|
+
CHANGES Mon, 02 Apr 2012 17:10:11 +0200
|
data/doc/rdoc/index.html
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
<p>Konstantinos Karasavvas</p>
|
30
30
|
</td></tr><tr><td class="rdoc-term"><p>Gem Version</p></td>
|
31
31
|
<td>
|
32
|
-
<p>0.0
|
32
|
+
<p>0.1.0</p>
|
33
33
|
</td></tr><tr><td class="rdoc-term"><p>Contact</p></td>
|
34
34
|
<td>
|
35
35
|
<p><a href="mailto:kostas.karasavvas@nbic.nl">kostas.karasavvas@nbic.nl</a></p>
|
data/public/css/form.css
CHANGED
data/public/css/tipsy.css
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
.tipsy { padding: 5px; font-size: 13px; opacity: 0.8; filter: alpha(opacity=80); background-repeat: no-repeat; background-image: url(../images/tipsy.gif); }
|
2
|
-
.tipsy-inner { padding: 5px 8px 4px 8px; background-color: #161616; color: white; max-width:
|
2
|
+
.tipsy-inner { padding: 5px 8px 4px 8px; background-color: #161616; color: white; max-width: 300px; text-align: left; }
|
3
3
|
.tipsy-inner { -moz-border-radius:3px; -webkit-border-radius:3px; }
|
4
4
|
.tipsy-north { background-position: top center; }
|
5
5
|
.tipsy-south { background-position: bottom center; }
|
data/public/scripts/form.js
CHANGED
@@ -41,23 +41,9 @@ function uploadFile(input) { //, files) {
|
|
41
41
|
// TODO: what if it exists already!? - currently replaces it
|
42
42
|
$('#workflow-form').append("<input name='" + input + "-file' type='hidden' value='" + filename +"' />");
|
43
43
|
|
44
|
-
|
45
|
-
//var file = files[0];
|
46
|
-
|
47
|
-
// create form to send to server-side upload handler
|
48
|
-
//var formdata = new FormData();
|
49
|
-
|
50
|
-
// include file to form
|
51
|
-
//formdata.append("file", file);
|
52
|
-
|
53
|
-
|
54
44
|
// get the form from the document (jQuery selector wasn't working inside function!)
|
55
45
|
var formdata = new FormData(document.getElementById(input + '-upload-form'));
|
56
46
|
|
57
|
-
//$.ajax({
|
58
|
-
// type: "POST",
|
59
|
-
// url: "http://" + document.location.host + "/t2web/upload",
|
60
|
-
|
61
47
|
var xhr = new XMLHttpRequest();
|
62
48
|
//xhr.file = file; // not necessary if you create scopes like this
|
63
49
|
xhr.upload.addEventListener('progress', function(e) {
|
@@ -65,7 +51,6 @@ function uploadFile(input) { //, files) {
|
|
65
51
|
console.log('xhr progress: ' + (Math.floor(done/total*1000)/10) + '%');
|
66
52
|
}, false);
|
67
53
|
if ( xhr.upload ) {
|
68
|
-
console.log("AAAAAAAAAAAAAAAA");
|
69
54
|
xhr.upload.onprogress = function(e) {
|
70
55
|
var done = e.position || e.loaded, total = e.totalSize || e.total;
|
71
56
|
console.log('xhr.upload progress: ' + done + ' / ' + total + ' = ' + (Math.floor(done/total*1000)/10) + '%');
|
@@ -79,20 +64,11 @@ function uploadFile(input) { //, files) {
|
|
79
64
|
|
80
65
|
xhr.open('post', "http://" + document.location.host + "/t2web/upload", false);
|
81
66
|
xhr.send(formdata);
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
// submit the form to upload the file
|
86
|
-
// we would like to do that via XHR to include client-side progress bar!
|
87
|
-
//$('#' + input + '-upload-form').submit();
|
88
|
-
|
89
67
|
}
|
90
68
|
|
91
69
|
// initilises certain html elements to employ tipsy for their tooltips
|
92
70
|
function initialiseTipsys() {
|
93
|
-
$('[name$="-input"]').tipsy({gravity: '
|
94
|
-
$('[for$="-label"]').tipsy({gravity: '
|
95
|
-
//$('[name$="-input"]').tooltip();
|
96
|
-
|
71
|
+
$('[name$="-input"]').tipsy({gravity: 'w', fade: true, html: true, fallback: "No available example"});
|
72
|
+
$('[for$="-label"]').tipsy({gravity: 'w', fade: true, html: true, fallback: "No available description"});
|
97
73
|
}
|
98
74
|
|
data/public/scripts/results.js
CHANGED
@@ -1,30 +1,81 @@
|
|
1
|
+
// TODO: remove soon! (not used anymore! files are stored locally in tmp!!
|
1
2
|
function getSampleOutput(t2_server, uuid, output, wid, wkf_version) {
|
2
3
|
// t2 server REST call to sample output
|
4
|
+
// the following RESt is used for displaying tmp local files to the screen
|
3
5
|
var httpcall = "http://" + document.location.host + "/t2web/run/" + uuid + "/output/" + output +
|
4
6
|
"?server=" + t2_server + "&wid=" + wid + "&wkf_version=" + wkf_version;
|
5
7
|
|
6
|
-
// display progress cycle icon in output during fetching
|
7
|
-
|
8
8
|
// ajax request
|
9
9
|
$.get(httpcall, function (result) {
|
10
10
|
window.frames['data-display'].document.documentElement.innerHTML = result;
|
11
11
|
});
|
12
12
|
|
13
|
-
|
13
|
+
}
|
14
|
+
|
15
|
+
function readTmpOutput(t2_server, uuid, output, wid, wkf_version) {
|
16
|
+
// TODO: currently t2_server, wid and wkf_version are not used
|
17
|
+
|
18
|
+
// t2web server call to get wkf results from tmp file
|
19
|
+
var httpcall = "http://" + document.location.host + "/t2web/run/" + uuid + "/output/" + output;
|
20
|
+
|
21
|
+
$.get(httpcall, function (result) {
|
22
|
+
window.frames['data-display'].document.documentElement.innerHTML = result;
|
23
|
+
});
|
14
24
|
|
15
25
|
}
|
16
26
|
|
17
|
-
function checkRunStatus(t2_server, uuid) {
|
27
|
+
function checkRunStatus(t2_server, uuid, wid, wkf_version) {
|
18
28
|
// t2 server REST call to uuid's status
|
19
29
|
var httpcall = "http://" + document.location.host + "/runs/" + uuid + "/status?server=" + t2_server;
|
20
30
|
|
21
|
-
// ajax request
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
31
|
+
// ajax request to confirm finished execution
|
32
|
+
//$.get(httpcall, function (result) {
|
33
|
+
// if (result == 'Finished') {
|
34
|
+
|
35
|
+
// TODO: that probably causes the browser status to show that it's still working!!
|
36
|
+
// clearInterval(runStatusIntervalId);
|
37
|
+
|
38
|
+
// getOutputs(t2_server, uuid);
|
39
|
+
//getOutputs("http://test.mybiobank.org/taverna-server", "f3dca934-a6d7-44e3-acc3-f8c1f30e0973");
|
40
|
+
// }
|
41
|
+
//});
|
28
42
|
|
43
|
+
$.ajax({
|
44
|
+
type: "GET",
|
45
|
+
url: httpcall,
|
46
|
+
success: function (result) {
|
47
|
+
if (result == 'Finished') {
|
48
|
+
clearInterval(runStatusIntervalId);
|
49
|
+
getOutputs(t2_server, uuid);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
});
|
29
53
|
}
|
30
54
|
|
55
|
+
function getOutputs(t2_server, uuid) {
|
56
|
+
// prepare get outputs call (to local ruby, cross-domain ajax call)
|
57
|
+
var httpoutputs = "http://" + document.location.host + "/t2web/run/" + uuid + "/outputs" +
|
58
|
+
"?server=" + t2_server;
|
59
|
+
console.log("in new function!!!!");
|
60
|
+
|
61
|
+
// ajax request to get outputs
|
62
|
+
//$.get(httpoutputs, function (reply) {
|
63
|
+
// if (reply == 'Successful download!') {
|
64
|
+
// window.frames['data-navigation'].document.documentElement.innerHTML = results_navigation;
|
65
|
+
// }
|
66
|
+
//});
|
67
|
+
|
68
|
+
$.ajax({
|
69
|
+
type: "GET",
|
70
|
+
url: httpoutputs,
|
71
|
+
success: function(reply) {
|
72
|
+
if (reply == 'Successful download!') {
|
73
|
+
window.frames['data-navigation'].document.documentElement.innerHTML = results_navigation;
|
74
|
+
}
|
75
|
+
}//,
|
76
|
+
//error: function(reply) {
|
77
|
+
// window.frames['data-navigation'].document.documentElement.innerHTML = results_navigation;
|
78
|
+
//}
|
79
|
+
});
|
80
|
+
|
81
|
+
}
|
data/views/form.haml
CHANGED
@@ -38,12 +38,11 @@
|
|
38
38
|
%input{:type => "submit", :value => "Execute", :class => "button"}
|
39
39
|
- if @my_exp_wkf.inputs.size >=1
|
40
40
|
- @my_exp_wkf.inputs.each do |input|
|
41
|
-
-# TODO: make helper create_input_tooltip(input) to return proper tooltip html string!!!
|
42
41
|
- if input.descriptions.size >=1
|
43
|
-
- input_label_tooltip =
|
42
|
+
- input_label_tooltip = generate_tooltip("Description: ", input)
|
44
43
|
- input_textarea_tooltip = ""
|
45
44
|
- if input.examples.size >=1
|
46
|
-
- input_textarea_tooltip =
|
45
|
+
- input_textarea_tooltip = generate_tooltip("Example: ", input)
|
47
46
|
%div{:id => "#{input.name}-upload-form-div"}
|
48
47
|
-#%form{:id => "#{input.name}-upload-form", :enctype => "multipart/form-data", :target => "hidden-iframe", :action => "/t2web/upload", :method => "post"}
|
49
48
|
%form{:id => "#{input.name}-upload-form", :enctype => "multipart/form-data"}
|
@@ -120,7 +119,7 @@
|
|
120
119
|
%img{:src => "/images/bullet_go.png", :alt => "Important!" }
|
121
120
|
%td.inputs
|
122
121
|
For more information on this workflow please visit the
|
123
|
-
%a{ :href => "http://www.myExperiment.org/workflows/#{@wid}" } myExperiment website
|
122
|
+
%a{ :href => "http://www.myExperiment.org/workflows/#{@wid}", :target => "_blank" } myExperiment website
|
124
123
|
-# if #{@my_exp_wkf.user.email}
|
125
124
|
%tr
|
126
125
|
%td.inputs
|
data/views/results.haml
CHANGED
@@ -14,6 +14,7 @@
|
|
14
14
|
window.frames['header'].document.write("#{generate_header_frame(@my_exp_wkf, @my_exp_usr).gsub!(/\n/, "")}");
|
15
15
|
window.frames['data-navigation'].document.write("#{generate_data_navigation_frame(@my_exp_wkf, @run_uuid, @wid, @wkf_version, @t2_server, false)}");
|
16
16
|
runStatusIntervalId = window.setInterval( "checkRunStatus('#{@t2_server}', '#{@run_uuid}')", 5000);
|
17
|
+
//checkRunStatus("#{@t2_server}", "#{@run_uuid}");
|
17
18
|
});
|
18
19
|
%script{:type => "text/javascript", :src => "/scripts/results.js"}
|
19
20
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: t2-web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 0.0.9
|
10
|
+
version: 0.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kostas Karasavvas
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-04-04 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: sinatra
|
@@ -112,6 +112,7 @@ files:
|
|
112
112
|
- README
|
113
113
|
- CHANGES
|
114
114
|
- Rakefile
|
115
|
+
- bin/config.ru
|
115
116
|
- bin/t2_webapp.rb
|
116
117
|
- doc/rdoc-style.css
|
117
118
|
- doc/fr_file_index.html
|