spiderfw 0.6.27 → 0.6.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (179) hide show
  1. data/CHANGELOG +4 -0
  2. data/VERSION +1 -1
  3. data/apps/core/admin/admin.rb +6 -2
  4. data/apps/core/admin/controllers/admin_controller.rb +10 -3
  5. data/apps/core/admin/controllers/app_admin_controller.rb +15 -0
  6. data/apps/core/admin/public/css/sass/admin.css +29 -33
  7. data/apps/core/admin/public/css/sass/grid.css +14 -0
  8. data/apps/core/admin/public/sass/admin.scss +3 -2
  9. data/apps/core/admin/views/admin.layout.shtml +1 -0
  10. data/apps/core/auth/controllers/mixins/auth_helper.rb +15 -5
  11. data/apps/core/components/assets.rb +60 -41
  12. data/apps/core/components/public/js/jquery/jquery-1.8.3.js +9472 -0
  13. data/apps/core/components/public/js/jquery/jquery-ui-1.8.11/ui/jquery.ui.core.js +1 -1
  14. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/button_bg.png +0 -0
  15. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/datepicker.gif +0 -0
  16. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/icon_sprite.png +0 -0
  17. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/progress_bar.gif +0 -0
  18. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/slider_h_bg.gif +0 -0
  19. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/slider_handles.png +0 -0
  20. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/slider_v_bg.gif +0 -0
  21. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/tab_bg.gif +0 -0
  22. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/the_gradient.gif +0 -0
  23. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-anim_basic_16x16.gif +0 -0
  24. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  25. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  26. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_flat_10_000000_40x100.png +0 -0
  27. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  28. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  29. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  30. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  31. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  32. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  33. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-icons_222222_256x240.png +0 -0
  34. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-icons_228ef1_256x240.png +0 -0
  35. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-icons_ef8c08_256x240.png +0 -0
  36. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-icons_ffd27a_256x240.png +0 -0
  37. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/images/ui-icons_ffffff_256x240.png +0 -0
  38. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/css/Aristo/jquery-ui.custom.css +528 -0
  39. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-af.js +23 -0
  40. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ar-DZ.js +23 -0
  41. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ar.js +23 -0
  42. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-az.js +23 -0
  43. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-be.js +23 -0
  44. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-bg.js +24 -0
  45. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-bs.js +23 -0
  46. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ca.js +23 -0
  47. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-cs.js +23 -0
  48. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-cy-GB.js +23 -0
  49. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-da.js +23 -0
  50. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-de.js +23 -0
  51. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-el.js +23 -0
  52. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-en-AU.js +23 -0
  53. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-en-GB.js +23 -0
  54. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-en-NZ.js +23 -0
  55. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-eo.js +23 -0
  56. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-es.js +23 -0
  57. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-et.js +23 -0
  58. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-eu.js +23 -0
  59. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-fa.js +59 -0
  60. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-fi.js +23 -0
  61. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-fo.js +23 -0
  62. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-fr-CA.js +23 -0
  63. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-fr-CH.js +23 -0
  64. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-fr.js +25 -0
  65. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-gl.js +23 -0
  66. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-he.js +23 -0
  67. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-hi.js +23 -0
  68. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-hr.js +23 -0
  69. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-hu.js +23 -0
  70. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-hy.js +23 -0
  71. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-id.js +23 -0
  72. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-is.js +23 -0
  73. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-it.js +23 -0
  74. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ja.js +23 -0
  75. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ka.js +21 -0
  76. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-kk.js +23 -0
  77. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-km.js +23 -0
  78. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ko.js +23 -0
  79. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ky.js +24 -0
  80. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-lb.js +23 -0
  81. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-lt.js +23 -0
  82. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-lv.js +23 -0
  83. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-mk.js +23 -0
  84. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ml.js +23 -0
  85. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ms.js +23 -0
  86. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-nb.js +22 -0
  87. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-nl-BE.js +23 -0
  88. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-nl.js +23 -0
  89. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-nn.js +22 -0
  90. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-no.js +23 -0
  91. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-pl.js +23 -0
  92. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-pt-BR.js +23 -0
  93. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-pt.js +22 -0
  94. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-rm.js +21 -0
  95. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ro.js +26 -0
  96. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ru.js +23 -0
  97. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-sk.js +23 -0
  98. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-sl.js +24 -0
  99. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-sq.js +23 -0
  100. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-sr-SR.js +23 -0
  101. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-sr.js +23 -0
  102. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-sv.js +23 -0
  103. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-ta.js +23 -0
  104. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-th.js +23 -0
  105. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-tj.js +23 -0
  106. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-tr.js +23 -0
  107. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-uk.js +24 -0
  108. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-vi.js +23 -0
  109. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-zh-CN.js +23 -0
  110. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-zh-HK.js +23 -0
  111. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-zh-TW.js +23 -0
  112. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.accordion.js +571 -0
  113. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.autocomplete.js +614 -0
  114. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.button.js +419 -0
  115. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.core.js +324 -0
  116. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.datepicker.js +2044 -0
  117. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.dialog.js +767 -0
  118. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.draggable.js +941 -0
  119. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.droppable.js +364 -0
  120. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-blind.js +82 -0
  121. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-bounce.js +113 -0
  122. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-clip.js +67 -0
  123. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-drop.js +65 -0
  124. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-explode.js +97 -0
  125. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-fade.js +30 -0
  126. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-fold.js +76 -0
  127. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-highlight.js +50 -0
  128. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-pulsate.js +63 -0
  129. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-scale.js +318 -0
  130. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-shake.js +74 -0
  131. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-slide.js +64 -0
  132. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-transfer.js +47 -0
  133. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect.js +1259 -0
  134. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.menu.js +621 -0
  135. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.mouse.js +169 -0
  136. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.position.js +497 -0
  137. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.progressbar.js +145 -0
  138. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.resizable.js +963 -0
  139. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.selectable.js +269 -0
  140. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.slider.js +641 -0
  141. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.sortable.js +1236 -0
  142. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.spinner.js +492 -0
  143. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.tabs.js +846 -0
  144. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.tooltip.js +400 -0
  145. data/apps/core/components/public/js/jquery/jquery-ui-1.9.2/ui/jquery.ui.widget.js +521 -0
  146. data/apps/core/components/public/js/jquery/plugins/bsmselect/js/jquery.bsmselect.js +3 -1
  147. data/apps/core/components/public/js/plugins/sortable.js +5 -5
  148. data/apps/core/components/widgets/month_calendar/month_calendar.shtml +1 -1
  149. data/apps/core/components/widgets/table/table.rb +18 -5
  150. data/apps/core/forms/public/date_time.js +3 -0
  151. data/apps/core/forms/widgets/form/form.rb +1 -1
  152. data/apps/core/forms/widgets/inputs/date_time/date_time.rb +5 -0
  153. data/apps/core/forms/widgets/inputs/file_input/file_input.rb +1 -1
  154. data/apps/core/forms/widgets/inputs/select/select.rb +11 -16
  155. data/apps/messenger/config/options.rb +5 -5
  156. data/apps/messenger/controllers/messenger_admin_controller.rb +1 -1
  157. data/apps/messenger/controllers/messenger_controller.rb +1 -1
  158. data/apps/messenger/lib/backends/mobyt.rb +1 -1
  159. data/apps/messenger/messenger.rb +4 -2
  160. data/apps/messenger/views/admin/index.shtml +1 -1
  161. data/lib/spiderfw/controller/dispatcher.rb +5 -5
  162. data/lib/spiderfw/controller/mixins/visual.rb +10 -8
  163. data/lib/spiderfw/http/http.rb +1 -1
  164. data/lib/spiderfw/model/base_model.rb +2 -2
  165. data/lib/spiderfw/model/mappers/db_mapper.rb +4 -2
  166. data/lib/spiderfw/model/mixins/tree.rb +4 -5
  167. data/lib/spiderfw/model/model.rb +2 -1
  168. data/lib/spiderfw/model/storage/db/adapters/mysql.rb +18 -20
  169. data/lib/spiderfw/model/storage/db/adapters/oracle.rb +1 -1
  170. data/lib/spiderfw/spider.rb +5 -1
  171. data/lib/spiderfw/templates/blocks/layout_assets.rb +5 -2
  172. data/lib/spiderfw/templates/layout.rb +7 -3
  173. data/lib/spiderfw/templates/template.rb +8 -1
  174. data/lib/spiderfw/utils/monkey/date_time.rb +7 -5
  175. data/lib/spiderfw/utils/monkey/module.rb +12 -0
  176. metadata +373 -157
  177. data/lib/spiderfw/model/storage/db/connectors/mysql.rb +0 -16
  178. data/lib/spiderfw/model/storage/db/connectors/mysql2.rb +0 -9
  179. /data/apps/core/admin/public/img/{icons-s845a69dd9f.png → icons-s8b18557db6.png} +0 -0
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ == 0.6.28
2
+ * Visualizzazione in core:table dei dati collegati, eliminazione dipendenze circolari in uow
3
+ * Bugfixes
4
+
1
5
  == 0.6.27
2
6
  * Clear caches when tmp/clear.txt touched
3
7
  * Bugfixes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.27
1
+ 0.6.28
@@ -10,7 +10,7 @@ module Spider
10
10
  @apps[mod.short_name] = {
11
11
  :module => mod,
12
12
  :controller => controller,
13
- :options => options
13
+ :options => options || {}
14
14
  }
15
15
 
16
16
  Admin::AdminController.route mod.short_name, controller, :do => lambda{ |app_name|
@@ -23,9 +23,13 @@ module Spider
23
23
  @apps.each do |name, app|
24
24
  users += app[:options][:users] if app[:options][:users]
25
25
  end
26
- users << Spider::Auth::SuperUser
26
+ users += self.base_allowed_users
27
27
  users.uniq
28
28
  end
29
+
30
+ def self.base_allowed_users
31
+ [Spider::Auth::SuperUser]
32
+ end
29
33
 
30
34
 
31
35
  end
@@ -30,7 +30,13 @@ module Spider; module Admin
30
30
  include StaticContent
31
31
 
32
32
  def self.auth_require_users
33
- [[Spider::Admin.allowed_users, {:unless => [:login], :redirect => 'login'}]]
33
+ users = super
34
+ params = {:unless => [:login], :redirect => 'login'}
35
+ if users.empty?
36
+ [[Spider::Admin.allowed_users, params]]
37
+ else
38
+ users.map{ |u| [u[0], params.merge(u[1])]}
39
+ end
34
40
  end
35
41
 
36
42
  route 'login', LoginController
@@ -44,8 +50,9 @@ module Spider; module Admin
44
50
  @scene.username = @request.user.username
45
51
  @scene.apps = []
46
52
  Admin.apps.each do |short_name, app|
47
- unless @request.user.superuser?
48
- next if app[:options][:users] && !app[:options][:users].include?(@request.user.class)
53
+ unless @request.users.any?{ |u| u.superuser? }
54
+ next if app[:options][:users] && (app[:options][:users] & (@request.users.map{ |u| u.class})).empty?
55
+ next if app[:options][:check] && !@request.users.any?{ |u| app[:options][:check].call(u) }
49
56
  end
50
57
  url = self.class.http_url(short_name)
51
58
  @scene.apps << {
@@ -1,6 +1,7 @@
1
1
  module Spider; module Admin
2
2
 
3
3
  class AppAdminController < Spider::PageController
4
+ include Spider::Auth::AuthHelper
4
5
 
5
6
  def before(action='', *params)
6
7
  @scene.admin_breadcrumb ||= []
@@ -9,6 +10,20 @@ module Spider; module Admin
9
10
  end
10
11
  @_did_breadcrumb = true
11
12
  super
13
+ unless check_action(action, :login)
14
+ our_app = Spider::Admin.apps[self.class.app.short_name]
15
+ raise "Admin #{self.class.app.short_name} not configured" unless our_app
16
+ user_classes = our_app[:options][:users] || []
17
+ user_classes += Spider::Admin.base_allowed_users
18
+ if (user_classes & (@request.users.map{ |u| u.class})).empty?
19
+ raise Spider::Auth::Unauthorized.new(_("User not authorized to access this application"))
20
+ end
21
+ if our_app[:options][:check]
22
+ unless @request.users.any?{ |u| our_app[:options][:check].call(u) }
23
+ raise Spider::Auth::Unauthorized.new(_("User not authorized to access this application"))
24
+ end
25
+ end
26
+ end
12
27
  end
13
28
 
14
29
  end
@@ -13,12 +13,12 @@ body:after {
13
13
  clear: both;
14
14
  }
15
15
 
16
- /* line 27, icons */
16
+ /* line 42, icons/*.png */
17
17
  .icons-sprite, .icons-logout, #header #admin_controls .logout_link {
18
- background: url('../../img/icons-s845a69dd9f.png') no-repeat;
18
+ background: url('../../img/icons-s8b18557db6.png') no-repeat;
19
19
  }
20
20
 
21
- /* line 60, ../../../../../../../../../../Users/cerebus/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/compass-0.11.5/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */
21
+ /* line 60, ../../../../../../../../rvm/gems/ruby-1.9.3-p327/gems/compass-0.12.2/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss */
22
22
  .icons-logout, #header #admin_controls .logout_link {
23
23
  background-position: 0 0;
24
24
  }
@@ -50,7 +50,7 @@ body:after {
50
50
  /* line 44, ../../sass/admin.scss */
51
51
  #header {
52
52
  padding-bottom: 10px;
53
- background: url('../../img/css/header_bg.png?1321971233') repeat-x scroll center top;
53
+ background: url('../../img/css/header_bg.png?1354531644') repeat-x scroll center top;
54
54
  background-color: #417690;
55
55
  position: relative;
56
56
  border-bottom: 2px solid #555555;
@@ -103,26 +103,21 @@ body:after {
103
103
  min-width: 200px;
104
104
  margin-left: 60px;
105
105
  background-color: #f4f5f6;
106
- -moz-box-shadow: 0px 0px 5px #333333;
107
106
  -webkit-box-shadow: 0px 0px 5px #333333;
108
- -o-box-shadow: 0px 0px 5px #333333;
107
+ -moz-box-shadow: 0px 0px 5px #333333;
109
108
  box-shadow: 0px 0px 5px #333333;
110
- -moz-border-radius: 1px;
111
109
  -webkit-border-radius: 1px;
112
- -o-border-radius: 1px;
110
+ -moz-border-radius: 1px;
113
111
  -ms-border-radius: 1px;
114
- -khtml-border-radius: 1px;
112
+ -o-border-radius: 1px;
115
113
  border-radius: 1px;
116
114
  overflow: hidden;
117
115
  *zoom: 1;
118
- display: -moz-inline-box;
119
- -moz-box-orient: vertical;
116
+ display: -moz-inline-stack;
120
117
  display: inline-block;
121
118
  vertical-align: middle;
122
119
  *vertical-align: auto;
123
- }
124
- /* line 7, ../../../../../../../../../../Users/cerebus/.rbenv/versions/1.8.7-p352/lib/ruby/gems/1.8/gems/compass-0.11.5/frameworks/compass/stylesheets/compass/css3/_inline-block.scss */
125
- #header #app_buttons {
120
+ zoom: 1;
126
121
  *display: inline;
127
122
  }
128
123
  /* line 104, ../../sass/admin.scss */
@@ -131,15 +126,16 @@ body:after {
131
126
  }
132
127
  /* line 108, ../../sass/admin.scss */
133
128
  #header #app_buttons div {
134
- width: 55px;
129
+ min-width: 55px;
130
+ padding: 2px;
135
131
  height: 55px;
136
132
  margin: 5px;
137
- border: 1px solid #BBBBBB;
133
+ border: 1px solid #bbbbbb;
138
134
  text-align: center;
139
135
  float: left;
140
136
  background-color: #EEEEEE;
141
137
  }
142
- /* line 117, ../../sass/admin.scss */
138
+ /* line 118, ../../sass/admin.scss */
143
139
  #header #app_buttons div img {
144
140
  margin-left: auto;
145
141
  margin-right: auto;
@@ -147,52 +143,52 @@ body:after {
147
143
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
148
144
  opacity: 0.8;
149
145
  }
150
- /* line 124, ../../sass/admin.scss */
146
+ /* line 125, ../../sass/admin.scss */
151
147
  #header #app_buttons div span.name {
152
148
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=90);
153
149
  opacity: 0.9;
154
150
  display: block;
155
151
  font-size: 0.8em;
156
152
  }
157
- /* line 131, ../../sass/admin.scss */
153
+ /* line 132, ../../sass/admin.scss */
158
154
  #header #app_buttons a.active div {
159
- border: 1px solid #DDDD00;
155
+ border: 1px solid #dddd00;
160
156
  }
161
- /* line 133, ../../sass/admin.scss */
157
+ /* line 134, ../../sass/admin.scss */
162
158
  #header #app_buttons a.active div img {
163
159
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=70);
164
160
  opacity: 0.7;
165
161
  }
166
- /* line 136, ../../sass/admin.scss */
162
+ /* line 137, ../../sass/admin.scss */
167
163
  #header #app_buttons a.active div span.name {
168
164
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
169
165
  opacity: 0.8;
170
166
  }
171
167
 
172
- /* line 144, ../../sass/admin.scss */
168
+ /* line 145, ../../sass/admin.scss */
173
169
  #admin-switcher-menu .section_title {
174
170
  font-size: 14px;
175
171
  line-height: 36px;
176
172
  }
177
173
 
178
- /* line 154, ../../sass/admin.scss */
174
+ /* line 155, ../../sass/admin.scss */
179
175
  #spider-admin .container-fluid .content {
180
176
  background-color: white;
181
177
  }
182
178
 
183
- /* line 161, ../../sass/admin.scss */
179
+ /* line 162, ../../sass/admin.scss */
184
180
  #container, .spider-admin-container {
185
- background: url('../../img/css/side_bg.png?1321971233') repeat-y;
181
+ background: url('../../img/css/side_bg.png?1354531644') repeat-y;
186
182
  position: relative;
187
183
  min-width: 940px;
188
184
  padding-left: 20px;
189
185
  padding-right: 20px;
190
- border-bottom: 1px solid #CCCCCC;
186
+ border-bottom: 1px solid #cccccc;
191
187
  min-height: 500px;
192
188
  overflow: hidden;
193
189
  *zoom: 1;
194
190
  }
195
- /* line 171, ../../sass/admin.scss */
191
+ /* line 172, ../../sass/admin.scss */
196
192
  #container #sidebar, #container > .spider-admin-sidebar, .spider-admin-container #sidebar, .spider-admin-container > .spider-admin-sidebar {
197
193
  position: absolute;
198
194
  top: 0;
@@ -200,27 +196,27 @@ body:after {
200
196
  width: 220px;
201
197
  padding: 20px 10px;
202
198
  }
203
- /* line 178, ../../sass/admin.scss */
199
+ /* line 179, ../../sass/admin.scss */
204
200
  #container #sidebar li.active a, #container > .spider-admin-sidebar li.active a, .spider-admin-container #sidebar li.active a, .spider-admin-container > .spider-admin-sidebar li.active a {
205
201
  text-decoration: underline;
206
202
  }
207
- /* line 182, ../../sass/admin.scss */
203
+ /* line 183, ../../sass/admin.scss */
208
204
  #container #sidebar li, #container > .spider-admin-sidebar li, .spider-admin-container #sidebar li, .spider-admin-container > .spider-admin-sidebar li {
209
205
  margin-bottom: 1px;
210
206
  }
211
- /* line 187, ../../sass/admin.scss */
207
+ /* line 188, ../../sass/admin.scss */
212
208
  #container #content, #container > .spider-admin-content, .spider-admin-container #content, .spider-admin-container > .spider-admin-content {
213
209
  margin-left: 240px;
214
210
  }
215
211
 
216
- /* line 192, ../../sass/admin.scss */
212
+ /* line 193, ../../sass/admin.scss */
217
213
  .crud .table {
218
214
  width: auto;
219
215
  min-width: 400px;
220
216
  }
221
217
 
222
218
  @media screen and (max-width: 500px) {
223
- /* line 201, ../../sass/admin.scss */
219
+ /* line 202, ../../sass/admin.scss */
224
220
  #header #main_title {
225
221
  font-size: 10px;
226
222
  }
@@ -0,0 +1,14 @@
1
+ /* line 33, ../../sass/grid.scss */
2
+ body {
3
+ width: 100%;
4
+ *zoom: 1;
5
+ }
6
+ /* line 20, ../../sass/grid.scss */
7
+ body:before, body:after {
8
+ content: "";
9
+ display: table;
10
+ }
11
+ /* line 24, ../../sass/grid.scss */
12
+ body:after {
13
+ clear: both;
14
+ }
@@ -106,8 +106,9 @@ $sidebar_color: #DFDFDF;
106
106
  }
107
107
 
108
108
  div{
109
- width: 55px;
110
- height: 55px;
109
+ min-width: 55px;
110
+ padding: 2px;
111
+ height: 55px;
111
112
  margin: 5px;
112
113
  border: 1px solid #BBBBBB;
113
114
  text-align: center;
@@ -8,6 +8,7 @@
8
8
  </title>
9
9
  <tpl:output-assets type="css" />
10
10
  <tpl:output-assets type="js" />
11
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
11
12
  </head>
12
13
  <body id="spider-admin">
13
14
  <div id="header">
@@ -40,11 +40,16 @@ module Spider; module Auth
40
40
  user = nil
41
41
  unauthorized_exception = nil
42
42
  requested_class = nil
43
+ users = {}
44
+ klasses.uniq.each do |klass|
45
+ user = klass.restore(@request)
46
+ @request.security[:users] << user if user
47
+ users[klass] = user
48
+ end
43
49
  klasses.each do |klass|
44
50
  requested_class = klass
45
- user = klass.restore(@request)
51
+ user = users[klass]
46
52
  if user
47
- @request.security[:users] << user
48
53
  if params[:authentication]
49
54
  user = nil unless user.authenticated?(params[:authentication])
50
55
  elsif (params[:check])
@@ -74,10 +79,11 @@ module Spider; module Auth
74
79
 
75
80
  def try_rescue(exc)
76
81
  if (exc.is_a?(Unauthorized))
77
- base = @current_require[:redirect] ? @current_require[:redirect] : Spider::Auth.request_url+'/login/'
82
+ base = (@current_require && @current_require[:redirect]) ? @current_require[:redirect] : Spider::Auth.request_url+'/login/'
78
83
  base = self.class.url+'/'+base unless base[0].chr == '/'
79
- base += '?'
80
- redir_url = base + 'redirect='+URI.escape(@request.path)
84
+ base += (base.include?("?") ? "&" : "?")
85
+ get_params = @request.params.map{|k,v| "#{k}=#{v}"}.join('&')+"&" || ""
86
+ redir_url = base + get_params +'redirect='+URI.escape(@request.path)
81
87
  @request.session.flash[:unauthorized_exception] = {:class => exc.class.name, :message => exc.message}
82
88
  redirect(redir_url, Spider::HTTP::TEMPORARY_REDIRECT)
83
89
  else
@@ -95,6 +101,10 @@ module Spider; module Auth
95
101
  def user=(val)
96
102
  @user = val
97
103
  end
104
+
105
+ def users
106
+ security[:users]
107
+ end
98
108
 
99
109
  def auth(user_class)
100
110
  return user_class.restore_from_session(self.session)
@@ -1,5 +1,6 @@
1
1
  Spider::Template.define_named_asset 'jquery', [
2
- [:js, 'js/jquery/jquery-1.5.2.js', Spider::Components, {:cdn => 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js'}]
2
+ # [:js, 'js/jquery/jquery-1.5.2.js', Spider::Components, {:cdn => 'https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js'}]
3
+ [:js, 'js/jquery/jquery-1.8.3.js', Spider::Components, {:cdn => 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js'}]
3
4
  ]
4
5
 
5
6
  Spider::Template.define_named_asset 'spider', [
@@ -25,7 +26,7 @@ Spider::Template.define_named_asset 'spider-utils', [
25
26
  # jQuery UI
26
27
 
27
28
  Spider::Template.define_runtime_asset 'jquery-ui-datepicker-locale' do |request, response, scene|
28
- Spider::Components.pub_url+"/js/jquery/jquery-ui-1.8.11/ui/i18n/jquery.ui.datepicker-#{request.locale.language}.js"
29
+ Spider::Components.pub_url+"/js/jquery/jquery-ui-1.9.2/ui/i18n/jquery.ui.datepicker-#{request.locale.language}.js"
29
30
  end
30
31
 
31
32
  Spider::Template.define_named_asset 'jquery-ui', [
@@ -38,80 +39,93 @@ Spider::Template.define_named_asset 'jquery-ui', [
38
39
 
39
40
 
40
41
  Spider::Template.define_named_asset 'jquery-ui-core', [
41
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.core.js', Spider::Components],
42
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.widget.js', Spider::Components],
43
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.mouse.js', Spider::Components],
44
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.position.js', Spider::Components],
45
- [:css, 'js/jquery/jquery-ui-1.8.11/css/Aristo/jquery-ui.custom.css', Spider::Components]
42
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.core.js', Spider::Components],
43
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.widget.js', Spider::Components],
44
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.mouse.js', Spider::Components],
45
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.position.js', Spider::Components],
46
+ [:css, 'js/jquery/jquery-ui-1.9.2/css/Aristo/jquery-ui.custom.css', Spider::Components]
46
47
  ], :depends => ['jquery']
47
48
 
48
49
  Spider::Template.define_named_asset 'jquery-ui-draggable', [
49
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.draggable.js', Spider::Components]
50
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.draggable.js', Spider::Components]
50
51
  ], :depends => ['jquery-ui-core']
51
52
 
52
53
  Spider::Template.define_named_asset 'jquery-ui-droppable', [
53
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.droppable.js', Spider::Components]
54
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.droppable.js', Spider::Components]
54
55
  ], :depends => ['jquery-ui-draggable']
55
56
 
56
57
  Spider::Template.define_named_asset 'jquery-ui-resizable', [
57
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.resizable.js', Spider::Components]
58
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.resizable.js', Spider::Components]
58
59
  ], :depends => ['jquery-ui-core']
59
60
 
60
61
  Spider::Template.define_named_asset 'jquery-ui-selectable', [
61
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.selectable.js', Spider::Components]
62
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.selectable.js', Spider::Components]
62
63
  ], :depends => ['jquery-ui-core']
63
64
 
64
65
  Spider::Template.define_named_asset 'jquery-ui-sortable', [
65
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.sortable.js', Spider::Components]
66
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.sortable.js', Spider::Components]
66
67
  ], :depends => ['jquery-ui-core']
67
68
 
68
69
  Spider::Template.define_named_asset 'jquery-ui-accordion', [
69
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.accordion.js', Spider::Components]
70
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.accordion.js', Spider::Components]
70
71
  ], :depends => ['jquery-ui-core']
71
72
 
72
73
  Spider::Template.define_named_asset 'jquery-ui-autocomplete', [
73
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.autocomplete.js', Spider::Components]
74
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.autocomplete.js', Spider::Components]
74
75
  ], :depends => ['jquery-ui-core']
75
76
 
76
77
  Spider::Template.define_named_asset 'jquery-ui-button', [
77
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.button.js', Spider::Components]
78
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.button.js', Spider::Components]
78
79
  ], :depends => ['jquery-ui-core']
79
80
 
80
81
  Spider::Template.define_named_asset 'jquery-ui-dialog', [
81
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.dialog.js', Spider::Components]
82
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.dialog.js', Spider::Components]
82
83
  ], :depends => ['jquery-ui-core']
83
84
 
84
85
  Spider::Template.define_named_asset 'jquery-ui-slider', [
85
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.slider.js', Spider::Components]
86
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.slider.js', Spider::Components]
86
87
  ], :depends => ['jquery-ui-core']
87
88
 
88
89
  Spider::Template.define_named_asset 'jquery-ui-tabs', [
89
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.tabs.js', Spider::Components]
90
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.tabs.js', Spider::Components]
90
91
  ], :depends => ['jquery-ui-core']
91
92
 
92
93
  Spider::Template.define_named_asset 'jquery-ui-datepicker', [
93
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.datepicker.js', Spider::Components],
94
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.datepicker.js', Spider::Components],
94
95
  [:js, 'jquery-ui-datepicker-locale', :runtime]
95
96
  ], :depends => ['jquery-ui-core']
96
97
 
97
98
  Spider::Template.define_named_asset 'jquery-ui-progressbar', [
98
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.ui.progressbar.js', Spider::Components]
99
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.progressbar.js', Spider::Components]
100
+ ], :depends => ['jquery-ui-core']
101
+
102
+ Spider::Template.define_named_asset 'jquery-ui-menu', [
103
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.menu.js', Spider::Components]
104
+ ], :depends => ['jquery-ui-core']
105
+
106
+ Spider::Template.define_named_asset 'jquery-ui-spinner', [
107
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.spinner.js', Spider::Components]
108
+ ], :depends => ['jquery-ui-core']
109
+
110
+ Spider::Template.define_named_asset 'jquery-ui-tooltip', [
111
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.tooltip.js', Spider::Components]
99
112
  ], :depends => ['jquery-ui-core']
100
113
 
101
114
  Spider::Template.define_named_asset 'jquery-effects', [
102
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.core.js', Spider::Components],
103
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.blind.js', Spider::Components],
104
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.bounce.js', Spider::Components],
105
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.clip.js', Spider::Components],
106
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.drop.js', Spider::Components],
107
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.explode.js', Spider::Components],
108
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.fold.js', Spider::Components],
109
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.highlight.js', Spider::Components],
110
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.pulsate.js', Spider::Components],
111
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.scale.js', Spider::Components],
112
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.shake.js', Spider::Components],
113
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.slide.js', Spider::Components],
114
- [:js, 'js/jquery/jquery-ui-1.8.11/ui/jquery.effects.transfer.js', Spider::Components]
115
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect.js', Spider::Components],
116
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-blind.js', Spider::Components],
117
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-bounce.js', Spider::Components],
118
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-clip.js', Spider::Components],
119
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-drop.js', Spider::Components],
120
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-explode.js', Spider::Components],
121
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-fade.js', Spider::Components],
122
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-fold.js', Spider::Components],
123
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-highlight.js', Spider::Components],
124
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-pulsate.js', Spider::Components],
125
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-scale.js', Spider::Components],
126
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-shake.js', Spider::Components],
127
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-slide.js', Spider::Components],
128
+ [:js, 'js/jquery/jquery-ui-1.9.2/ui/jquery.ui.effect-transfer.js', Spider::Components]
115
129
  ], :depends => ['jquery-ui-core']
116
130
 
117
131
  # jQuery Tools (http://flowplayer.org/tools/)
@@ -151,33 +165,38 @@ Spider::Template.define_named_asset 'bootstrap-sass', [
151
165
  ]
152
166
 
153
167
  Spider::Template.define_named_asset 'bootstrap-alerts', [
154
- [:js, 'bootstrap/js/bootstrap-alerts.js']
168
+ [:js, 'bootstrap/js/bootstrap-alerts.js', Spider::Components]
155
169
  ]
156
170
 
157
171
  Spider::Template.define_named_asset 'bootstrap-buttons', [
158
- [:js, 'bootstrap/js/bootstrap-buttons.js']
172
+ [:js, 'bootstrap/js/bootstrap-buttons.js', Spider::Components]
159
173
  ]
160
174
 
161
175
  Spider::Template.define_named_asset 'bootstrap-dropdown', [
162
- [:js, 'bootstrap/js/bootstrap-dropdown.js']
176
+ [:js, 'bootstrap/js/bootstrap-dropdown.js', Spider::Components]
163
177
  ]
164
178
 
165
179
  Spider::Template.define_named_asset 'bootstrap-modal', [
166
- [:js, 'bootstrap/js/bootstrap-modal.js']
180
+ [:js, 'bootstrap/js/bootstrap-modal.js', Spider::Components]
181
+ ]
182
+
183
+ Spider::Template.define_named_asset 'bootstrap-tooltip', [
184
+ [:js, 'bootstrap/js/bootstrap-tooltip.js', Spider::Components]
167
185
  ]
168
186
 
187
+
169
188
  Spider::Template.define_named_asset 'bootstrap-popover', [
170
- [:js, 'bootstrap/js//bootstrap-popover.js']
189
+ [:js, 'bootstrap/js/bootstrap-popover.js', Spider::Components]
171
190
  ]
172
191
 
173
192
  Spider::Template.define_named_asset 'bootstrap-scrollspy', [
174
- [:js, 'bootstrap/js//bootstrap-scrollspy.js']
193
+ [:js, 'bootstrap/js/bootstrap-scrollspy.js', Spider::Components]
175
194
  ]
176
195
 
177
196
  Spider::Template.define_named_asset 'bootstrap-tabs', [
178
- [:js, 'bootstrap/js//bootstrap-tabs.js']
197
+ [:js, 'bootstrap/js/bootstrap-tabs.js', Spider::Components]
179
198
  ]
180
199
 
181
200
  Spider::Template.define_named_asset 'bootstrap-twipsy', [
182
- [:js, 'bootstrap/js//bootstrap-twipsy.js']
201
+ [:js, 'bootstrap/js/bootstrap-twipsy.js', Spider::Components]
183
202
  ]