rbbt-rest 1.7.5 → 1.7.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (105) hide show
  1. checksums.yaml +4 -4
  2. data/lib/rbbt/rest/common/cache.rb +4 -1
  3. data/lib/rbbt/rest/entity.rb +1 -1
  4. data/lib/rbbt/rest/entity/favourites.rb +1 -1
  5. data/share/views/compass/app.sass +5 -422
  6. data/share/views/compass/card_templates.sass +42 -0
  7. data/share/views/compass/layout.sass +174 -5
  8. data/share/views/compass/misc.sass +209 -0
  9. data/share/views/compass/{base → old/base}/backgrounds.sass +0 -0
  10. data/share/views/compass/{base → old/base}/blocks.sass +0 -0
  11. data/share/views/compass/{base → old/base}/color.sass +0 -0
  12. data/share/views/compass/{base → old/base}/colors.sass +0 -0
  13. data/share/views/compass/{base → old/base}/font-scale.sass +0 -0
  14. data/share/views/compass/{base → old/base}/fonts.sass +0 -0
  15. data/share/views/compass/{base → old/base}/hide.sass +0 -0
  16. data/share/views/compass/{base → old/base}/icon_content.scss +0 -0
  17. data/share/views/compass/{base → old/base}/icons.sass +0 -0
  18. data/share/views/compass/{base → old/base}/material.sass +0 -0
  19. data/share/views/compass/{base → old/base}/misc.sass +0 -0
  20. data/share/views/compass/{base → old/base}/screen_sizes.sass +0 -0
  21. data/share/views/compass/{base → old/base}/text.sass +0 -0
  22. data/share/views/compass/{base → old/base}/util.sass +0 -0
  23. data/share/views/compass/{base → old/base}/variables.sass +0 -0
  24. data/share/views/compass/{base → old/base}/variables/color.sass +0 -0
  25. data/share/views/compass/{blocks.sass → old/blocks.sass} +0 -0
  26. data/share/views/compass/{cards.sass → old/cards.sass} +0 -0
  27. data/share/views/compass/{color.sass → old/color.sass} +0 -0
  28. data/share/views/compass/{color → old/color}/blocks.sass +0 -0
  29. data/share/views/compass/{color → old/color}/buttons.sass +0 -0
  30. data/share/views/compass/{color → old/color}/elements.sass +0 -0
  31. data/share/views/compass/{color → old/color}/font.sass +0 -0
  32. data/share/views/compass/{color → old/color}/top_bar.sass +0 -0
  33. data/share/views/compass/{elements.sass → old/elements.sass} +0 -0
  34. data/share/views/compass/{elements → old/elements}/buttons.sass +0 -0
  35. data/share/views/compass/{elements → old/elements}/forms.sass +0 -0
  36. data/share/views/compass/{elements → old/elements}/lists.sass +0 -0
  37. data/share/views/compass/{elements → old/elements}/materials.sass +0 -0
  38. data/share/views/compass/{elements → old/elements}/movement.sass +0 -0
  39. data/share/views/compass/{elements → old/elements}/positions.sass +0 -0
  40. data/share/views/compass/{elements → old/elements}/table.sass +0 -0
  41. data/share/views/compass/{elements → old/elements}/tool.sass +0 -0
  42. data/share/views/compass/{grid.sass → old/grid.sass} +0 -0
  43. data/share/views/compass/{init.sass → old/init.sass} +0 -0
  44. data/share/views/compass/old/layout.sass +5 -0
  45. data/share/views/compass/{layout → old/layout}/body.sass +0 -0
  46. data/share/views/compass/{layout → old/layout}/footer.sass +0 -0
  47. data/share/views/compass/{layout → old/layout}/result.sass +0 -0
  48. data/share/views/compass/{layout → old/layout}/reveal.sass +0 -0
  49. data/share/views/compass/{layout → old/layout}/top_bar.sass +0 -0
  50. data/share/views/compass/{layout → old/layout}/top_menu.sass +0 -0
  51. data/share/views/compass/{menu.sass → old/menu.sass} +0 -0
  52. data/share/views/compass/{menu → old/menu}/accordion_menu.sass +0 -0
  53. data/share/views/compass/{menu → old/menu}/actionable.sass +0 -0
  54. data/share/views/compass/{menu → old/menu}/dropdown_menu.sass +0 -0
  55. data/share/views/compass/{menu → old/menu}/hide.sass +0 -0
  56. data/share/views/compass/{menu → old/menu}/menu.sass +0 -0
  57. data/share/views/compass/{menu → old/menu}/tab_menu.sass +0 -0
  58. data/share/views/compass/{menu → old/menu}/top_bar.sass +0 -0
  59. data/share/views/compass/{menu → old/menu}/vertical_menu.sass +0 -0
  60. data/share/views/compass/{mixins → old/mixins}/_all.sass +0 -0
  61. data/share/views/compass/{mixins → old/mixins}/_blocks.sass +0 -0
  62. data/share/views/compass/{mixins → old/mixins}/_compass.sass +0 -0
  63. data/share/views/compass/{mixins → old/mixins}/_deps.sass +0 -0
  64. data/share/views/compass/{mixins → old/mixins}/_hide.sass +0 -0
  65. data/share/views/compass/{mixins → old/mixins}/_keyframes.scss +0 -0
  66. data/share/views/compass/{mixins → old/mixins}/_semantic-ui.sass +0 -0
  67. data/share/views/compass/{new.sass → old/new.sass} +0 -0
  68. data/share/views/compass/{offcanvas.sass → old/offcanvas.sass} +0 -0
  69. data/share/views/compass/{position → old/position}/basic.sass +0 -0
  70. data/share/views/compass/{responsive.sass → old/responsive.sass} +0 -0
  71. data/share/views/compass/{semantic-ui.css → old/semantic-ui.css} +0 -0
  72. data/share/views/compass/{semantic-ui → old/semantic-ui}/semantic-ui.css +0 -0
  73. data/share/views/compass/{space → old/space}/button.sass +0 -0
  74. data/share/views/compass/{table.sass → old/table.sass} +0 -0
  75. data/share/views/compass/{text.sass → old/text.sass} +0 -0
  76. data/share/views/compass/{variables → old/variables}/colors.sass +0 -0
  77. data/share/views/compass/{variables → old/variables}/sizes.sass +0 -0
  78. data/share/views/compass/screen_sizes.sass +16 -1
  79. data/share/views/compass/tab_menu.sass +115 -0
  80. data/share/views/entity_partials/entity_list_card.haml +2 -2
  81. data/share/views/entity_partials/entity_map_card.haml +1 -1
  82. data/share/views/help/UI.haml +10 -10
  83. data/share/views/layout.haml +2 -0
  84. data/share/views/layout/coda.haml +0 -4
  85. data/share/views/layout/header.haml +2 -2
  86. data/share/views/public/js/app.js +16 -0
  87. data/share/views/public/js/{_ajax_replace.js → helpers/_ajax_replace.js} +0 -0
  88. data/share/views/public/js/{_ellipsis.js → helpers/_ellipsis.js} +0 -0
  89. data/share/views/public/js/{_md5.js → helpers/_md5.js} +0 -0
  90. data/share/views/public/js/{defer.js → helpers/defer.js} +0 -0
  91. data/share/views/public/js/{helpers.js → helpers/helpers.js} +0 -0
  92. data/share/views/public/js/rbbt.basic.js +4 -0
  93. data/share/views/public/js/rbbt.favourites.js +3 -2
  94. data/share/views/public/js/rbbt.js +5 -0
  95. data/share/views/public/js/rbbt.modal.js +18 -1
  96. data/share/views/public/js/rbbt/list.js +4 -0
  97. data/share/views/public/js/rbbt/map.js +0 -1
  98. metadata +79 -82
  99. data/share/views/public/js/rbbt.favourites.js.old +0 -195
  100. data/share/views/public/js/rbbt/favourites.js +0 -420
  101. data/share/views/public/js/rbbt/hide.js +0 -64
  102. data/share/views/public/js/rbbt/menu.js +0 -23
  103. data/share/views/public/js/rbbt/modal.js +0 -104
  104. data/share/views/public/js/rbbt/page_type.js +0 -110
  105. data/share/views/public/js/rbbt/workflow.js +0 -18
File without changes
@@ -84,3 +84,7 @@ rbbt.LS.store = function(key, value){
84
84
  }
85
85
 
86
86
 
87
+ //
88
+ rbbt.logged_in = function(){
89
+ return (undefined !== user && user != 'none')
90
+ }
@@ -240,6 +240,7 @@ fav_module.update_map_selects= function(){
240
240
  var select = $(this);
241
241
  fav_module._update_map_select(select, type, maps);
242
242
  })
243
+
243
244
  $('select.favourite_maps[type=All]').each(function(){
244
245
  var select = $(this);
245
246
  select.append($('<option class="automatic_load ui" disabled>'+ type +'</option>'));
@@ -269,6 +270,6 @@ fav_module.hooks = function(){
269
270
  }
270
271
 
271
272
  fav_module.update = function(){
272
- //fav_module.update_favourites().then(fav_module.view).then(function(){ $('.dropdown:not([tabindex])').dropdown()}).then(fav_module.hooks)
273
- fav_module.update_favourites().then(fav_module.view).then(function(){ $('.__dropdown:not([tabindex])').dropdown()}).then(fav_module.hooks)
273
+ if (rbbt.logged_in())
274
+ fav_module.update_favourites().then(fav_module.view).then(function(){ $('.__dropdown:not([tabindex])').dropdown()}).then(fav_module.hooks)
274
275
  }
@@ -26,6 +26,11 @@ rbbt.log = function(obj){
26
26
  console.log((new Date()).toString() + ' => ' + obj)
27
27
  }
28
28
 
29
+ rbbt.caller = function(){
30
+ var err = new Error();
31
+ return err.stack;
32
+ }
33
+
29
34
  rbbt.mount = function(obj, component){
30
35
  obj.className = obj.className + ' mithril-mount'
31
36
  m.mount(obj, component)
@@ -4,6 +4,7 @@ ModalComponent = function(element){
4
4
  var component = {}
5
5
 
6
6
  component.vm = {
7
+ url: undefined,
7
8
  element: element,
8
9
  init: function(){
9
10
  this.visible = m.prop(false)
@@ -29,6 +30,7 @@ ModalComponent = function(element){
29
30
  ctrl.show = function(content, title){
30
31
  this._set(content, title)
31
32
  $(this.vm.element).addClass('active')
33
+ ctrl.vm.url = undefined
32
34
  m.redraw()
33
35
  update_rbbt()
34
36
  }
@@ -51,19 +53,27 @@ ModalComponent = function(element){
51
53
  $(this.vm.element).addClass('loading')
52
54
  $(this.vm.element).addClass('active')
53
55
  m.redraw()
56
+ ctrl.vm.url = url
54
57
  return rbbt.insist_request(params).then(function(content){
55
58
  $(ctrl.vm.element).removeClass('loading')
56
59
  ctrl.show(content, title)
60
+ ctrl.vm.url = url
57
61
  })
58
62
  }
59
63
 
60
64
  ctrl.close = function(){
61
65
  ctrl.vm.visible(false)
66
+ ctrl.vm.url = undefined
62
67
  $(ctrl.vm.element).removeClass('error')
63
68
  $(ctrl.vm.element).removeClass('active')
64
69
  m.redraw()
65
70
  }
66
71
 
72
+ ctrl.link = function(){
73
+ ctrl.close()
74
+ window.location = ctrl.vm.url
75
+ }
76
+
67
77
  return ctrl
68
78
  }
69
79
 
@@ -78,7 +88,14 @@ ModalComponent = function(element){
78
88
  else content = m.trust(ctrl.vm.content());
79
89
 
80
90
 
81
- var header = [title, rbbt.mview.ibutton({onclick: ctrl.close, class:'small close', style: 'margin-top: -4px'}, m('i.icon.close'))];
91
+ var header = [title, close_button];
92
+ var close_button = rbbt.mview.ibutton({onclick: ctrl.close, class:'small close', style: 'margin-top: -4px'}, m('i.icon.close'))
93
+ if (ctrl.vm.url){
94
+ var link_button = rbbt.mview.ibutton({onclick: ctrl.link, class:'small link', style: 'margin-top: -4px'}, m('a', {href: ctrl.vm.url},[ m('i.icon.arrow.right')]))
95
+ header = [title, close_button, link_button];
96
+ }else{
97
+ header = [title, close_button];
98
+ }
82
99
  var modal_content = [m('.header', header), m('.content', content)];
83
100
  return modal_content;
84
101
  }else{
@@ -26,6 +26,10 @@ body.on('click', 'a.compare_list', function(){
26
26
  }
27
27
 
28
28
  var list_id = rbbt.page.list().id;
29
+ console.log(list_id)
30
+ console.log(lists)
31
+ lists = remove_from_array(lists, list_id)
32
+ console.log(lists)
29
33
 
30
34
 
31
35
  var buttons = m('.ui.buttons.list_comparison_buttons', [
@@ -1,6 +1,5 @@
1
1
  function entity_map(type, column, id, complete){
2
2
  var url = "/entity_map" + '/' + clean_element(type) + '/' + clean_element(column) + '/' + clean_element(id);
3
- console.log(url)
4
3
  return get_ajax({url: url, async: false, method: "GET", data: {_format: 'json'}}, complete)
5
4
  }
6
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.5
4
+ version: 1.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-30 00:00:00.000000000 Z
11
+ date: 2015-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -198,76 +198,80 @@ files:
198
198
  - lib/rbbt/rest/workflow/render.rb
199
199
  - share/views/association/Default.haml
200
200
  - share/views/compass/app.sass
201
- - share/views/compass/base/backgrounds.sass
202
- - share/views/compass/base/blocks.sass
203
- - share/views/compass/base/color.sass
204
- - share/views/compass/base/colors.sass
205
- - share/views/compass/base/font-scale.sass
206
- - share/views/compass/base/fonts.sass
207
- - share/views/compass/base/hide.sass
208
- - share/views/compass/base/icon_content.scss
209
- - share/views/compass/base/icons.sass
210
- - share/views/compass/base/material.sass
211
- - share/views/compass/base/misc.sass
212
- - share/views/compass/base/screen_sizes.sass
213
- - share/views/compass/base/text.sass
214
- - share/views/compass/base/util.sass
215
- - share/views/compass/base/variables.sass
216
- - share/views/compass/base/variables/color.sass
217
- - share/views/compass/blocks.sass
218
- - share/views/compass/cards.sass
219
- - share/views/compass/color.sass
220
- - share/views/compass/color/blocks.sass
221
- - share/views/compass/color/buttons.sass
222
- - share/views/compass/color/elements.sass
223
- - share/views/compass/color/font.sass
224
- - share/views/compass/color/top_bar.sass
225
- - share/views/compass/elements.sass
226
- - share/views/compass/elements/buttons.sass
227
- - share/views/compass/elements/forms.sass
228
- - share/views/compass/elements/lists.sass
229
- - share/views/compass/elements/materials.sass
230
- - share/views/compass/elements/movement.sass
231
- - share/views/compass/elements/positions.sass
232
- - share/views/compass/elements/table.sass
233
- - share/views/compass/elements/tool.sass
234
- - share/views/compass/grid.sass
235
- - share/views/compass/init.sass
201
+ - share/views/compass/card_templates.sass
236
202
  - share/views/compass/layout.sass
237
- - share/views/compass/layout/body.sass
238
- - share/views/compass/layout/footer.sass
239
- - share/views/compass/layout/result.sass
240
- - share/views/compass/layout/reveal.sass
241
- - share/views/compass/layout/top_bar.sass
242
- - share/views/compass/layout/top_menu.sass
243
- - share/views/compass/menu.sass
244
- - share/views/compass/menu/accordion_menu.sass
245
- - share/views/compass/menu/actionable.sass
246
- - share/views/compass/menu/dropdown_menu.sass
247
- - share/views/compass/menu/hide.sass
248
- - share/views/compass/menu/menu.sass
249
- - share/views/compass/menu/tab_menu.sass
250
- - share/views/compass/menu/top_bar.sass
251
- - share/views/compass/menu/vertical_menu.sass
252
- - share/views/compass/mixins/_all.sass
253
- - share/views/compass/mixins/_blocks.sass
254
- - share/views/compass/mixins/_compass.sass
255
- - share/views/compass/mixins/_deps.sass
256
- - share/views/compass/mixins/_hide.sass
257
- - share/views/compass/mixins/_keyframes.scss
258
- - share/views/compass/mixins/_semantic-ui.sass
259
- - share/views/compass/new.sass
260
- - share/views/compass/offcanvas.sass
261
- - share/views/compass/position/basic.sass
262
- - share/views/compass/responsive.sass
203
+ - share/views/compass/misc.sass
204
+ - share/views/compass/old/base/backgrounds.sass
205
+ - share/views/compass/old/base/blocks.sass
206
+ - share/views/compass/old/base/color.sass
207
+ - share/views/compass/old/base/colors.sass
208
+ - share/views/compass/old/base/font-scale.sass
209
+ - share/views/compass/old/base/fonts.sass
210
+ - share/views/compass/old/base/hide.sass
211
+ - share/views/compass/old/base/icon_content.scss
212
+ - share/views/compass/old/base/icons.sass
213
+ - share/views/compass/old/base/material.sass
214
+ - share/views/compass/old/base/misc.sass
215
+ - share/views/compass/old/base/screen_sizes.sass
216
+ - share/views/compass/old/base/text.sass
217
+ - share/views/compass/old/base/util.sass
218
+ - share/views/compass/old/base/variables.sass
219
+ - share/views/compass/old/base/variables/color.sass
220
+ - share/views/compass/old/blocks.sass
221
+ - share/views/compass/old/cards.sass
222
+ - share/views/compass/old/color.sass
223
+ - share/views/compass/old/color/blocks.sass
224
+ - share/views/compass/old/color/buttons.sass
225
+ - share/views/compass/old/color/elements.sass
226
+ - share/views/compass/old/color/font.sass
227
+ - share/views/compass/old/color/top_bar.sass
228
+ - share/views/compass/old/elements.sass
229
+ - share/views/compass/old/elements/buttons.sass
230
+ - share/views/compass/old/elements/forms.sass
231
+ - share/views/compass/old/elements/lists.sass
232
+ - share/views/compass/old/elements/materials.sass
233
+ - share/views/compass/old/elements/movement.sass
234
+ - share/views/compass/old/elements/positions.sass
235
+ - share/views/compass/old/elements/table.sass
236
+ - share/views/compass/old/elements/tool.sass
237
+ - share/views/compass/old/grid.sass
238
+ - share/views/compass/old/init.sass
239
+ - share/views/compass/old/layout.sass
240
+ - share/views/compass/old/layout/body.sass
241
+ - share/views/compass/old/layout/footer.sass
242
+ - share/views/compass/old/layout/result.sass
243
+ - share/views/compass/old/layout/reveal.sass
244
+ - share/views/compass/old/layout/top_bar.sass
245
+ - share/views/compass/old/layout/top_menu.sass
246
+ - share/views/compass/old/menu.sass
247
+ - share/views/compass/old/menu/accordion_menu.sass
248
+ - share/views/compass/old/menu/actionable.sass
249
+ - share/views/compass/old/menu/dropdown_menu.sass
250
+ - share/views/compass/old/menu/hide.sass
251
+ - share/views/compass/old/menu/menu.sass
252
+ - share/views/compass/old/menu/tab_menu.sass
253
+ - share/views/compass/old/menu/top_bar.sass
254
+ - share/views/compass/old/menu/vertical_menu.sass
255
+ - share/views/compass/old/mixins/_all.sass
256
+ - share/views/compass/old/mixins/_blocks.sass
257
+ - share/views/compass/old/mixins/_compass.sass
258
+ - share/views/compass/old/mixins/_deps.sass
259
+ - share/views/compass/old/mixins/_hide.sass
260
+ - share/views/compass/old/mixins/_keyframes.scss
261
+ - share/views/compass/old/mixins/_semantic-ui.sass
262
+ - share/views/compass/old/new.sass
263
+ - share/views/compass/old/offcanvas.sass
264
+ - share/views/compass/old/position/basic.sass
265
+ - share/views/compass/old/responsive.sass
266
+ - share/views/compass/old/semantic-ui.css
267
+ - share/views/compass/old/semantic-ui/semantic-ui.css
268
+ - share/views/compass/old/space/button.sass
269
+ - share/views/compass/old/table.sass
270
+ - share/views/compass/old/text.sass
271
+ - share/views/compass/old/variables/colors.sass
272
+ - share/views/compass/old/variables/sizes.sass
263
273
  - share/views/compass/screen_sizes.sass
264
- - share/views/compass/semantic-ui.css
265
- - share/views/compass/semantic-ui/semantic-ui.css
266
- - share/views/compass/space/button.sass
267
- - share/views/compass/table.sass
268
- - share/views/compass/text.sass
269
- - share/views/compass/variables/colors.sass
270
- - share/views/compass/variables/sizes.sass
274
+ - share/views/compass/tab_menu.sass
271
275
  - share/views/entity/Default.haml
272
276
  - share/views/entity_list/Default.haml
273
277
  - share/views/entity_list/Default/edit.haml
@@ -342,11 +346,7 @@ files:
342
346
  - share/views/public/img/UI/table.png
343
347
  - share/views/public/img/UI/topbar.png
344
348
  - share/views/public/img/UI/topbar_wire.png
345
- - share/views/public/js/_ajax_replace.js
346
- - share/views/public/js/_ellipsis.js
347
- - share/views/public/js/_md5.js
348
349
  - share/views/public/js/app.js
349
- - share/views/public/js/defer.js
350
350
  - share/views/public/js/foundation/foundation.abide.js
351
351
  - share/views/public/js/foundation/foundation.alerts.js
352
352
  - share/views/public/js/foundation/foundation.clearing.js
@@ -364,7 +364,11 @@ files:
364
364
  - share/views/public/js/foundation/foundation.tooltips.js
365
365
  - share/views/public/js/foundation/foundation.topbar.js
366
366
  - share/views/public/js/foundation/index.js
367
- - share/views/public/js/helpers.js
367
+ - share/views/public/js/helpers/_ajax_replace.js
368
+ - share/views/public/js/helpers/_ellipsis.js
369
+ - share/views/public/js/helpers/_md5.js
370
+ - share/views/public/js/helpers/defer.js
371
+ - share/views/public/js/helpers/helpers.js
368
372
  - share/views/public/js/rbbt.aesthetics.js
369
373
  - share/views/public/js/rbbt.basic.js
370
374
  - share/views/public/js/rbbt.entity.js
@@ -372,7 +376,6 @@ files:
372
376
  - share/views/public/js/rbbt.entity_map.js
373
377
  - share/views/public/js/rbbt.exception.js
374
378
  - share/views/public/js/rbbt.favourites.js
375
- - share/views/public/js/rbbt.favourites.js.old
376
379
  - share/views/public/js/rbbt.job.js
377
380
  - share/views/public/js/rbbt.js
378
381
  - share/views/public/js/rbbt.knowledge_base.js
@@ -382,17 +385,11 @@ files:
382
385
  - share/views/public/js/rbbt.views.js
383
386
  - share/views/public/js/rbbt/actions.js
384
387
  - share/views/public/js/rbbt/dom_update.js
385
- - share/views/public/js/rbbt/favourites.js
386
388
  - share/views/public/js/rbbt/fragment.js
387
- - share/views/public/js/rbbt/hide.js
388
389
  - share/views/public/js/rbbt/list.js
389
390
  - share/views/public/js/rbbt/map.js
390
- - share/views/public/js/rbbt/menu.js
391
- - share/views/public/js/rbbt/modal.js
392
- - share/views/public/js/rbbt/page_type.js
393
391
  - share/views/public/js/rbbt/reveal.js
394
392
  - share/views/public/js/rbbt/table.js
395
- - share/views/public/js/rbbt/workflow.js
396
393
  - share/views/public/plugins/FileSaver/js/FileSaver.js
397
394
  - share/views/public/plugins/angular/angular.js
398
395
  - share/views/public/plugins/cola/js/cola.js
@@ -1,195 +0,0 @@
1
-
2
-
3
- rbbt.favourites = {};
4
-
5
- var fav_module = rbbt.favourites;
6
-
7
- fav_module.update_favourite_entities = function(){
8
- return m.request({method: 'GET', url: '/favourite_entities'}).then(function(data){
9
- fav_module.favourite_entities = {}
10
- for (type in data){
11
- var type_data = data[type]
12
- fav_module.favourite_entities[type] = {}
13
- for (entity in type_data){
14
- var info = type_data[entity]
15
- info.id = entity
16
- info.type = type
17
- fav_module.favourite_entities[type][entity] = new Entity(info)
18
- }
19
- }
20
- return data
21
- })
22
- }
23
-
24
- fav_module.update_favourite_lists = function(){
25
- return m.request({method: 'GET', url: '/favourite_entity_lists'}).then(function(data){
26
- fav_module.favourite_lists = {}
27
- for (type in data){
28
- var type_data = data[type]
29
- fav_module.favourite_lists[type] = {}
30
- for (i in type_data){
31
- var list = type_data[i]
32
- info = {}
33
- info.id = list
34
- info.type = type
35
- fav_module.favourite_lists[type][list] = new EntityList(info)
36
- }
37
- }
38
- return data
39
- }) //.then(fav_module.update_list_selects)
40
- }
41
-
42
- fav_module.update_favourites = function(){
43
- return fav_module.update_favourite_entities().then(fav_module.update_favourite_lists)
44
- }
45
-
46
- fav_module.isFavourite_entity = function(entity){
47
- var favourites = fav_module.favourite_entities
48
- return favourites[entity.type] !== undefined && favourites[entity.type][entity.id] !== undefined
49
- }
50
-
51
- fav_module.isFavourite_list = function(list){
52
- var favourites = fav_module.favourite_lists
53
- return favourites[list.type] !== undefined && favourites[list.type][list.id] !== undefined
54
- }
55
-
56
- fav_module.toggleFavourite_entity = function(){
57
- var entity = rbbt.page.entity();
58
-
59
- if (fav_module.isFavourite_entity(entity)){
60
- rbbt.post({url: '/remove_favourite_entity/' + entity.type + '/' + entity.id}).then(fav_module.update)
61
- }else{
62
- rbbt.post({url: '/add_favourite_entity/' + entity.type + '/' + entity.id, data: entity.info}).then(fav_module.update)
63
- }
64
- }
65
-
66
- fav_module.toggleFavourite_list = function(){
67
- var list = rbbt.page.list();
68
-
69
- if (fav_module.isFavourite_list(list)){
70
- rbbt.post({url: '/remove_favourite_entity_list/' + list.type + '/' + list.id}).then(fav_module.update)
71
- }else{
72
- rbbt.post({url: '/add_favourite_entity_list/' + list.type + '/' + list.id}).then(fav_module.update)
73
- }
74
- }
75
-
76
- fav_module.toggleFavourite = function(){
77
- if (! rbbt.page.entity())
78
- if (! rbbt.page.list())
79
- return
80
- else
81
- fav_module.toggleFavourite_list()
82
- else
83
- fav_module.toggleFavourite_entity()
84
- }
85
-
86
- //{{{ VIEWS
87
-
88
- fav_module.star_view = function(){
89
- if (! rbbt.page.entity())
90
- if (! rbbt.page.list())
91
- return
92
- else
93
- return m('i.icon.star', {class: (fav_module.isFavourite_list(rbbt.page.list()) ? 'favourite' : 'not_favourite')})
94
- else
95
- return m('i.icon.star', {class: (fav_module.isFavourite_entity(rbbt.page.entity()) ? 'favourite' : 'not_favourite')})
96
- }
97
-
98
- fav_module.draw_favourite_menu = function(){
99
- var favourites = fav_module.favourite_entities
100
- var types = Object.keys(favourites)
101
-
102
- return m('.ui.menu',
103
- m('.ui.dropdown.item', [
104
- m('i.icon.dropdown'),
105
- 'Entities',
106
- m('.menu', types.map(function(type, index){
107
- var _type = favourites[type]
108
- var entities = Object.keys(_type)
109
-
110
- return m('.ui.dropdown.item', [
111
- m('i.icon.dropdown'),
112
- type,
113
- m('.menu', entities.map(function(entity, index){ url = _type[entity].url(); return m('a.item', {href: url}, _type[entity].name) }))
114
- ]);
115
- }))
116
- ])
117
- )
118
- }
119
-
120
- fav_module.draw_favourite_list_menu = function(){
121
- var favourites = fav_module.favourite_lists
122
- var types = Object.keys(favourites)
123
-
124
- return m('.ui.menu',
125
- m('.ui.dropdown.item', [
126
- m('i.icon.dropdown'),
127
- 'Lists',
128
- m('.menu', types.map(function(type, index){
129
- var _type = favourites[type]
130
- var lists = Object.keys(_type)
131
-
132
- return m('.ui.dropdown.item', [
133
- m('i.icon.dropdown'),
134
- type,
135
- m('.menu', lists.map(function(lists, index){ url = _type[lists].url(); return m('a.item', {href: url}, _type[lists].name) }))
136
- ]);
137
- }))
138
- ])
139
- )
140
- }
141
- fav_module.view = function(){
142
- m.render($('#top_menu > .favourite')[0], [
143
- m('.item.pointer', {onclick: fav_module.toggleFavourite}, fav_module.star_view()),
144
- m('.item', {style: 'padding: 0px'}, fav_module.draw_favourite_menu()),
145
- m('.item', {style: 'padding: 0px'}, fav_module.draw_favourite_list_menu())
146
- ])
147
- }
148
-
149
- fav_module.update = function(){
150
- fav_module.update_favourites().then(fav_module.view).then(function(){ $('.dropdown:not([tabindex])').dropdown()})
151
- }
152
-
153
-
154
- fav_module._update_list_select= function(select, type, lists){
155
- if (select.attr('attr-allow-empty') == 'true'){
156
- var option = $('<option value="none" class="loaded">none</option>')
157
- select.append(option);
158
- }
159
-
160
- var selected = null;
161
-
162
- if (select.attr('attr-selected') != undefined ){
163
- selected = select.attr('attr-selected');
164
- }
165
-
166
- $.each(lists, function(name, elems){
167
- var option = null;
168
- var name = elems
169
- if (selected == null || name != selected){
170
- option = $('<option attr-entity_type="' + type + '" class="automatic_load" value="' + name.id + '">' + name.id + '</option>');
171
- }else{
172
- option = $('<option attr-entity_type="' + type + '" class="automatic_load" selected=selected value="' + name.id + '">' + name.id + '</option>');
173
- }
174
- select.append(option);
175
- return true
176
- })
177
- },
178
-
179
- fav_module.update_list_selects= function(){
180
- $('select.favourite_lists').find('option.automatic_load').remove()
181
-
182
- $.each(fav_module.favourite_lists, function(type, lists){
183
- $('select.favourite_lists[type=' + type + ']').each(function(){
184
- var select = $(this);
185
- fav_module._update_list_select(select, type, lists);
186
- })
187
- $('select.favourite_lists[type=All]').each(function(){
188
- var select = $(this);
189
- select.append($('<option class="automatic_load ui" disabled>'+ type +'</option>'));
190
- fav_module._update_list_select(select, type, lists);
191
- })
192
- });
193
- }
194
-
195
- fav_module.update()