rbbt-rest 1.8.136 → 1.8.142

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.
Files changed (33) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rbbt/rest/common/cache.rb +4 -1
  3. data/lib/rbbt/rest/common/misc.rb +6 -1
  4. data/lib/rbbt/rest/common/render.rb +3 -2
  5. data/lib/rbbt/rest/common/table.rb +1 -1
  6. data/lib/rbbt/rest/entity/rest.rb +8 -2
  7. data/share/views/compass/card_templates.sass +14 -0
  8. data/share/views/compass/layout.sass +2 -0
  9. data/share/views/compass/misc.sass +15 -0
  10. data/share/views/entity_partials/action_controller.haml +1 -1
  11. data/share/views/entity_partials/entity_card.haml +19 -3
  12. data/share/views/entity_partials/entity_list_card.haml +9 -0
  13. data/share/views/entity_partials/entity_map_card.haml +5 -5
  14. data/share/views/job_result/array.haml +4 -1
  15. data/share/views/layout/footer.haml +2 -15
  16. data/share/views/partials/footers/bsc.haml +3 -3
  17. data/share/views/partials/tabs.haml +15 -12
  18. data/share/views/public/js/app.js +13 -0
  19. data/share/views/public/js/helpers/helpers.js +2 -2
  20. data/share/views/public/js/rbbt.basic.js +2 -2
  21. data/share/views/public/js/rbbt.plots/rbbt.plots.graph.adapters.js +33 -11
  22. data/share/views/public/js/rbbt.plots/rbbt.plots.graph.js +20 -2
  23. data/share/views/public/js/rbbt/actions.js +21 -12
  24. data/share/views/public/plugins/cytoscapejs/cytoscape.js +1 -0
  25. data/share/views/public/plugins/cytoscapejs/cytoscape.min.js +22 -56
  26. data/share/views/public/plugins/cytoscapejs/cytoscape.umd.js +32290 -0
  27. data/share/views/public/plugins/js-cookie/js/js.cookie.js +83 -65
  28. data/share/views/tools/nvd3.haml +3 -2
  29. data/share/views/tools/nvd3/chart.haml +7 -2
  30. metadata +3 -4
  31. data/share/views/public/plugins/cytoscapejs/cytoscape.js +0 -24578
  32. data/share/views/public/plugins/cytoscapejs/cytoscape.js.map +0 -1
  33. data/share/views/public/plugins/cytoscapejs/cytoscape.min.js.map +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8291911f0473d9d30956ea5989996c626736f5406bc4e6a09478c2a7ada771fb
4
- data.tar.gz: 9ca33ac6c0b51b927b3d6041aced32a732646414772ba6aa46df8a48190ad7ae
3
+ metadata.gz: 41d4cc31577331447eb862dab40cfa0579535cebe63f5a8a18fa15faf0e52903
4
+ data.tar.gz: 9df9b6195d6c3c7cb67f3d36055013c1024c197584a59a25321804d58b8b1575
5
5
  SHA512:
6
- metadata.gz: 2ae762c95a7d407c3c90c5e242ae3370f2c2083fc90181bbe63bc5e80159e68196beba7d128c1e6c415a87287efbba132f3d0b452c5f0564019fea4a4660cced
7
- data.tar.gz: 2625b47931d49c18711718846760db4c62c5f5ab0c451a459ddbca96960ddbccd0345605a4994752a7d81af9ee0769c3ea6343593fb58902e18e9c649d57ad1b
6
+ metadata.gz: 90c5a597c253cf60af21c149c0671973a3b1c0d1012b592f300f87e7fb84dedae70989ef632740dcb9f0cca5dfa8198c44268012393e6c7ecf9aa1b71122e4e0
7
+ data.tar.gz: f4019b6940791f2a2b54a7a70aad1ec7c1eb27c135f516362fd6289b7ff7785ae2c236321d6f403dc6017275aae36c03ed12a23bfecbb29d0f04abb3dec763a3
@@ -153,6 +153,7 @@ module RbbtRESTHelpers
153
153
  header "Location", Entity::REST.entity_list_url(list_id, type)
154
154
  url = Entity::REST.entity_list_url(list_id, type)
155
155
  url = url + '?_layout=false' unless @layout
156
+ url = URI.encode(url)
156
157
  redirect to(url)
157
158
  when "map"
158
159
  raw_tsv, tsv_options = load_tsv(fragment_file)
@@ -174,6 +175,7 @@ module RbbtRESTHelpers
174
175
  Entity::Map.save_map(type.to_s, column, map_id, tsv, user)
175
176
  url = Entity::REST.entity_map_url(map_id, type, column)
176
177
  url = url + '?_layout=false' unless @layout
178
+ url = URI.encode(url)
177
179
  redirect to(url)
178
180
  when "excel"
179
181
  require 'rbbt/tsv/excel'
@@ -223,7 +225,8 @@ data = NULL
223
225
 
224
226
  if mime.nil?
225
227
  txt = Open.read(fragment_file)
226
- if txt =~ /<([^> ]+)[^>]*>.*<\/\1>/sm
228
+
229
+ if txt =~ /<([^> ]+)[^>]*>.*?<\/\1>/m
227
230
  mime = "text/html"
228
231
  else
229
232
  begin
@@ -59,8 +59,13 @@ module RbbtRESTHelpers
59
59
  @ajax = request.xhr?
60
60
  @ajax_url = headers["AJAX-URL"]
61
61
 
62
- @fullpath = request.fullpath
63
62
  @uri = request.env["REQUEST_URI"]
63
+ @path = request.env["PATH_INFO"]
64
+ @query = request.env["QUERY_STRING"]
65
+
66
+ #@fullpath = request.fullpath
67
+ @fullpath = (@query && ! @query.empty?) ? @path + "?" + @query : @path
68
+ @fullpath = remove_GET_param(@fullpath, ["_update", "_"])
64
69
 
65
70
  @layout = consume_parameter(:_layout)
66
71
 
@@ -166,9 +166,10 @@ module RbbtRESTHelpers
166
166
  }
167
167
  Open.write(pid_file, pid.to_s)
168
168
 
169
- url = @uri
169
+ url = @fullpath
170
170
  url = remove_GET_param(url, "_update")
171
171
  url = remove_GET_param(url, "_")
172
+
172
173
  fragment_url = add_GET_param(url, "_fragment", fragment_code)
173
174
  if link.nil?
174
175
  html_tag('a', "", :href => fragment_url, :class => 'fragment', "data-text" => text)
@@ -226,7 +227,7 @@ module RbbtRESTHelpers
226
227
  filename = Misc.sanitize_filename(Misc.name2basename(filename))
227
228
 
228
229
  if @step
229
- url = add_GET_param(remove_GET_param(@uri, ["_update", "_"]), "_fragment", "html_resources/#{ filename }")
230
+ url = add_GET_param(remove_GET_param(@fullpath, ["_update", "_"]), "_fragment", "html_resources/#{ filename }")
230
231
  f = @step.file(:html_resources)[filename].find
231
232
  else
232
233
  url = "/files/#{ filename }"
@@ -402,7 +402,7 @@ module RbbtRESTHelpers
402
402
  if @step
403
403
  table_file = @step.file(table_code) if @step
404
404
 
405
- url = add_GET_param(@uri, "_fragment", File.basename(table_file))
405
+ url = add_GET_param(@fullpath, "_fragment", File.basename(table_file))
406
406
  url = remove_GET_param(url, "_update")
407
407
  url = remove_GET_param(url, "_layout")
408
408
  url = remove_GET_param(url, "_")
@@ -14,11 +14,11 @@ module Entity
14
14
  #{{{ MISC
15
15
 
16
16
  def self.clean_element(elem)
17
- elem.gsub('/', '-..-').gsub("|", '-...-').gsub('%', 'o-o').gsub('[','(.-(').gsub(']',').-)')
17
+ elem.gsub('&', '--AND--').gsub('/', '-..-').gsub("|", '-...-').gsub('%', 'o-o').gsub('[','(.-(').gsub(']',').-)')
18
18
  end
19
19
 
20
20
  def self.restore_element(elem)
21
- CGI.unescape(CGI.unescape(elem.gsub('-..-', '/').gsub('-...-', '|').gsub('o-o', '%').gsub('(.-(','[').gsub(').-)',']')))
21
+ CGI.unescape(CGI.unescape(elem.gsub('--AND--', '&').gsub('-..-', '/').gsub('-...-', '|').gsub('o-o', '%').gsub('(.-(','[').gsub(').-)',']')))
22
22
  end
23
23
 
24
24
  def self.setup(mod)
@@ -146,6 +146,12 @@ module Entity
146
146
  rescue
147
147
  text = self
148
148
  end
149
+
150
+ begin
151
+ attributes[:title] ||= self.respond_to?(:title)? self.title || self : self
152
+ rescue
153
+ end
154
+
149
155
  attributes[:title] = text if attributes[:title].nil?
150
156
 
151
157
  Misc.html_tag('a', text, attributes)
@@ -1,4 +1,13 @@
1
1
 
2
+ .action_controller
3
+ display:flex !important
4
+ & > .action_progress
5
+ flex-width: 100%
6
+ & > .ui.buttons > .button
7
+ flex-height: 3em
8
+ & > .ui.buttons.controls > .button
9
+ max-height: 3em
10
+
2
11
  .action_parameters, .filter_controls
3
12
  form
4
13
  &:after
@@ -41,3 +50,8 @@
41
50
  width: 7em !important
42
51
 
43
52
 
53
+ .card_sidebar, .card_sidebar > *, .card_sidebar > * > *
54
+ text-overflow: ellipsis
55
+ overflow-x: auto
56
+ max-width: 100%
57
+
@@ -2,6 +2,8 @@
2
2
  .preload *
3
3
  +animation-duration(0s !important)
4
4
 
5
+ html, body
6
+ scroll-padding-top: 60px
5
7
  body
6
8
  background: none repeat scroll 0% 0% #F7F7F7
7
9
  margin: 0 !important
@@ -278,3 +278,18 @@ ul.tasks
278
278
 
279
279
  .table > .table_url
280
280
  display: none
281
+
282
+ dl.flex_dl
283
+ display: flex
284
+ flex-flow: row wrap
285
+ & > dt
286
+ flex-basis: 20%
287
+ text-align: right
288
+ padding-right: 2em
289
+ max-width: 20%
290
+ text-overflow: ellipsis
291
+ & > dd
292
+ flex-basis: 80%
293
+ flex-grow: 1
294
+ margin: 0
295
+
@@ -39,6 +39,6 @@
39
39
  = entity.action_link action, text, params.merge(:class => 'ui item button')
40
40
  - last_resource = resource
41
41
 
42
- .action_progress.ui.info.message
42
+ .action_progress.ui.info.message
43
43
 
44
44
  .action_loader.ui.very.basic.segment<
@@ -2,21 +2,31 @@
2
2
  - entity_id = "entity__" + entity.id
3
3
  - default = entity.respond_to?(:default)? entity.default || entity.to_s : entity.to_s
4
4
 
5
+ :sass
6
+ .card_sidebar, .card_sidebar > *, .card_sidebar > * > *
7
+ text-overflow: ellipsis
8
+ overflow-x: auto
9
+ max-width: 100%
5
10
 
6
11
  .entity_card.ui.grid(data-entity=entity data-entity-id=default data-entity-type="#{entity.base_type}" data-entity-format="#{entity.respond_to?(:format) ? entity.format : ""}" data-entity-info="#{entity.info.to_json}")
7
12
  /-- card_sidebar --
8
- .ui.four.wide.column.vertical.card_sidebar.menu
13
+ .ui.four.wide.column.vertical.card_sidebar.menu.hidden
14
+ - empty = true
9
15
  - if card.sections.any?
16
+ - empty = false
10
17
  %h3 Sections
11
18
  - card.sections.each do |name,section|
12
19
  %a.item(href="##{Misc.snake_case(name)}")= Misc.humanize(name)
13
- %a.item(href="#entity_actions") Entity actions
20
+ - if card.action_controller
21
+ %a.item(href="#entity_actions") Entity actions
14
22
 
15
23
  - info = card.entity.info
24
+ - info.delete :annotation_types
16
25
  - if info.any? or card.meta or card.list_container
17
- %h3 Meta data
26
+ - empty = false
18
27
  .meta
19
28
  - if info.any?
29
+ %h3 Meta data
20
30
  .entity_info
21
31
  = hash2dl(info)
22
32
 
@@ -28,10 +38,16 @@
28
38
  = fragment :meta, &card.meta
29
39
 
30
40
  - if card.list_container
41
+ - empty = false
31
42
  %h3 Related lists
32
43
  .list_container
33
44
  = list_container_render(card.list_container)
34
45
 
46
+ - if ! empty
47
+ .show_opened
48
+ - else
49
+ .delete_empty
50
+
35
51
 
36
52
  .ui.twelve.wide.column.content
37
53
  .ui.header.basic.segment
@@ -3,7 +3,9 @@
3
3
 
4
4
  .entity_list_card.ui.grid(id="#{ list_id.gsub(/\s/,'_') }_card" data-list=list_id data-list-type="#{list.base_type}")
5
5
  .ui.four.wide.column.vertical.card_sidebar.menu.hidden
6
+ - empty = true
6
7
  - if card.sections.any?
8
+ - empty = false
7
9
  %h3 Sections
8
10
  - card.sections.each do |name,section|
9
11
  %a.item(href="##{Misc.snake_case(name)}")= Misc.humanize(name)
@@ -22,7 +24,10 @@
22
24
  %a.edit_list.ui.button(href="#") Edit
23
25
 
24
26
  - info = card.list.info
27
+ - info.delete :annotation_types
28
+ - info.delete :annotated_array
25
29
  - if info.any? or card.meta or card.list_container
30
+ - empty = false
26
31
  /-- sidebar --
27
32
  %h3 Meta data
28
33
  .meta
@@ -55,10 +60,14 @@
55
60
  %li= link
56
61
 
57
62
  - if card.list_container
63
+ - empty = false
58
64
  %h3 Related lists
59
65
  .list_container
60
66
  = list_container_render(card.list_container)
61
67
 
68
+ - if ! empty
69
+ .show_opened
70
+
62
71
  .ui.twelve.wide.column.content
63
72
  .ui.header.basic.segment
64
73
  .content
@@ -21,7 +21,7 @@
21
21
  %input(type='submit')
22
22
 
23
23
  - if (%w(pvalue p.value p-value pvalues p.values p-values qvalue q.value q-value qvalues q.values q-values) & map.fields.first.downcase.split(/\s+/)).any? and map.fields.first.downcase !~ /score$/
24
- - url = add_GET_param(@uri, '_format', 'pvalue_score')
24
+ - url = add_GET_param(@fullpath, '_format', 'pvalue_score')
25
25
  %a.ui.small.button(href=url) Pvalue score
26
26
 
27
27
  = reveal "QQ-plot", nil, :class => 'ui small button plot' do
@@ -56,16 +56,16 @@
56
56
 
57
57
  - if Gene == Entity.formats[map.key_field]
58
58
  - if map.key_field != "Ensembl Gene ID"
59
- - url = add_GET_param(@uri, '_format', 'ensembl')
59
+ - url = add_GET_param(@fullpath, '_format', 'ensembl')
60
60
  %a.ensembl.ui.small.button(href=url) Ensembl
61
61
  - if map.key_field != "Associated Gene Name"
62
- - url = add_GET_param(@uri, '_format', 'name')
62
+ - url = add_GET_param(@fullpath, '_format', 'name')
63
63
  %a.name.ui.small.button(href=url) Name
64
64
  - if "Rank" == map.fields.first
65
- - url = add_GET_param(@uri, '_format', 'invert_ranks')
65
+ - url = add_GET_param(@fullpath, '_format', 'invert_ranks')
66
66
  %a.invert_ranks.ui.small.button(href=url) Invert ranks
67
67
  - else
68
- - url = add_GET_param(@uri, '_format', 'ranks')
68
+ - url = add_GET_param(@fullpath, '_format', 'ranks')
69
69
  %a.ranks.ui.small.button(href=url) Ranks
70
70
  - if NumericValue == Entity.formats[map.fields.first] or (map.entity_templates[map.fields.first] and map.entity_templates[map.fields.first].annotation_types.include? NumericValue)
71
71
  - $page_entity_base_type = page_entity_base_type
@@ -1,4 +1,7 @@
1
1
  %ul
2
2
  - result.each do |elem|
3
- %li= elem
3
+ - if elem.respond_to?(:link)
4
+ %li= elem.link
5
+ - else
6
+ %li= elem
4
7
 
@@ -37,24 +37,11 @@
37
37
  a
38
38
  width: 100%
39
39
 
40
- .ui.segment.stackable.bottom.attached.grid.three.column
40
+ .ui.segment.stackable.bottom.attached.grid.two.column
41
41
  .ui.column
42
42
  = partial_render('partials/footers/bsc')
43
+ -#
43
44
  .ui.column
44
45
  = partial_render('partials/footers/ntnu')
45
46
  .ui.column
46
47
  = partial_render('partials/footers/cnio')
47
- -#.ui.segment
48
- .image
49
- %a(href="http://www.cnio.es/")
50
- %img(src="/file/cnio.png" height='115px' width='241px')
51
- .content
52
- .ui.header
53
- CNIO. Centro Nacional de Investigaciones Oncologicas (Spanish National Cancer Research Center)
54
- .description
55
- %span.group Structural Computational Biology Group
56
- %br/
57
- %span.address C/ Melchor Fernandez Almagro, 3, E-28029 Madrid
58
- .meta.contact
59
- %span.who miguel.vazquez
60
- %span.where cnio.es
@@ -2,19 +2,19 @@
2
2
  %a(href="http://www.bsc.es/")
3
3
  %img(src="/file/bsc.svg")
4
4
  .content
5
- .ui.header
5
+ -#.ui.header
6
6
  :sass
7
7
  span.bsc
8
8
  font-weight: bold
9
9
  span.cns
10
10
  font-style: italic
11
11
  font-weight: normal
12
-
12
+ -#
13
13
  %span.bsc Barcelona Supercomputing Center
14
14
  %span.cns Centro Nacional de Supercomputaci&oacute;n
15
15
 
16
16
  .description
17
- %span.group Genome Informatics Unit
17
+ %span.group Genome Informatics Unit. Life sciences Department.
18
18
  %span.address Nexus II Building. C/ Jordi Girona, 29. 08034 Barcelona (Spain)
19
19
 
20
20
  .meta.contact
@@ -2,23 +2,26 @@
2
2
  - id = "tab_menu_" + rand(1000).to_s unless defined? id and not id.nil?
3
3
  - active = false unless defined? active and not active.nil?
4
4
  - active = headers.first if TrueClass === active
5
- .ui.top.attached.tabular.stackable.menu(id=id)
5
+ .tabs(id=id)
6
+ .ui.top.attached.tabular.stackable.menu
7
+ - headers.each do |header|
8
+ - code = codes[header] ||= Misc.digest([header, id]*"-")
9
+ - tab_active = (active and active == header) ? 'active' : ''
10
+ .ui.item(data-tab=code class=tab_active)= header
11
+
6
12
  - headers.each do |header|
7
- - code = codes[header] ||= Misc.digest([header, id]*"-")
13
+ - code = codes[header]
14
+ - next if content[header].nil?
8
15
  - tab_active = (active and active == header) ? 'active' : ''
9
- .ui.item(data-tab=code class=tab_active)= header
10
-
11
- - headers.each do |header|
12
- - code = codes[header]
13
- - next if content[header].nil?
14
- - tab_active = (active and active == header) ? 'active' : ''
15
- .ui.tab.bottom.attached.segment.content(data-tab=code class=tab_active)
16
- = content[header]
16
+ .ui.tab.bottom.attached.segment.content(data-tab=code class=tab_active)
17
+ = content[header]
17
18
 
18
19
  :deferjs
19
- $("##{id} > .item[data-tab]").tab()
20
+ //$("##{id} > .item[data-tab]").tab()
21
+
22
+ $("##{id} > .menu > .item[data-tab]").tab({"context": "##{id}"})
20
23
 
21
- $('##{id} > .item[data-tab=close]').click(function(item){
24
+ $('##{id} > .menu > .item[data-tab=close]').click(function(item){
22
25
  var tool = $(this).parents('.cytoscape_tool').first()
23
26
  tool.find('.tab.active, .item.active').removeClass('active')
24
27
  return false
@@ -39,6 +39,19 @@ if (typeof user === 'undefined') user = 'none'
39
39
 
40
40
  $(function(){
41
41
 
42
+ register_dom_update('.card_sidebar > .show_opened', function(elem){
43
+ elem.parent('.card_sidebar').removeClass('hidden')
44
+ elem.remove()
45
+ })
46
+
47
+ register_dom_update('.card_sidebar > .delete_empty', function(elem){
48
+ console.log('delete')
49
+ elem.parent('.card_sidebar').siblings('.content').find('.controls > .card_sidebar_open').remove()
50
+ elem.parent('.card_sidebar').remove()
51
+ })
52
+
53
+
54
+
42
55
  register_dom_update('.reload_workflow', function(elem){
43
56
  elem.click(function(){
44
57
  console.log('WR')
@@ -48,11 +48,11 @@ function remove_parameter(url, parameter){
48
48
  }
49
49
 
50
50
  function clean_element(elem){
51
- return elem.replace(/\//g, '-..-').replace(/%/g,'o-o').replace(/\[/g,'(.-(').replace(/\]/g,').-)')
51
+ return elem.replace('&','--AND--').replace(/\//g, '-..-').replace(/%/g,'o-o').replace(/\[/g,'(.-(').replace(/\]/g,').-)')
52
52
  }
53
53
 
54
54
  function restore_element(elem){
55
- return unescape(elem.replace(/-\.\.-/g, '/').replace(/o-o/g,'%')).replace(/\(\.-\(/g,'[').replace(/\)\.-\)/g,']');
55
+ return unescape(elem.replace('--AND--','&').replace(/-\.\.-/g, '/').replace(/o-o/g,'%')).replace(/\(\.-\(/g,'[').replace(/\)\.-\)/g,']');
56
56
  }
57
57
 
58
58
  function parse_parameters(params){
@@ -160,7 +160,7 @@ rbbt.post = function(url, data, params){
160
160
  // Cookies
161
161
 
162
162
  rbbt.set_cookie = function(name,value){
163
- Cookies.set(name, value)
163
+ Cookies.set(name, value, { sameSite: 'strict'})
164
164
  }
165
165
 
166
166
  rbbt.get_cookie = function(name){
@@ -171,7 +171,7 @@ rbbt.get_cookie = function(name){
171
171
  }
172
172
 
173
173
  rbbt.remove_cookie = function(name){
174
- Cookies.remove(name)
174
+ Cookies.remove(name, { sameSite: 'strict'})
175
175
  }
176
176
 
177
177
  // LocalStorage
@@ -66,6 +66,7 @@ rbbt.plots.graph.build_cytoscapejs = function(graph_model){
66
66
  forArray(model.edges, function(edge){
67
67
  var clean = clean_hash(edge)
68
68
  if (undefined === clean.id) clean.id = clean.code
69
+ clean.id = clean.code + "@" + clean.database
69
70
  edges.push({data: clean})
70
71
  })
71
72
 
@@ -100,6 +101,10 @@ rbbt.plots.graph.view_cytoscapejs = function(graph_model, elem, style, layout, e
100
101
  style: { 'shape': 'data(shape)' }
101
102
  },
102
103
 
104
+ {
105
+ selector: 'edge',
106
+ style: { 'curve-style': 'bezier'}
107
+ },
103
108
  {
104
109
  selector: 'edge[color]',
105
110
  style: { 'line-color': 'data(color)',
@@ -113,18 +118,35 @@ rbbt.plots.graph.view_cytoscapejs = function(graph_model, elem, style, layout, e
113
118
  selector: 'edge[width]',
114
119
  style: { 'width': 'data(width)'}
115
120
  },
116
- {
117
- selector: 'edge[target-arrow-shape]',
118
- style: { 'target-arrow-shape': 'data(target-arrow-shape)'}
119
- },
120
- {
121
- selector: 'edge[target-arrow-color]',
122
- style: { 'target-arrow-color': 'data(target-arrow-color)'}
123
- }
121
+ //{
122
+ // selector: 'edge[target-arrow-shape]',
123
+ // style: { 'target-arrow-shape': 'data(target-arrow-shape)'}
124
+ //},
125
+ //{
126
+ // selector: 'edge[target-arrow-color]',
127
+ // style: { 'target-arrow-color': 'data(target-arrow-color)'}
128
+ //}
124
129
 
125
130
  ]
126
131
 
127
- var default_layout = { name: 'cose' }
132
+ var default_layout = {
133
+ name: 'cose',
134
+ idealEdgeLength: 100,
135
+ nodeOverlap: 20,
136
+ refresh: 20,
137
+ fit: true,
138
+ padding: 30,
139
+ randomize: false,
140
+ componentSpacing: 100,
141
+ nodeRepulsion: 400000,
142
+ edgeElasticity: 100,
143
+ nestingFactor: 5,
144
+ gravity: 80,
145
+ numIter: 1000,
146
+ initialTemp: 200,
147
+ coolingFactor: 0.95,
148
+ minTemp: 1.0
149
+ }
128
150
 
129
151
  if (undefined === style) style = default_style
130
152
  if (undefined === layout) layout = default_layout
@@ -139,6 +161,7 @@ rbbt.plots.graph.view_cytoscapejs = function(graph_model, elem, style, layout, e
139
161
  container: elem,
140
162
  elements: cy_model.elements,
141
163
  style: style,
164
+ layout: layout,
142
165
  }
143
166
 
144
167
  if (undefined !== extra) forHash(extra, function(k,v){ cy_params[k,v] })
@@ -147,7 +170,7 @@ rbbt.plots.graph.view_cytoscapejs = function(graph_model, elem, style, layout, e
147
170
 
148
171
  cy.layout(layout)
149
172
 
150
- cy.one('layoutready', function(){
173
+ cy.one('layoutstop', function(){
151
174
  deferred.resolve(this)
152
175
  })
153
176
  })
@@ -238,7 +261,6 @@ rbbt.plots.graph.update_cytoscape = function(graph_model, elem){
238
261
 
239
262
  rbbt.plots.graph.view_d3js_graph = function(graph_model, elem, node_obj){
240
263
  rbbt.plots.graph.update(graph_model).then(function(updated_model){
241
- console.log(updated_model)
242
264
  var dataset = rbbt.plots.graph.build_d3(updated_model)
243
265
 
244
266
  if (undefined === node_obj){