adva-core 0.0.1

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 (279) hide show
  1. data/app/controllers/admin/base_controller.rb +21 -0
  2. data/app/controllers/admin/pages_controller.rb +9 -0
  3. data/app/controllers/admin/sections_controller.rb +36 -0
  4. data/app/controllers/admin/sites_controller.rb +18 -0
  5. data/app/controllers/articles_controller.rb +3 -0
  6. data/app/controllers/base_controller.rb +22 -0
  7. data/app/controllers/installations_controller.rb +28 -0
  8. data/app/controllers/pages_controller.rb +2 -0
  9. data/app/controllers/sections_controller.rb +3 -0
  10. data/app/helpers/form_helper.rb +13 -0
  11. data/app/helpers/sections_helper.rb +7 -0
  12. data/app/helpers/url_helper.rb +18 -0
  13. data/app/models/account.rb +3 -0
  14. data/app/models/article.rb +2 -0
  15. data/app/models/content.rb +4 -0
  16. data/app/models/page.rb +17 -0
  17. data/app/models/section.rb +59 -0
  18. data/app/models/site.rb +26 -0
  19. data/app/views/admin/pages/_menu.html.rb +30 -0
  20. data/app/views/admin/pages/new.html.rb +19 -0
  21. data/app/views/admin/pages/show.html.rb +25 -0
  22. data/app/views/admin/sections/_menu.html.rb +12 -0
  23. data/app/views/admin/sections/_section.html.rb +7 -0
  24. data/app/views/admin/sections/_select_type.html.rb +16 -0
  25. data/app/views/admin/sections/index.html.rb +28 -0
  26. data/app/views/admin/sites/_menu.html.rb +6 -0
  27. data/app/views/admin/sites/edit.html.rb +22 -0
  28. data/app/views/admin/sites/index.html.rb +12 -0
  29. data/app/views/admin/sites/new.html.rb +39 -0
  30. data/app/views/admin/sites/show.html.rb +7 -0
  31. data/app/views/installations/new.html.rb +39 -0
  32. data/app/views/installations/show.html.rb +9 -0
  33. data/app/views/layouts/_flash.html.rb +9 -0
  34. data/app/views/layouts/admin.rb +38 -0
  35. data/app/views/layouts/admin/_header.rb +48 -0
  36. data/app/views/layouts/admin/_tabs.html.rb +18 -0
  37. data/app/views/layouts/admin/_top.rb +56 -0
  38. data/app/views/layouts/base.rb +58 -0
  39. data/app/views/layouts/default.rb +31 -0
  40. data/app/views/layouts/default/_menu.rb +24 -0
  41. data/app/views/layouts/simple.rb +16 -0
  42. data/app/views/pages/show.html.rb +7 -0
  43. data/config/initializers/simple_form.rb +53 -0
  44. data/config/locales/en.yml +137 -0
  45. data/config/redirects.rb +8 -0
  46. data/config/routes.rb +21 -0
  47. data/lib/adva-core.rb +1 -0
  48. data/lib/adva.rb +37 -0
  49. data/lib/adva/active_record/has_options.rb +55 -0
  50. data/lib/adva/cli.rb +16 -0
  51. data/lib/adva/controller.rb +7 -0
  52. data/lib/adva/controller/abstract_actions.rb +87 -0
  53. data/lib/adva/controller/internal_redirect.rb +26 -0
  54. data/lib/adva/controller/references.rb +28 -0
  55. data/lib/adva/core.rb +84 -0
  56. data/lib/adva/engine.rb +64 -0
  57. data/lib/adva/engine/sliced_models.rb +35 -0
  58. data/lib/adva/generators.rb +8 -0
  59. data/lib/adva/generators/app.rb +121 -0
  60. data/lib/adva/generators/engine.rb +58 -0
  61. data/lib/adva/generators/gemfile.rb +50 -0
  62. data/lib/adva/generators/install.rb +31 -0
  63. data/lib/adva/generators/templates/app/app_template.rb +3 -0
  64. data/lib/adva/generators/templates/engine/Gemfile.erb +3 -0
  65. data/lib/adva/generators/templates/engine/all.rb +1 -0
  66. data/lib/adva/generators/templates/engine/en.yml.erb +2 -0
  67. data/lib/adva/generators/templates/engine/engine.rb.erb +11 -0
  68. data/lib/adva/generators/templates/engine/gemspec.erb +21 -0
  69. data/lib/adva/generators/templates/engine/migration.rb.erb +11 -0
  70. data/lib/adva/generators/templates/engine/redirects.rb.erb +3 -0
  71. data/lib/adva/generators/templates/engine/routes.rb.erb +3 -0
  72. data/lib/adva/generators/templates/engine/test_helper.rb.erb +3 -0
  73. data/lib/adva/rack.rb +5 -0
  74. data/lib/adva/rack/static.rb +50 -0
  75. data/lib/adva/registry.rb +62 -0
  76. data/lib/adva/responder.rb +21 -0
  77. data/lib/adva/responder/redirect.rb +31 -0
  78. data/lib/adva/routing_filters/section_path.rb +72 -0
  79. data/lib/adva/routing_filters/section_root.rb +65 -0
  80. data/lib/adva/tasks/core.rake +9 -0
  81. data/lib/adva/tasks/core.rb +160 -0
  82. data/lib/adva/testing.rb +57 -0
  83. data/lib/adva/testing/engine.rb +37 -0
  84. data/lib/adva/view.rb +7 -0
  85. data/lib/adva/view/form.rb +44 -0
  86. data/lib/adva/view/form/tabs.rb +46 -0
  87. data/lib/adva/view/menu.rb +51 -0
  88. data/lib/adva/view/menu/admin.rb +48 -0
  89. data/lib/adva/view/tabs.rb +28 -0
  90. data/lib/core_ext/rails/action_view/has_many_through_collection_helpers.rb +27 -0
  91. data/lib/core_ext/rails/active_record/skip_callbacks.rb +51 -0
  92. data/lib/core_ext/ruby/array/flatten_once.rb +9 -0
  93. data/lib/core_ext/ruby/kernel/silence_stream.rb +17 -0
  94. data/lib/core_ext/ruby/module/include_anonymous.rb +36 -0
  95. data/lib/core_ext/ruby/module/option_reader.rb +9 -0
  96. data/lib/patches/arel/table_initialization_fixes.rb +68 -0
  97. data/lib/patches/inherited_resources.rb +34 -0
  98. data/lib/patches/rails/arel_table_options_fix.rb +13 -0
  99. data/lib/patches/rails/asset_expansion_multiple_registrations.rb +21 -0
  100. data/lib/patches/rails/recognize_path_env.rb +43 -0
  101. data/lib/patches/rails/route_set_to_param.rb +25 -0
  102. data/lib/patches/rails/sti_associations.rb +17 -0
  103. data/lib/patches/rails/template_resolver_caching.rb +9 -0
  104. data/lib/patches/rails/url_for.rb +60 -0
  105. data/lib/patches/simple_form.rb +37 -0
  106. data/lib/patches/thor/core_ext/hash.rb +7 -0
  107. data/lib/patches/thor/group/symbolized_options.rb +8 -0
  108. data/lib/patches/webrat/links-data-method.rb +19 -0
  109. data/lib/patches/webrat/logger.rb +19 -0
  110. data/lib/patches/webrat/upload_file.rb +28 -0
  111. data/lib/testing/assertions.rb +19 -0
  112. data/lib/testing/factories.rb +30 -0
  113. data/lib/testing/helpers/global_helpers.rb +9 -0
  114. data/lib/testing/paths.rb +54 -0
  115. data/lib/testing/step_definitions/common_steps.rb +279 -0
  116. data/lib/testing/step_definitions/menu_steps.rb +11 -0
  117. data/lib/testing/step_definitions/routes_steps.rb +18 -0
  118. data/lib/testing/step_definitions/transforms.rb +43 -0
  119. data/lib/testing/step_definitions/webrat_steps.rb +291 -0
  120. data/lib/testing/step_definitions/within_steps.rb +17 -0
  121. data/lib/webrat/integrations/rails.rb +33 -0
  122. data/public/images/adva-core/admin/header_bg.png +0 -0
  123. data/public/images/adva-core/admin/menu_checkmark.png +0 -0
  124. data/public/images/adva-core/admin/section_menu_bg.png +0 -0
  125. data/public/images/adva-core/admin/tab_action_active.png +0 -0
  126. data/public/images/adva-core/admin/tab_main_active.png +0 -0
  127. data/public/images/adva-core/admin/tab_sidebar_active.png +0 -0
  128. data/public/images/adva-core/admin/tab_top_active.png +0 -0
  129. data/public/images/adva-core/asset_selected.png +0 -0
  130. data/public/images/adva-core/avatar.gif +0 -0
  131. data/public/images/adva-core/feed.mini.png +0 -0
  132. data/public/images/adva-core/filter-bg.png +0 -0
  133. data/public/images/adva-core/grid.png +0 -0
  134. data/public/images/adva-core/icons/accept.png +0 -0
  135. data/public/images/adva-core/icons/add.png +0 -0
  136. data/public/images/adva-core/icons/arrow_cross.png +0 -0
  137. data/public/images/adva-core/icons/arrow_cross_2.png +0 -0
  138. data/public/images/adva-core/icons/arrow_cross_3.png +0 -0
  139. data/public/images/adva-core/icons/arrow_up_down.png +0 -0
  140. data/public/images/adva-core/icons/assets/audio.png +0 -0
  141. data/public/images/adva-core/icons/assets/doc.png +0 -0
  142. data/public/images/adva-core/icons/assets/pdf.png +0 -0
  143. data/public/images/adva-core/icons/assets/video.png +0 -0
  144. data/public/images/adva-core/icons/attach.png +0 -0
  145. data/public/images/adva-core/icons/bin.png +0 -0
  146. data/public/images/adva-core/icons/bin_closed.png +0 -0
  147. data/public/images/adva-core/icons/bin_empty.png +0 -0
  148. data/public/images/adva-core/icons/bullet_black.png +0 -0
  149. data/public/images/adva-core/icons/bullet_delete.png +0 -0
  150. data/public/images/adva-core/icons/bullet_error.png +0 -0
  151. data/public/images/adva-core/icons/bullet_go.png +0 -0
  152. data/public/images/adva-core/icons/bullet_red.png +0 -0
  153. data/public/images/adva-core/icons/bullet_white.png +0 -0
  154. data/public/images/adva-core/icons/bullet_yellow.png +0 -0
  155. data/public/images/adva-core/icons/cancel.png +0 -0
  156. data/public/images/adva-core/icons/comment.gif +0 -0
  157. data/public/images/adva-core/icons/comment.png +0 -0
  158. data/public/images/adva-core/icons/comment_add.png +0 -0
  159. data/public/images/adva-core/icons/comment_blue.gif +0 -0
  160. data/public/images/adva-core/icons/comment_delete.png +0 -0
  161. data/public/images/adva-core/icons/comment_edit.png +0 -0
  162. data/public/images/adva-core/icons/comment_yellow.gif +0 -0
  163. data/public/images/adva-core/icons/cross.png +0 -0
  164. data/public/images/adva-core/icons/delete.png +0 -0
  165. data/public/images/adva-core/icons/eye.png +0 -0
  166. data/public/images/adva-core/icons/favorites.png +0 -0
  167. data/public/images/adva-core/icons/help.png +0 -0
  168. data/public/images/adva-core/icons/hourglass.png +0 -0
  169. data/public/images/adva-core/icons/icon_attachment.gif +0 -0
  170. data/public/images/adva-core/icons/icon_padlock.gif +0 -0
  171. data/public/images/adva-core/icons/link.png +0 -0
  172. data/public/images/adva-core/icons/lock.png +0 -0
  173. data/public/images/adva-core/icons/magnifier.png +0 -0
  174. data/public/images/adva-core/icons/minus.gif +0 -0
  175. data/public/images/adva-core/icons/page_add.png +0 -0
  176. data/public/images/adva-core/icons/page_delete.png +0 -0
  177. data/public/images/adva-core/icons/page_edit.png +0 -0
  178. data/public/images/adva-core/icons/page_favorites.png +0 -0
  179. data/public/images/adva-core/icons/page_go.png +0 -0
  180. data/public/images/adva-core/icons/page_green.png +0 -0
  181. data/public/images/adva-core/icons/page_red.png +0 -0
  182. data/public/images/adva-core/icons/page_white_add.png +0 -0
  183. data/public/images/adva-core/icons/page_white_delete.png +0 -0
  184. data/public/images/adva-core/icons/page_white_edit.png +0 -0
  185. data/public/images/adva-core/icons/page_white_go.png +0 -0
  186. data/public/images/adva-core/icons/page_white_link.png +0 -0
  187. data/public/images/adva-core/icons/page_white_magnify.png +0 -0
  188. data/public/images/adva-core/icons/pencil.png +0 -0
  189. data/public/images/adva-core/icons/star.png +0 -0
  190. data/public/images/adva-core/icons/stop.png +0 -0
  191. data/public/images/adva-core/icons/tag_green.png +0 -0
  192. data/public/images/adva-core/icons/tick.png +0 -0
  193. data/public/images/adva-core/icons/zoom.png +0 -0
  194. data/public/images/adva-core/indicator.gif +0 -0
  195. data/public/images/adva-core/lines.png +0 -0
  196. data/public/images/adva-core/preview.png +0 -0
  197. data/public/images/adva-core/rails.png +0 -0
  198. data/public/images/adva-core/sortable_tree/drag.png +0 -0
  199. data/public/images/adva-core/theme_selected.png +0 -0
  200. data/public/javascripts/adva-core/admin.js +21 -0
  201. data/public/javascripts/adva-core/jquery/jquery-1.4.2.min.js +154 -0
  202. data/public/javascripts/adva-core/jquery/jquery.table_tree.js +292 -0
  203. data/public/javascripts/adva-core/jquery/jquery.tablednd_0_5.js +386 -0
  204. data/public/javascripts/adva-core/rails.js +127 -0
  205. data/public/javascripts/backup/admin/jquery.admin.js +77 -0
  206. data/public/javascripts/backup/admin/jquery.article.js +22 -0
  207. data/public/javascripts/backup/admin/jquery.cached_pages.js +14 -0
  208. data/public/javascripts/backup/admin/jquery.table_tree.backup.js +279 -0
  209. data/public/javascripts/backup/admin/jquery.table_tree.js +10 -0
  210. data/public/javascripts/backup/application.js +38 -0
  211. data/public/javascripts/backup/application.prototype.js +135 -0
  212. data/public/javascripts/backup/builder.js +136 -0
  213. data/public/javascripts/backup/controls.js +965 -0
  214. data/public/javascripts/backup/cookie.js +49 -0
  215. data/public/javascripts/backup/dragdrop.js +975 -0
  216. data/public/javascripts/backup/effects.js +1130 -0
  217. data/public/javascripts/backup/flash.js +49 -0
  218. data/public/javascripts/backup/jquery.dates.js +49 -0
  219. data/public/javascripts/backup/jquery.flash.js +40 -0
  220. data/public/javascripts/backup/jquery.roles.js +23 -0
  221. data/public/javascripts/backup/jquery/jquery-lowpro.js +224 -0
  222. data/public/javascripts/backup/jquery/jquery-ui.js +273 -0
  223. data/public/javascripts/backup/jquery/jquery.js +19 -0
  224. data/public/javascripts/backup/jquery/jquery.qtip.min.js +15 -0
  225. data/public/javascripts/backup/json.js +139 -0
  226. data/public/javascripts/backup/lowpro.js +320 -0
  227. data/public/javascripts/backup/parseuri.js +39 -0
  228. data/public/javascripts/backup/prototype.js +4320 -0
  229. data/public/javascripts/backup/roles.js +16 -0
  230. data/public/javascripts/backup/scriptaculous.js +60 -0
  231. data/public/javascripts/backup/slider.js +275 -0
  232. data/public/javascripts/backup/sound.js +55 -0
  233. data/public/javascripts/backup/unittest.js +568 -0
  234. data/public/stylesheets/adva-core/admin/forms.css +172 -0
  235. data/public/stylesheets/adva-core/admin/layout.css +38 -0
  236. data/public/stylesheets/adva-core/admin/lists.css +54 -0
  237. data/public/stylesheets/adva-core/admin/navigation.css +234 -0
  238. data/public/stylesheets/adva-core/admin/sidebar.css +87 -0
  239. data/public/stylesheets/adva-core/admin/styles.css +128 -0
  240. data/public/stylesheets/adva-core/common/forms.css +174 -0
  241. data/public/stylesheets/adva-core/common/layout.css +93 -0
  242. data/public/stylesheets/adva-core/common/reset.css +42 -0
  243. data/public/stylesheets/adva-core/common/styles.css +41 -0
  244. data/public/stylesheets/adva-core/default/layout.css +0 -0
  245. data/public/stylesheets/adva-core/default/styles.css +30 -0
  246. data/public/stylesheets/adva-core/simple/layout.css +11 -0
  247. data/public/stylesheets/backup/alternate/common.css +76 -0
  248. data/public/stylesheets/backup/alternate/forms.css +121 -0
  249. data/public/stylesheets/backup/alternate/header.css +125 -0
  250. data/public/stylesheets/backup/alternate/layout.css +103 -0
  251. data/public/stylesheets/backup/alternate/lists.css +153 -0
  252. data/public/stylesheets/backup/alternate/sidebar.css +65 -0
  253. data/public/stylesheets/backup/alternate/top.css +123 -0
  254. data/public/stylesheets/backup/content.css +11 -0
  255. data/public/stylesheets/backup/helptip.css +35 -0
  256. data/public/stylesheets/backup/jquery/alternate/jquery.tooltip.css +13 -0
  257. data/public/stylesheets/backup/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  258. data/public/stylesheets/backup/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  259. data/public/stylesheets/backup/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  260. data/public/stylesheets/backup/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  261. data/public/stylesheets/backup/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  262. data/public/stylesheets/backup/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  263. data/public/stylesheets/backup/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  264. data/public/stylesheets/backup/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  265. data/public/stylesheets/backup/jquery/images/ui-icons_222222_256x240.png +0 -0
  266. data/public/stylesheets/backup/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
  267. data/public/stylesheets/backup/jquery/images/ui-icons_454545_256x240.png +0 -0
  268. data/public/stylesheets/backup/jquery/images/ui-icons_888888_256x240.png +0 -0
  269. data/public/stylesheets/backup/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
  270. data/public/stylesheets/backup/jquery/jquery-ui.css +406 -0
  271. data/public/stylesheets/backup/jquery/jquery.tooltip.css +10 -0
  272. data/public/stylesheets/backup/layout.css +22 -0
  273. data/public/stylesheets/backup/lists.css +17 -0
  274. data/public/stylesheets/backup/menu.css +129 -0
  275. data/public/stylesheets/backup/projection.css +118 -0
  276. data/public/stylesheets/backup/screen/top.css +8 -0
  277. data/public/stylesheets/backup/themes.css +49 -0
  278. data/public/stylesheets/backup/users.css +40 -0
  279. metadata +536 -0
@@ -0,0 +1,6 @@
1
+ class Admin::Sites::Menu < Adva::View::Menu::Admin::Actions
2
+ include do
3
+ def right
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,22 @@
1
+ class Admin::Sites::Edit < Adva::View::Form
2
+ include do
3
+ def to_html
4
+ h2 :'.title'
5
+ super
6
+ end
7
+
8
+ def fields
9
+ fieldset do
10
+ column do
11
+ form.input :name
12
+ form.input :title
13
+ end
14
+
15
+ column do
16
+ form.input :host
17
+ form.input :subtitle
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,12 @@
1
+ class Admin::Sites::Index < Minimal::Template
2
+ include do
3
+ def to_html
4
+ h2 :'.title'
5
+ ul do
6
+ collection.each do |site| # TODO collection must be scoped to account
7
+ li { link_to(site.name, [:admin, site]) }
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,39 @@
1
+ class Admin::Sites::New < Adva::View::Form
2
+ include do
3
+ def to_html
4
+ h2 :'.title'
5
+ super
6
+ end
7
+
8
+ def fields
9
+ fieldset do
10
+ column do
11
+ form.input :name
12
+ form.input :host
13
+ end
14
+
15
+ column do
16
+ form.input :title
17
+ end
18
+ end
19
+
20
+ fieldset do
21
+ form.simple_fields_for(:sections) do |s|
22
+ column do
23
+ s.input :name, :label => t(:'.section_name')
24
+ end
25
+
26
+ column do
27
+ s.label :type
28
+ div :class => :radio_group do
29
+ section_types_option_values.each do |name, value|
30
+ s.radio_button :type, value
31
+ s.label "type_#{value.underscore}", name, :class => :inline
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,7 @@
1
+ class Admin::Sites::Show < Minimal::Template
2
+ include do
3
+ def to_html
4
+ # dashboard
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,39 @@
1
+ class Installations::New < Adva::View::Form
2
+ include do
3
+ def form_tag
4
+ h2 :'.title'
5
+ p :'.welcome'
6
+ super
7
+ end
8
+
9
+ def form_arguments
10
+ [resource, { :url => installations_path }]
11
+ end
12
+
13
+ def fields
14
+ form.label :name
15
+ form.text_field :name
16
+
17
+ form.simple_fields_for(:sections) do |s|
18
+ s.input :name, :label => t(:'.section_name')
19
+
20
+ s.label :type
21
+ section_types_option_values.each do |name, value|
22
+ s.radio_button :type, value
23
+ s.label :"type_#{value.underscore}", name, :class => :inline
24
+ end
25
+ end
26
+ end
27
+
28
+ # f.field_set :admin_account do
29
+ # fields_for @user do |user|
30
+ # column do
31
+ # user.text_field :email, :label => true, :tabindex => 3
32
+ # end
33
+ # column do
34
+ # user.password_field :password, :label => true, :tabindex => 4
35
+ # end
36
+ # end
37
+ # end
38
+ end
39
+ end
@@ -0,0 +1,9 @@
1
+ class Installations::Show < Minimal::Template
2
+ include do
3
+ def to_html
4
+ h2 :'.title'
5
+ p :'.confirm'
6
+ p { link_to(:'.link_to_admin', admin_site_path(resource)) }
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Layouts
2
+ class Flash < Minimal::Template
3
+ def to_html
4
+ controller.flash.each do |name, value|
5
+ div value, :id => "flash_#{name}", :class => "flash #{name}"
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,38 @@
1
+ module Layouts
2
+ class Admin < Layouts::Base
3
+ include do
4
+ def head
5
+ csrf_meta_tag
6
+ super
7
+ end
8
+
9
+ def body
10
+ div do
11
+ header
12
+ div :id => 'page' do
13
+ div :id => 'main', :class => 'main' do
14
+ render :partial => 'layouts/flash'
15
+ div :id => 'content' do
16
+ content
17
+ end
18
+ end
19
+ div :id => 'sidebar', :class => 'right' do
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ def header
26
+ render :partial => 'layouts/admin/header'
27
+ end
28
+
29
+ def stylesheets
30
+ stylesheet_link_tag :admin
31
+ end
32
+
33
+ def javascripts
34
+ javascript_include_tag :admin
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,48 @@
1
+ class Layouts::Admin::Header < Minimal::Template
2
+ include do
3
+ def to_html
4
+ render :partial => 'layouts/admin/top'
5
+
6
+ div :class => 'header' do
7
+ div :class => 'main' do
8
+ end
9
+ div :class => 'right' do
10
+ right
11
+ end
12
+ end
13
+
14
+ div :class => 'header' do
15
+ div :class => 'main' do
16
+ menu
17
+ end
18
+ div :class => 'right' do
19
+ end
20
+ end
21
+ end
22
+
23
+ def breadcrumbs
24
+ div :id => 'breadcrumbs' do
25
+ # breadcrumbs
26
+ end
27
+ end
28
+
29
+ def menu
30
+ render :partial => "admin/#{controller_name.gsub('_controller', '')}/menu"
31
+ end
32
+
33
+ def right
34
+ link_to_website
35
+ # language_select
36
+ end
37
+
38
+ def link_to_website
39
+ site = try(:site)
40
+ link_to(t('.website'), public_url, :id => 'go_to_website') if site && site.persisted?
41
+ end
42
+
43
+ def language_select
44
+ self << t('.change_language')
45
+ select_tag :lang, options_for_select(I18n.available_locales.map { |l| l.to_s}, I18n.locale.to_s )
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,18 @@
1
+ class Layouts::Admin::Tabs < Minimal::Template
2
+ def to_html
3
+ div :class => :tabs do
4
+ ul do
5
+ tabs.each do |tab|
6
+ li(:class => tab.active? ? :active : '') do
7
+ link_to(:"admin.sidebar.tabs.#{tab.name}", "##{tab.name}")
8
+ end
9
+ end
10
+ end
11
+ # tabs.each do |tab|
12
+ # div :id => tab.name, :class => "tab #{tab.active? ? :active : ''}" do
13
+ # # div { tab.blocks.each { |block| block.call } }
14
+ # end
15
+ # end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,56 @@
1
+ class Layouts::Admin::Top < Adva::View::Menu::Admin
2
+ id :top
3
+
4
+ include do
5
+ def main
6
+ if site.try(:persisted?)
7
+ sites
8
+ sections unless site.new_record?
9
+ item(:'.assets', url_for([:admin, site, :assets])) if defined?(Asset)
10
+ else
11
+ item(:'.sites', url_for([:admin, :sites]))
12
+ end
13
+ end
14
+
15
+ def right
16
+ if site.try(:persisted?)
17
+ item(:'.settings', url_for([:edit, :admin, site]))
18
+ end
19
+ end
20
+
21
+ protected
22
+
23
+ def sites
24
+ label(site.name, url_for([:admin, :sites])) do
25
+ ul(:class => 'sites') do
26
+ account.sites.each do |site|
27
+ item(site.name, url_for([:admin, site])) unless site.new_record?
28
+ end
29
+ item(:'.new_site', url_for([:new, :admin, :site]))
30
+ end
31
+ end
32
+ end
33
+
34
+ def sections
35
+ item(:'.sections', url_for([:admin, site, :sections])) do
36
+ ul(:class => 'sections') do
37
+ site.sections.each do |section|
38
+ item(section.name, url_for([:admin, site, section]), :class => :section)
39
+ end
40
+ item(:'.new_section', url_for([:new, :admin, site, :section]))
41
+ end
42
+ end
43
+ end
44
+
45
+ def active?(url, options)
46
+ return false if url =~ %r(/admin/sites$) && request.path !~ %r(/admin/sites(/\d+?)?$)
47
+ super
48
+ end
49
+
50
+ def path_and_parents(path)
51
+ paths = super
52
+ paths.detect { |path| path.gsub!(/(#{Section.types.map(&:tableize).join('|')})$/) { 'sections' } }
53
+ paths
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,58 @@
1
+ class Layouts::Base < Minimal::Template
2
+ include do
3
+ def to_html
4
+ self << doctype
5
+ html do
6
+ content_tag :head do
7
+ head
8
+ end
9
+ content_tag :body do
10
+ body
11
+ end
12
+ end
13
+ end
14
+
15
+ def head
16
+ tag(:meta, :'http-equiv' => 'Content-Type', :content => 'text/html; charset=utf-8')
17
+ tag(:meta, :'generator' => 'adva-cms2')
18
+ title
19
+ stylesheets
20
+ javascripts
21
+ block.call(:head)
22
+ end
23
+
24
+ def doctype
25
+ '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'.html_safe
26
+ end
27
+
28
+ def title(title = nil)
29
+ super(title || default_title)
30
+ end
31
+
32
+ def stylesheets(*names)
33
+ stylesheet_link_tag *[:common, name.to_sym].concat(names)
34
+ end
35
+
36
+ def javascripts(*names)
37
+ javascript_include_tag *[:common, name.to_sym].concat(names)
38
+ end
39
+
40
+ def header
41
+ end
42
+
43
+ def body
44
+ end
45
+
46
+ def content
47
+ block.call
48
+ end
49
+
50
+ def name
51
+ @name ||= self.class.name.demodulize.underscore.to_sym
52
+ end
53
+
54
+ def default_title
55
+ "#{controller.controller_name.titleize}: #{params[:action].titleize}"
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,31 @@
1
+ class Layouts::Default < Layouts::Base
2
+ include do
3
+ def title
4
+ super(site.title)
5
+ end
6
+
7
+ def body
8
+ div :id => :page do
9
+ div :id => :header do
10
+ h1 site.title
11
+ h4 site.subtitle unless site.subtitle.blank?
12
+ render :partial => 'layouts/default/menu'
13
+ end
14
+ div :id => :main do
15
+ content
16
+ end
17
+ end
18
+ div :id => :footer do
19
+ footer
20
+ end
21
+ end
22
+
23
+ def footer
24
+ ul :class => :left do
25
+ li :'.made_with'
26
+ end
27
+ ul :class => :right do
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,24 @@
1
+ class Layouts::Default::Menu < Adva::View::Menu
2
+ include do
3
+ def to_html
4
+ ul(:id => :menu) do
5
+ site.sections.each do |section|
6
+ item(section.name, url_for(section))
7
+ end
8
+ end
9
+ end
10
+
11
+ protected
12
+
13
+ def active?(url, options)
14
+ return false if url =~ %r(/admin/sites(/\d+)?$) && request.fullpath != url
15
+ super
16
+ end
17
+
18
+ # def path_and_parents(path)
19
+ # paths = super
20
+ # paths.detect { |path| path.gsub!(/(#{Section.types.map(&:tableize).join('|')})$/) { 'sections' } }
21
+ # paths
22
+ # end
23
+ end
24
+ end
@@ -0,0 +1,16 @@
1
+ class Layouts::Simple < Layouts::Base
2
+ include do
3
+ def body
4
+ div do
5
+ div :id => 'page' do
6
+ div :class => 'main' do
7
+ div :id => 'content' do
8
+ render :partial => 'layouts/flash'
9
+ content
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end