rbbt-views 1.0.1 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/rbbt/workflow/rest.rb +365 -95
- data/lib/rbbt/workflow/rest/client.rb +2 -0
- data/lib/rbbt/workflow/rest/entity.rb +82 -76
- data/lib/rbbt/workflow/rest/finder.rb +78 -0
- data/lib/rbbt/workflow/rest/helpers.rb +288 -47
- data/lib/rbbt/workflow/rest/notes.rb +125 -0
- data/lib/rbbt/workflow/rest/render.rb +280 -240
- data/lib/rbbt/workflow/rest/util.rb +47 -31
- data/share/views/compass/_base.sass +0 -8
- data/share/views/compass/colors.sass +10 -0
- data/share/views/compass/colors/ventana_azul.sass +5 -0
- data/share/views/compass/compass.config +2 -1
- data/share/views/compass/details.sass +50 -0
- data/share/views/compass/dom.sass +64 -0
- data/share/views/compass/embedded.sass +111 -0
- data/share/views/compass/entities.sass +8 -0
- data/share/views/compass/error.sass +13 -0
- data/share/views/compass/finder.sass +42 -0
- data/share/views/compass/fonts.sass +8 -0
- data/share/views/compass/form.sass +49 -1
- data/share/views/compass/header.sass +68 -0
- data/share/views/compass/{main.sass → helpers.sass} +53 -21
- data/share/views/compass/layout.sass +31 -199
- data/share/views/compass/lists.sass +128 -0
- data/share/views/compass/menu.sass +35 -0
- data/share/views/compass/notes.sass +52 -0
- data/share/views/compass/sizes.sass +8 -0
- data/share/views/compass/tables.sass +22 -0
- data/share/views/compass/wait.sass +9 -0
- data/share/views/edit_list.haml +41 -30
- data/share/views/entity/GOTerm.haml +4 -3
- data/share/views/entity/Gene.haml +8 -1
- data/share/views/entity/GenomicMutation.haml +4 -1
- data/share/views/entity/KeggPathway.haml +1 -1
- data/share/views/entity/MutatedIsoform.haml +68 -11
- data/share/views/entity/NCIBioCartaPathway.haml +2 -3
- data/share/views/entity/NCINaturePathway.haml +3 -3
- data/share/views/entity/NCIReactomePathway.haml +2 -3
- data/share/views/entity/PfamDomain.haml +2 -0
- data/share/views/entity/Transcript.haml +10 -0
- data/share/views/entity_list/Default.haml +4 -0
- data/share/views/entity_list/Default/compare_to_other_lists.haml +41 -0
- data/share/views/entity_list/Default/entity_links.haml +6 -0
- data/share/views/entity_list/Default/find_in_other_lists.haml +36 -0
- data/share/views/error.haml +6 -1
- data/share/views/find.haml +10 -0
- data/share/views/form.haml +1 -1
- data/share/views/info.haml +1 -1
- data/share/views/js/_action_setup.js +250 -0
- data/share/views/js/_basic.js +269 -0
- data/share/views/js/_cytoscape.js +44 -0
- data/share/views/js/_details.js +239 -0
- data/share/views/js/_dom_updates.js +384 -0
- data/share/views/js/_embedded.js +95 -0
- data/share/views/js/_images.js +20 -0
- data/share/views/js/_layout.js +21 -0
- data/share/views/js/_lists.js +224 -0
- data/share/views/js/_table.js +36 -0
- data/share/views/js/_workflow.js +42 -0
- data/share/views/js/app.js +0 -570
- data/share/views/js/fix_tablesorter_scientific.js +25 -0
- data/share/views/js/json2.js +487 -0
- data/share/views/layout.haml +8 -98
- data/share/views/notes.haml +15 -0
- data/share/views/partials/_form.haml +22 -7
- data/share/views/partials/_job_control.haml +8 -8
- data/share/views/partials/_list_control.haml +32 -0
- data/share/views/partials/_list_header.haml +6 -0
- data/share/views/partials/_note_list.haml +64 -0
- data/share/views/partials/_result_table.haml +12 -7
- data/share/views/partials/_result_table_controls.haml +11 -5
- data/share/views/partials/_table.haml +24 -6
- data/share/views/partials/layout/_coda.haml +10 -0
- data/share/views/partials/layout/_details.haml +25 -0
- data/share/views/partials/layout/_head.haml +22 -0
- data/share/views/partials/layout/_header.haml +29 -0
- data/share/views/partials/layout/_menu.haml +20 -0
- data/share/views/partials/layout/_resources.haml +41 -0
- data/share/views/public/background.png +0 -0
- data/share/views/public/plugins/cytoscape-web/LICENSE.txt +504 -0
- data/share/views/public/plugins/cytoscape-web/README.txt +213 -0
- data/share/views/public/plugins/cytoscape-web/js/AC_OETags.js +1 -0
- data/share/views/public/plugins/cytoscape-web/js/cytoscapeweb.js +1 -0
- data/share/views/public/plugins/cytoscape-web/js/json2.js +1 -0
- data/share/views/public/plugins/cytoscape-web/swf/CytoscapeWeb.swf +0 -0
- data/share/views/public/plugins/cytoscape-web/swf/playerProductInstall.swf +0 -0
- data/share/views/public/plugins/fancybox/CHANGELOG.md +68 -0
- data/share/views/public/plugins/fancybox/README.md +220 -0
- data/share/views/public/plugins/fancybox/css/blank.gif +0 -0
- data/share/views/public/plugins/fancybox/css/fancybox_loading.gif +0 -0
- data/share/views/public/plugins/fancybox/css/fancybox_sprite.png +0 -0
- data/share/views/public/plugins/fancybox/css/jquery.fancybox.css +234 -0
- data/share/views/public/plugins/fancybox/helpers/fancybox_buttons.png +0 -0
- data/share/views/public/plugins/fancybox/helpers/jquery.fancybox-buttons.css +85 -0
- data/share/views/public/plugins/fancybox/helpers/jquery.fancybox-buttons.js +115 -0
- data/share/views/public/plugins/fancybox/helpers/jquery.fancybox-media.js +85 -0
- data/share/views/public/plugins/fancybox/helpers/jquery.fancybox-thumbs.css +54 -0
- data/share/views/public/plugins/fancybox/helpers/jquery.fancybox-thumbs.js +157 -0
- data/share/views/public/plugins/fancybox/js/jquery.fancybox.js +1463 -0
- data/share/views/public/plugins/fancybox/js/jquery.mousewheel-3.0.6.pack.js +13 -0
- data/share/views/public/plugins/fancybox/lib/jquery-1.7.2.min.js +4 -0
- data/share/views/public/plugins/featuredimagezoomer/css/featuredimagezoomer.css +8 -0
- data/share/views/public/plugins/featuredimagezoomer/images/spinningred.gif +0 -0
- data/share/views/public/plugins/featuredimagezoomer/js/featuredimagezoomer.js +245 -0
- data/share/views/public/plugins/jquery-ui.hitarea.js +173 -0
- data/share/views/public/plugins/jquery/js/jquery-1.8.0.min.js +2 -0
- data/share/views/public/plugins/tablesorter/addons/pager/jquery.tablesorter.pager.css +25 -0
- data/share/views/public/plugins/tablesorter/addons/pager/jquery.tablesorter.pager.js +184 -0
- data/share/views/public/plugins/tablesorter/build.xml +26 -0
- data/share/views/public/plugins/tablesorter/build/ParseMaster.js +106 -0
- data/share/views/public/plugins/tablesorter/build/js.jar +0 -0
- data/share/views/public/plugins/tablesorter/build/jsmin.js +316 -0
- data/share/views/public/plugins/tablesorter/build/min.js +5 -0
- data/share/views/public/plugins/tablesorter/build/pack.js +5 -0
- data/share/views/public/plugins/tablesorter/build/packer.js +316 -0
- data/share/views/public/plugins/tablesorter/build/writeFile.js +19 -0
- data/share/views/public/plugins/tablesorter/changelog +41 -0
- data/share/views/public/plugins/tablesorter/docs/assets/ajax-content.html +43 -0
- data/share/views/public/plugins/tablesorter/docs/css/jq.css +29 -0
- data/share/views/public/plugins/tablesorter/docs/example-ajax.html +119 -0
- data/share/views/public/plugins/tablesorter/docs/example-empty-table.html +75 -0
- data/share/views/public/plugins/tablesorter/docs/example-extending-defaults.html +109 -0
- data/share/views/public/plugins/tablesorter/docs/example-meta-headers.html +108 -0
- data/share/views/public/plugins/tablesorter/docs/example-meta-parsers.html +105 -0
- data/share/views/public/plugins/tablesorter/docs/example-meta-sort-list.html +107 -0
- data/share/views/public/plugins/tablesorter/docs/example-option-debug.html +116 -0
- data/share/views/public/plugins/tablesorter/docs/example-option-digits.html +106 -0
- data/share/views/public/plugins/tablesorter/docs/example-option-sort-force.html +107 -0
- data/share/views/public/plugins/tablesorter/docs/example-option-sort-key.html +108 -0
- data/share/views/public/plugins/tablesorter/docs/example-option-sort-list.html +108 -0
- data/share/views/public/plugins/tablesorter/docs/example-option-sort-order.html +108 -0
- data/share/views/public/plugins/tablesorter/docs/example-option-text-extraction.html +85 -0
- data/share/views/public/plugins/tablesorter/docs/example-options-headers.html +118 -0
- data/share/views/public/plugins/tablesorter/docs/example-pager.html +329 -0
- data/share/views/public/plugins/tablesorter/docs/example-parsers.html +112 -0
- data/share/views/public/plugins/tablesorter/docs/example-trigger-sort.html +113 -0
- data/share/views/public/plugins/tablesorter/docs/example-triggers.html +336 -0
- data/share/views/public/plugins/tablesorter/docs/example-update-cell.html +118 -0
- data/share/views/public/plugins/tablesorter/docs/example-widgets.html +383 -0
- data/share/views/public/plugins/tablesorter/docs/img/external.png +0 -0
- data/share/views/public/plugins/tablesorter/docs/index.html +576 -0
- data/share/views/public/plugins/tablesorter/docs/js/docs.js +23 -0
- data/share/views/public/plugins/tablesorter/docs/js/examples.js +29 -0
- data/share/views/public/plugins/tablesorter/jquery-latest.js +154 -0
- data/share/views/public/plugins/tablesorter/jquery.metadata.js +122 -0
- data/share/views/public/plugins/tablesorter/jquery.tablesorter.js +1031 -0
- data/share/views/public/plugins/tablesorter/jquery.tablesorter.min.js +4 -0
- data/share/views/public/plugins/tablesorter/tests/assets/ajax-content.html +28 -0
- data/share/views/public/plugins/tablesorter/tests/cell.metadata.html +112 -0
- data/share/views/public/plugins/tablesorter/tests/checkbox.html +117 -0
- data/share/views/public/plugins/tablesorter/tests/colspan.html +149 -0
- data/share/views/public/plugins/tablesorter/tests/demo.html +353 -0
- data/share/views/public/plugins/tablesorter/tests/index.html +22 -0
- data/share/views/public/plugins/tablesorter/tests/large.html +30 -0
- data/share/views/public/plugins/tablesorter/tests/lockedOrder.html +355 -0
- data/share/views/public/plugins/tablesorter/tests/metadata.html +320 -0
- data/share/views/public/plugins/tablesorter/tests/multiple-headers.html +67 -0
- data/share/views/public/plugins/tablesorter/tests/pager.html +553 -0
- data/share/views/public/plugins/tablesorter/themes/blue/asc.gif +0 -0
- data/share/views/public/plugins/tablesorter/themes/blue/bg.gif +0 -0
- data/share/views/public/plugins/tablesorter/themes/blue/blue.zip +0 -0
- data/share/views/public/plugins/tablesorter/themes/blue/desc.gif +0 -0
- data/share/views/public/plugins/tablesorter/themes/blue/style.css +39 -0
- data/share/views/public/plugins/tablesorter/themes/green/asc.png +0 -0
- data/share/views/public/plugins/tablesorter/themes/green/bg.png +0 -0
- data/share/views/public/plugins/tablesorter/themes/green/desc.png +0 -0
- data/share/views/public/plugins/tablesorter/themes/green/green.zip +0 -0
- data/share/views/public/plugins/tablesorter/themes/green/style.css +39 -0
- data/share/views/public/plugins/wz_jsgraphics.js +1108 -0
- data/share/views/public/tmp/foo +0 -0
- data/share/views/result.haml +6 -1
- data/share/views/step_error.haml +5 -0
- data/share/views/user_lists.haml +8 -7
- data/share/views/wait.haml +40 -2
- metadata +302 -106
- data/share/views/compass/screen.sass +0 -8
- data/share/views/public/plugins/jquery/js/jquery-1.6.2.min.js +0 -18
@@ -0,0 +1,44 @@
|
|
1
|
+
|
2
|
+
function setup_cytoscape_visualization(dom_id){
|
3
|
+
var options = {
|
4
|
+
// where you have the Cytoscape Web SWF
|
5
|
+
swfPath: "/plugins/cytoscape-web/swf/CytoscapeWeb",
|
6
|
+
// where you have the Flash installer SWF
|
7
|
+
flashInstallerPath: "/plugins/cytoscape-web/swf/playerProductInstall"
|
8
|
+
};
|
9
|
+
|
10
|
+
// init and draw
|
11
|
+
var cytoscape_visualization = new org.cytoscapeweb.Visualization(dom_id, options);
|
12
|
+
|
13
|
+
cytoscape_visualization.addListener("click", "nodes", function(event){
|
14
|
+
var href = event.target.data['url'];
|
15
|
+
if (undefined === href){ return }
|
16
|
+
|
17
|
+
if ($('#details').hasClass("expanded")){
|
18
|
+
size = "normal";
|
19
|
+
}else{
|
20
|
+
size = "small";
|
21
|
+
}
|
22
|
+
|
23
|
+
$('#details_controls a#link_details').attr('href', remove_parameter(href, '_update'))
|
24
|
+
update_detail_controls(href)
|
25
|
+
show_details();
|
26
|
+
|
27
|
+
|
28
|
+
var old_url = $('#details').attr('url');
|
29
|
+
_update_details(href, size, function(data){
|
30
|
+
if (old_url != null && old_url != undefined ){
|
31
|
+
details_history.push(old_url);
|
32
|
+
}
|
33
|
+
$('#details').html(data).removeClass("loading").removeClass("error");
|
34
|
+
rbbt_action_setup();
|
35
|
+
});
|
36
|
+
|
37
|
+
return false;
|
38
|
+
})
|
39
|
+
|
40
|
+
var network_json = cytoscape_visualizations[dom_id]["network_json"]
|
41
|
+
var visual_style = cytoscape_visualizations[dom_id]["visual_style"]
|
42
|
+
cytoscape_visualization.draw({ network: network_json, visualStyle: visual_style });
|
43
|
+
}
|
44
|
+
|
@@ -0,0 +1,239 @@
|
|
1
|
+
//{{{ DETAILS
|
2
|
+
|
3
|
+
function _update_details(url, size, success){
|
4
|
+
var old_url = $('#details').attr('url');
|
5
|
+
$('#details').attr('url', remove_parameter(url, '_update'))
|
6
|
+
$.ajax(add_parameters(url, '_size=' + size + '&_cache_type=async'), {
|
7
|
+
cache: false,
|
8
|
+
success: function( data, stat, req ) {
|
9
|
+
if (req.status == 202){
|
10
|
+
var ajax_obj = this;
|
11
|
+
url = remove_parameter(url, '_update');
|
12
|
+
|
13
|
+
if ($('#details').attr('url') == undefined || $('#details').attr('url') == url){
|
14
|
+
$('#details').html("<span class='details_loading'>Loading " + unescape(url).replace(/\+/g, " ") + "</span>").addClass("loading").removeClass("error");
|
15
|
+
}
|
16
|
+
setTimeout(function(){ if ($('#details').attr('url') == undefined || $('#details').attr('url') == url){ _update_details(url, size, success) } }, 3000);
|
17
|
+
|
18
|
+
}else{
|
19
|
+
url = remove_parameter(url, '_update');
|
20
|
+
if ($('#details').attr('url') == undefined || $('#details').attr('url') == url){
|
21
|
+
success(data);
|
22
|
+
}
|
23
|
+
}
|
24
|
+
},
|
25
|
+
timeout: 20000,
|
26
|
+
error: function(x, t, m) {
|
27
|
+
if (t == 'timeout'){
|
28
|
+
$('#details').html("<span class='details_wait'>Timeout loading: " + unescape(url).replace(/\+/g, " ") + ". Some processes can take long, click <a class='waiting_details' href=#>retry</a> after a while.");
|
29
|
+
var ajax_obj = this;
|
30
|
+
$('#details').find('a.waiting_details').click(function(){
|
31
|
+
$('#details').html("<span class='details_retrying'>Retrying: " + unescape(url).replace(/\+/g, " ") + "</span>");
|
32
|
+
$.ajax(ajax_obj);
|
33
|
+
})
|
34
|
+
}else{
|
35
|
+
$('#details').html("<span class='details_error'>Error loading " + unescape(url).replace(/\+/g, " ") + "</span>");
|
36
|
+
}
|
37
|
+
}
|
38
|
+
})
|
39
|
+
}
|
40
|
+
|
41
|
+
function load_in_details(href){
|
42
|
+
if ($('#details').hasClass("expanded")){
|
43
|
+
size = "normal";
|
44
|
+
}else{
|
45
|
+
size = "small";
|
46
|
+
}
|
47
|
+
|
48
|
+
$('#details_controls a#link_details').attr('href', remove_parameter(href, '_update'))
|
49
|
+
update_detail_controls(href)
|
50
|
+
show_details();
|
51
|
+
|
52
|
+
var old_url = $('#details').attr('url');
|
53
|
+
$('#details').html("<span class='details_loading'>Loading " + unescape(href).replace(/\+/g, " ") + "</span>").addClass("loading").removeClass("error");
|
54
|
+
|
55
|
+
_update_details(href, size, function(data){
|
56
|
+
if (old_url != null && old_url != undefined ){
|
57
|
+
details_history.push(old_url);
|
58
|
+
}
|
59
|
+
$('#details').html(data).removeClass("loading").removeClass("error");
|
60
|
+
rbbt_action_setup();
|
61
|
+
})
|
62
|
+
return false;
|
63
|
+
}
|
64
|
+
|
65
|
+
function back_details(){
|
66
|
+
var url = details_history.pop();
|
67
|
+
if (url != null && url != undefined ){
|
68
|
+
|
69
|
+
if ($('#details').hasClass("expanded")){
|
70
|
+
size = "normal";
|
71
|
+
}else{
|
72
|
+
size = "small";
|
73
|
+
}
|
74
|
+
|
75
|
+
update_detail_controls(url);
|
76
|
+
_update_details(url, size, function(data){
|
77
|
+
$('#details').html(data).removeClass("loading").removeClass("error");
|
78
|
+
rbbt_action_setup();
|
79
|
+
});
|
80
|
+
}
|
81
|
+
return false;
|
82
|
+
}
|
83
|
+
|
84
|
+
function reload_details(){
|
85
|
+
var url = $('#details').attr('url')
|
86
|
+
if (url != null && url != undefined ){
|
87
|
+
|
88
|
+
if ($('#details').hasClass("expanded")){
|
89
|
+
size = "normal";
|
90
|
+
}else{
|
91
|
+
size = "small";
|
92
|
+
}
|
93
|
+
|
94
|
+
update_detail_controls(url);
|
95
|
+
|
96
|
+
_update_details(add_parameters(url, "_update=reload"), size, function(data){
|
97
|
+
$('#details').html(data).removeClass("loading").removeClass("error");
|
98
|
+
rbbt_action_setup();
|
99
|
+
});
|
100
|
+
}
|
101
|
+
return false;
|
102
|
+
}
|
103
|
+
|
104
|
+
function expand_details(){
|
105
|
+
var url = $('#details').attr('url');
|
106
|
+
if (url == null) return false;
|
107
|
+
|
108
|
+
$('#main').hide()
|
109
|
+
$('#details').addClass("expanded")
|
110
|
+
$('#details').html("<span class='details_loading'>Loading " + unescape(url).replace(/\+/g, " ") + "</span>").addClass("loading").removeClass("error");
|
111
|
+
|
112
|
+
update_detail_controls(url);
|
113
|
+
_update_details(url, "normal", function(data){
|
114
|
+
$('#details').html(data).removeClass("loading").removeClass("error");
|
115
|
+
rbbt_action_setup();
|
116
|
+
});
|
117
|
+
|
118
|
+
return false
|
119
|
+
}
|
120
|
+
|
121
|
+
function contract_details(){
|
122
|
+
var url = $('#details').attr('url');
|
123
|
+
if (url == null) return false;
|
124
|
+
|
125
|
+
$('#main').show()
|
126
|
+
$('#details').removeClass("expanded")
|
127
|
+
$('#details').html("<span class='details_loading'>Loading " + unescape(url).replace(/\+/g, " ") + "</span>").addClass("loading").removeClass("error");
|
128
|
+
|
129
|
+
update_detail_controls(url);
|
130
|
+
_update_details(url, "small", function(data){
|
131
|
+
$('#details').html(data).removeClass("loading").removeClass("error");
|
132
|
+
rbbt_action_setup();
|
133
|
+
});
|
134
|
+
|
135
|
+
return false
|
136
|
+
}
|
137
|
+
|
138
|
+
function update_detail_controls(href){
|
139
|
+
var type = href.replace(/^\/entity(?:_list)?\//, '').replace(/\/.*/,'').replace(/:.*/,'')
|
140
|
+
|
141
|
+
if (href.match(/entity_list/)){
|
142
|
+
var id = href.replace(/^\/entity_list\/[^\/]*\//, '').replace(/\?.*/,'')
|
143
|
+
$('div#details_controls > ul > li.save').hide();
|
144
|
+
$('div#details_controls > ul > li.select').show();
|
145
|
+
$('#details_controls').find('span.entity_type').html(type + ' list')
|
146
|
+
$('#details_controls').find('li.select > a.select_list').attr('attr-list-type', type).attr('attr-list', id).removeClass('rbbt_action_setup')
|
147
|
+
}else{
|
148
|
+
$('div#details_controls').find('select.loaded_lists').attr('type', type).find('option[class*=automatic_load]').remove()
|
149
|
+
$('div#details_controls > ul > li.select').hide();
|
150
|
+
$('div#details_controls > ul > li.save').show();
|
151
|
+
$('#details_controls').find('span.entity_type').html(type)
|
152
|
+
}
|
153
|
+
|
154
|
+
}
|
155
|
+
|
156
|
+
function show_details(){
|
157
|
+
var main_size = $(window).height() - $('#details').outerHeight(true) - $('#details_controls').outerHeight(true) - $('#header').outerHeight(true) - 80;
|
158
|
+
var scroll_top = $(window).scrollTop();
|
159
|
+
scroll(0,0);
|
160
|
+
$('#details').show();
|
161
|
+
$('#details_controls').show();
|
162
|
+
|
163
|
+
var main = $('#main');
|
164
|
+
if (! main.hasClass('contracted')){
|
165
|
+
$('#main').css('height', main_size).addClass('contracted');
|
166
|
+
$('#main').scrollTop(scroll_top);
|
167
|
+
}
|
168
|
+
$('#menu').css('height', main_size + $('#details').outerHeight() + $('#details_controls').outerHeight()).addClass('contracted');
|
169
|
+
return false;
|
170
|
+
}
|
171
|
+
|
172
|
+
function hide_details(){
|
173
|
+
details_history = [];
|
174
|
+
var scroll_top = $('#main').scrollTop();
|
175
|
+
$('#main').show();
|
176
|
+
$('#details').hide().removeClass('expanded');
|
177
|
+
$('#details').attr('href', null);
|
178
|
+
$('#details_controls').hide();
|
179
|
+
$('#main').scrollTop(0);//.css('height', '100%');
|
180
|
+
$('#main').removeClass('contracted');//.css('height', '100%');
|
181
|
+
$(window).scrollTop(scroll_top);
|
182
|
+
return false;
|
183
|
+
}
|
184
|
+
|
185
|
+
function toggle_expand_details(){
|
186
|
+
if ($('#details').hasClass('expanded')){
|
187
|
+
contract_details();
|
188
|
+
}else{
|
189
|
+
expand_details();
|
190
|
+
}
|
191
|
+
return false
|
192
|
+
}
|
193
|
+
|
194
|
+
function save_details(){
|
195
|
+
var details = $('#details');
|
196
|
+
var type = details.attr('type');
|
197
|
+
var list = $('#details_controls').find('select.loaded_lists').val();
|
198
|
+
var url = details.attr('url')
|
199
|
+
url = url.replace('/entity/', '/entity_list/')
|
200
|
+
|
201
|
+
if (url.search(/\?/) > 0){
|
202
|
+
url = url.replace('?', '/' + list + '?')
|
203
|
+
}else{
|
204
|
+
url = url + '/' + list
|
205
|
+
}
|
206
|
+
|
207
|
+
$.ajax(url, {
|
208
|
+
cache: false,
|
209
|
+
type: 'POST',
|
210
|
+
success: function(data){
|
211
|
+
update_saved_lists()
|
212
|
+
},
|
213
|
+
timeout: 20000,
|
214
|
+
error: function(x, t, m) {
|
215
|
+
if (t == 'timeout'){
|
216
|
+
$('#details').html("<span class='details_wait'>Timeout loading: " + href + ". Some processes can take long, click <a class='waiting_details' href=#>retry</a> after a while.");
|
217
|
+
var ajax_obj = this
|
218
|
+
$('#details').find('a.waiting_details').click(function(){
|
219
|
+
$('#details').html("<span class='details_retrying'>Retrying: " + href + "</span>");
|
220
|
+
$.ajax(ajax_obj)
|
221
|
+
});
|
222
|
+
}else{
|
223
|
+
$('#details').html("<span class='details_error'>Error loading " + href + "</span>");
|
224
|
+
}
|
225
|
+
}
|
226
|
+
})
|
227
|
+
}
|
228
|
+
|
229
|
+
function link_details(){
|
230
|
+
var details = $('#details');
|
231
|
+
var type = details.attr('type');
|
232
|
+
var list = $('#details_controls').find('select.loaded_lists').val();
|
233
|
+
var url = details.attr('url')
|
234
|
+
|
235
|
+
window.open(url)
|
236
|
+
return false;
|
237
|
+
}
|
238
|
+
|
239
|
+
|
@@ -0,0 +1,384 @@
|
|
1
|
+
//{{{ DOM UPDATE
|
2
|
+
|
3
|
+
var rbbt_updater = []
|
4
|
+
|
5
|
+
function register_dom_update(selector, func){
|
6
|
+
if (rbbt_updater[selector] === undefined){
|
7
|
+
rbbt_updater[selector] = [func];
|
8
|
+
}else{
|
9
|
+
rbbt_updater[selector].push(func);
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
function update_dom(){
|
14
|
+
for (selector in rbbt_updater){
|
15
|
+
var elements = $(selector).not('[class*=rbbt_action_setup]')
|
16
|
+
if (elements.length > 0){
|
17
|
+
elements.addClass('rbbt_action_setup')
|
18
|
+
$.each(rbbt_updater[selector], function(){
|
19
|
+
this(elements);
|
20
|
+
})
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
|
25
|
+
// Updates
|
26
|
+
|
27
|
+
register_dom_update('a.entity, a.entity_list', function(links){
|
28
|
+
links.each(function(){
|
29
|
+
var link = $(this);
|
30
|
+
link.click(function(){load_in_details($(this).attr('href')); return false;}).addClass('rbbt_action_setup');
|
31
|
+
})
|
32
|
+
})
|
33
|
+
|
34
|
+
register_dom_update('table', function(table){
|
35
|
+
table.tablesorter().addClass('sortable');
|
36
|
+
fix_long_table_cells(table);
|
37
|
+
})
|
38
|
+
|
39
|
+
register_dom_update('.embedded > header', function(headers){
|
40
|
+
headers.each(function(){
|
41
|
+
var header = $(this);
|
42
|
+
var embedded = header.parent('.embedded');
|
43
|
+
var href = embedded.attr('target');
|
44
|
+
|
45
|
+
if (header.find('ul.embedded_control').length == 0){
|
46
|
+
var html = header.html();
|
47
|
+
if (embedded.hasClass('check_replace')){
|
48
|
+
html = html + '<ul class="embedded_control"><li><a class="toggle_embedded">toggle</a></li><li><a class="delete_embedded">delete</a></li><li><a class="reload_embedded">reload</a></li><li><a class="link_embedded" href="'+ href + '">link</a></li></ul>';
|
49
|
+
}else{
|
50
|
+
html = html + '<ul class="embedded_control"><li><a class="toggle_embedded">toggle</a></li><li><a class="reload_embedded">reload</a></li><li><a class="link_embedded" href="'+ href + '">link</a></li></ul>';
|
51
|
+
}
|
52
|
+
header.html(html);
|
53
|
+
}
|
54
|
+
|
55
|
+
rbbt_action_setup();
|
56
|
+
})
|
57
|
+
});
|
58
|
+
|
59
|
+
register_dom_update('.embedded > header', function(header){
|
60
|
+
header.click(function(){
|
61
|
+
$(this).parent('.embedded').toggleClass('active_controls');
|
62
|
+
})
|
63
|
+
})
|
64
|
+
|
65
|
+
register_dom_update('.DELETE, .POST', function(link){
|
66
|
+
link.click(function() {
|
67
|
+
if(true) {
|
68
|
+
var link = $(this);
|
69
|
+
var target_id = link.attr('rel')
|
70
|
+
var href = link.attr('href');
|
71
|
+
|
72
|
+
$.ajax({
|
73
|
+
cache: false, url:href, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", asyn:false,
|
74
|
+
success: function(){if (target_id != null){ link.remove(); $("#" + target_id).remove();}}
|
75
|
+
})
|
76
|
+
}
|
77
|
+
return false;
|
78
|
+
})
|
79
|
+
})
|
80
|
+
|
81
|
+
|
82
|
+
register_dom_update('a.open_ellipsis', function(link){
|
83
|
+
link.click(function(){
|
84
|
+
var link = $(this);
|
85
|
+
var span = link.parent('span');
|
86
|
+
var cell = span.parent();
|
87
|
+
restore_ellipsis(cell);
|
88
|
+
|
89
|
+
return(false);
|
90
|
+
})
|
91
|
+
})
|
92
|
+
|
93
|
+
register_dom_update('.exec_job', function(link){
|
94
|
+
link.click(function(){
|
95
|
+
var link = $(this);
|
96
|
+
var workflow = link.attr('attr-workflow');
|
97
|
+
var task = link.attr('attr-task');
|
98
|
+
var params = JSON.parse(link.attr('attr-params'));
|
99
|
+
|
100
|
+
exec_job(workflow, task, params);
|
101
|
+
})
|
102
|
+
})
|
103
|
+
|
104
|
+
register_dom_update('a.share_note', function(link){
|
105
|
+
link.click(function(){
|
106
|
+
var link = $(this);
|
107
|
+
var ul = link.parent('li').parent('ul')
|
108
|
+
|
109
|
+
var target_id = link.attr('rel')
|
110
|
+
var href = link.attr('href');
|
111
|
+
$.ajax({cache: false, url:href, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", asyn:false, success: function(){if (target_id != null){ link.remove(); $("#" + target_id).remove();}}})
|
112
|
+
|
113
|
+
ul.attr('shared', 'true')
|
114
|
+
return false
|
115
|
+
})
|
116
|
+
})
|
117
|
+
|
118
|
+
register_dom_update('a.unshare_note', function(link){
|
119
|
+
link.click(function(){
|
120
|
+
var link = $(this);
|
121
|
+
var ul = link.parent('li').parent('ul');
|
122
|
+
|
123
|
+
var target_id = link.attr('rel')
|
124
|
+
var href = link.attr('href');
|
125
|
+
$.ajax({cache: false, url:href, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", asyn:false, success: function(){if (target_id != null){ link.remove(); $("#" + target_id).remove();}}})
|
126
|
+
|
127
|
+
ul.attr('shared', 'false')
|
128
|
+
return false
|
129
|
+
})
|
130
|
+
})
|
131
|
+
|
132
|
+
register_dom_update('a.compare_list', function(link){
|
133
|
+
link.click(function(){
|
134
|
+
var link = $(this);
|
135
|
+
var list = link.attr('attr-list');
|
136
|
+
var type = link.attr('attr-list-type');
|
137
|
+
|
138
|
+
var loaded_lists = entity_lists[type];
|
139
|
+
|
140
|
+
$('div.compare_list').remove();
|
141
|
+
|
142
|
+
var div = $('<div class="compare_list"></div>');
|
143
|
+
var close = $('<a class="close_compare_list">close</a>');
|
144
|
+
var header = $('<header></header>');
|
145
|
+
header.html('Compare ' + list + ' with:');
|
146
|
+
div.append(close);
|
147
|
+
div.append(header);
|
148
|
+
|
149
|
+
var ul = $('<ul></ul>');
|
150
|
+
|
151
|
+
for (list_name in loaded_lists){
|
152
|
+
if ( list_name != list ) {
|
153
|
+
var li = $('<li></li>');
|
154
|
+
var span = $('<span class="list_name"></span>').html(list_name);
|
155
|
+
var add = $('<a class="add_list">add</a>').attr('attr-source-list', list).attr('attr-target-list', list_name).attr('attr-list-type', type);
|
156
|
+
var del = $('<a class="delete_list">delete</a>').attr('attr-source-list', list).attr('attr-target-list', list_name).attr('attr-list-type', type);
|
157
|
+
var intersect = $('<a class="intersect_list">intersect</a>').attr('attr-source-list', list).attr('attr-target-list', list_name).attr('attr-list-type', type);
|
158
|
+
li.append(span).append(add).append(del).append(intersect)
|
159
|
+
ul.append(li);
|
160
|
+
}
|
161
|
+
}
|
162
|
+
|
163
|
+
if (ul.find('li').length > 0){
|
164
|
+
div.append(ul);
|
165
|
+
}else{
|
166
|
+
div.append('No lists loaded for this entity type');
|
167
|
+
}
|
168
|
+
|
169
|
+
div.css('top', $('#main').scrollTop() + 20);
|
170
|
+
|
171
|
+
|
172
|
+
$('#content').append(div);
|
173
|
+
|
174
|
+
rbbt_action_setup();
|
175
|
+
|
176
|
+
return false;
|
177
|
+
})
|
178
|
+
})
|
179
|
+
|
180
|
+
register_dom_update('a.close_compare_list', function(link){
|
181
|
+
link.click(function(){
|
182
|
+
var link = $(this);
|
183
|
+
link.parent().remove();
|
184
|
+
})
|
185
|
+
})
|
186
|
+
|
187
|
+
register_dom_update('a.add_list', function(link){
|
188
|
+
link.click(function(){
|
189
|
+
var link = $(this);
|
190
|
+
var type = link.attr('attr-list-type');
|
191
|
+
var source = link.attr('attr-source-list');
|
192
|
+
var target = link.attr('attr-target-list');
|
193
|
+
|
194
|
+
var new_id = escape('(' + source + ' PLUS ' + target + ')');
|
195
|
+
|
196
|
+
var copy_url = "/entity_list/" + type + "/copy/" + source + "?new_id=" + new_id;
|
197
|
+
|
198
|
+
$('div.compare_list').remove();
|
199
|
+
$.ajax({cache: false, url:copy_url, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", async:false,
|
200
|
+
success: function(){
|
201
|
+
var add_url = "/entity_list/" + type + "/add/" + new_id + "?other_list=" + target;
|
202
|
+
$.ajax({cache: false, url:add_url, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", async:false,
|
203
|
+
success: function(){
|
204
|
+
var new_list_url = "/entity_list/" + type + '/' + new_id;
|
205
|
+
load_in_details(new_list_url);
|
206
|
+
}})
|
207
|
+
}})
|
208
|
+
})
|
209
|
+
})
|
210
|
+
|
211
|
+
register_dom_update('a.delete_list', function(link){
|
212
|
+
link.click(function(){
|
213
|
+
var link = $(this);
|
214
|
+
var type = link.attr('attr-list-type');
|
215
|
+
var source = link.attr('attr-source-list');
|
216
|
+
var target = link.attr('attr-target-list');
|
217
|
+
|
218
|
+
var new_id = escape('(' + source + ' - ' + target + ')');
|
219
|
+
|
220
|
+
var copy_url = "/entity_list/" + type + "/copy/" + source + "?new_id=" + new_id;
|
221
|
+
|
222
|
+
$('div.compare_list').remove();
|
223
|
+
$.ajax({cache: false, url:copy_url, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", async:false,
|
224
|
+
success: function(){
|
225
|
+
var del_url = "/entity_list/" + type + "/remove/" + new_id + "?other_list=" + target;
|
226
|
+
$.ajax({cache: false, url:del_url, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", async:false,
|
227
|
+
success: function(){
|
228
|
+
var new_list_url = "/entity_list/" + type + '/' + new_id;
|
229
|
+
load_in_details(new_list_url);
|
230
|
+
}})
|
231
|
+
}})
|
232
|
+
})
|
233
|
+
})
|
234
|
+
|
235
|
+
register_dom_update('a.rename_list', function(link){
|
236
|
+
link.click(function(){
|
237
|
+
var link = $(this);
|
238
|
+
var id = link.attr('attr-list');
|
239
|
+
var type = link.attr('attr-list-type');
|
240
|
+
var rename_input = link.siblings('input.rename_list[attr-list="' + id + '"]').first();
|
241
|
+
var new_id = rename_input.val();
|
242
|
+
|
243
|
+
var copy_url = "/entity_list/" + type + "/copy/" + id + "?new_id=" + new_id;
|
244
|
+
|
245
|
+
$.ajax({cache: false, url:copy_url, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", async:false,
|
246
|
+
success: function(){
|
247
|
+
var new_list_url = "/entity_list/" + type + '/' + new_id;
|
248
|
+
load_in_details(new_list_url);
|
249
|
+
var delete_list_url = "/entity_list/" + type + '/' + id;
|
250
|
+
$.ajax({cache: false, url:delete_list_url, data:{ _method: 'DELETE'}, type:"post", async:true})
|
251
|
+
}})
|
252
|
+
})
|
253
|
+
})
|
254
|
+
|
255
|
+
register_dom_update('a.intersect_list', function(link){
|
256
|
+
link.click(function(){
|
257
|
+
var link = $(this);
|
258
|
+
var type = link.attr('attr-list-type');
|
259
|
+
var source = link.attr('attr-source-list');
|
260
|
+
var target = link.attr('attr-target-list');
|
261
|
+
|
262
|
+
var new_id = escape('(' + source + ' AND ' + target + ')');
|
263
|
+
|
264
|
+
var copy_url = "/entity_list/" + type + "/copy/" + source + "?new_id=" + new_id;
|
265
|
+
|
266
|
+
$('div.compare_list').remove();
|
267
|
+
$.ajax({cache: false, url:copy_url, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", async:false,
|
268
|
+
success: function(){
|
269
|
+
var del_url = "/entity_list/" + type + "/subset/" + new_id + "?other_list=" + target;
|
270
|
+
$.ajax({cache: false, url:del_url, data:{ _method: $(this).getClassInList(['POST', 'DELETE'])}, type:"post", async:false,
|
271
|
+
success: function(){
|
272
|
+
var new_list_url = "/entity_list/" + type + '/' + new_id;
|
273
|
+
load_in_details(new_list_url);
|
274
|
+
}})
|
275
|
+
}})
|
276
|
+
})
|
277
|
+
})
|
278
|
+
|
279
|
+
register_dom_update('h3.workflow_title', function(link){
|
280
|
+
link.click(function(){
|
281
|
+
var target = $(this).attr('target');
|
282
|
+
$('div#' + target).toggle();
|
283
|
+
});
|
284
|
+
})
|
285
|
+
|
286
|
+
|
287
|
+
register_dom_update('span.notes a', function(link){
|
288
|
+
link.click(function(){
|
289
|
+
var url = window.location.toString();
|
290
|
+
|
291
|
+
|
292
|
+
url = remove_parameter(url, '_update');
|
293
|
+
url = remove_parameter(url, '_');
|
294
|
+
|
295
|
+
url = url.replace(/http:\/\/[^\/]+\//, '/notes/')
|
296
|
+
|
297
|
+
window.location = url
|
298
|
+
return false
|
299
|
+
})
|
300
|
+
})
|
301
|
+
|
302
|
+
register_dom_update('span.reload_page a', function(link){
|
303
|
+
link.click(function(){
|
304
|
+
var url = window.location.toString();
|
305
|
+
|
306
|
+
|
307
|
+
url = remove_parameter(url, '_update');
|
308
|
+
url = add_parameters(url, '_update=reload');
|
309
|
+
|
310
|
+
url = remove_parameter(url, '_');
|
311
|
+
url = add_parameters(url, '_=' + Math.random().toString());
|
312
|
+
|
313
|
+
window.location = url
|
314
|
+
return false
|
315
|
+
})
|
316
|
+
})
|
317
|
+
|
318
|
+
register_dom_update('span.list_dropdown > a', function(link){
|
319
|
+
link.click(function(){ $('#lists').toggle(); return false})
|
320
|
+
})
|
321
|
+
|
322
|
+
register_dom_update("input#find", function(elem){
|
323
|
+
elem.autocomplete({
|
324
|
+
source: "/find",
|
325
|
+
minLength: 2,
|
326
|
+
appendTo: '#find_wrapper'
|
327
|
+
}).data( "autocomplete" )._renderItem = function( ul, item ) {
|
328
|
+
var litem = $( "<li></li>" ).data( "item.autocomplete", item )
|
329
|
+
var link = $("<a class='select_autocomplete'></a>");
|
330
|
+
|
331
|
+
link.append("<span class='match'>" + item.best + "</span>" )
|
332
|
+
link.append( "<span class='code'>" + item.value + "</span>")
|
333
|
+
link.appendTo(litem);
|
334
|
+
litem.appendTo( ul );
|
335
|
+
};
|
336
|
+
})
|
337
|
+
|
338
|
+
register_dom_update('div.cytoscape_visualization', function(elem){
|
339
|
+
var dom_id = elem.attr('id');
|
340
|
+
setup_cytoscape_visualization(dom_id);
|
341
|
+
})
|
342
|
+
|
343
|
+
// SCREEN WIDE AND CENTER
|
344
|
+
var screen_size = $('#main').css('width');
|
345
|
+
|
346
|
+
function widen_screen(){
|
347
|
+
$('#main').css('width', 'auto')
|
348
|
+
$('#details').css('width', 'auto')
|
349
|
+
$('#details_controls').css('width', 'auto')
|
350
|
+
$.cookie('wide', 'true', {path: '/', expires: 30});
|
351
|
+
$('#header span.wide a').addClass('hide');
|
352
|
+
$('#header span.centered a').removeClass('hide');
|
353
|
+
}
|
354
|
+
|
355
|
+
function center_screen(){
|
356
|
+
$('#main').css('width', screen_size);
|
357
|
+
$('#details').css('width', screen_size);
|
358
|
+
$('#details_controls').css('width', screen_size);
|
359
|
+
$.cookie('wide',null, {path: '/', expires: 30});
|
360
|
+
$('#header span.centered a').addClass('hide');
|
361
|
+
$('#header span.wide a').removeClass('hide');
|
362
|
+
}
|
363
|
+
|
364
|
+
register_dom_update('#header span.wide a', function(link){
|
365
|
+
link.click(function(){
|
366
|
+
widen_screen();
|
367
|
+
rbbt_action_setup();
|
368
|
+
return false;
|
369
|
+
})
|
370
|
+
})
|
371
|
+
|
372
|
+
register_dom_update('#header span.centered a', function(link){
|
373
|
+
link.click(function(){
|
374
|
+
center_screen();
|
375
|
+
rbbt_action_setup();
|
376
|
+
return false;
|
377
|
+
})
|
378
|
+
})
|
379
|
+
|
380
|
+
if ($.cookie('wide') != null){
|
381
|
+
widen_screen();
|
382
|
+
}
|
383
|
+
|
384
|
+
|