adva-core 0.0.3 → 0.0.4

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 (285) hide show
  1. data/app/controllers/admin/base_controller.rb +20 -0
  2. data/app/controllers/admin/pages_controller.rb +7 -0
  3. data/app/controllers/admin/sections_controller.rb +22 -0
  4. data/app/controllers/admin/sites_controller.rb +16 -0
  5. data/app/controllers/articles_controller.rb +3 -0
  6. data/app/controllers/base_controller.rb +18 -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 +9 -0
  17. data/app/models/section.rb +49 -0
  18. data/app/models/site.rb +24 -0
  19. data/app/views/admin/contents/_menu.html.rb +17 -0
  20. data/app/views/admin/pages/_menu.html.rb +10 -0
  21. data/app/views/admin/pages/new.html.rb +19 -0
  22. data/app/views/admin/pages/show.html.rb +25 -0
  23. data/app/views/admin/sections/_menu.html.rb +45 -0
  24. data/app/views/admin/sections/_section.html.rb +7 -0
  25. data/app/views/admin/sections/_select_type.html.rb +16 -0
  26. data/app/views/admin/sections/index.html.rb +28 -0
  27. data/app/views/admin/sites/_menu.html.rb +2 -0
  28. data/app/views/admin/sites/edit.html.rb +22 -0
  29. data/app/views/admin/sites/index.html.rb +24 -0
  30. data/app/views/admin/sites/new.html.rb +39 -0
  31. data/app/views/admin/sites/show.html.rb +7 -0
  32. data/app/views/installations/new.html.rb +39 -0
  33. data/app/views/installations/show.html.rb +9 -0
  34. data/app/views/layouts/admin.rb +55 -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 +62 -0
  38. data/app/views/layouts/base.rb +64 -0
  39. data/app/views/layouts/default.rb +46 -0
  40. data/app/views/layouts/default/_menu.rb +19 -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 +129 -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 +40 -0
  49. data/lib/adva/active_record/has_one_default.rb +40 -0
  50. data/lib/adva/active_record/has_options.rb +55 -0
  51. data/lib/adva/cli.rb +16 -0
  52. data/lib/adva/controller.rb +7 -0
  53. data/lib/adva/controller/abstract_actions.rb +92 -0
  54. data/lib/adva/controller/internal_redirect.rb +26 -0
  55. data/lib/adva/controller/references.rb +28 -0
  56. data/lib/adva/core.rb +94 -0
  57. data/lib/adva/engine.rb +44 -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 +58 -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/helper/i18n.rb +10 -0
  88. data/lib/adva/view/menu.rb +73 -0
  89. data/lib/adva/view/menu/admin.rb +100 -0
  90. data/lib/adva/view/menu/items.rb +26 -0
  91. data/lib/adva/view/tabs.rb +28 -0
  92. data/lib/adva_core/version.rb +3 -0
  93. data/lib/core_ext/rails/action_view/has_many_through_collection_helpers.rb +27 -0
  94. data/lib/core_ext/rails/active_record/skip_callbacks.rb +51 -0
  95. data/lib/core_ext/ruby/array/flatten_once.rb +9 -0
  96. data/lib/core_ext/ruby/kernel/silence_stream.rb +17 -0
  97. data/lib/core_ext/ruby/module/include_anonymous.rb +36 -0
  98. data/lib/core_ext/ruby/module/option_reader.rb +9 -0
  99. data/lib/patches/inherited_resources.rb +35 -0
  100. data/lib/patches/rails/asset_expansion_multiple_registrations.rb +21 -0
  101. data/lib/patches/rails/integretion_runner_respond_to.rb +13 -0
  102. data/lib/patches/rails/polymorphic_url_for.rb +115 -0
  103. data/lib/patches/rails/recognize_path_env.rb +42 -0
  104. data/lib/patches/rails/route_set_to_param.rb +25 -0
  105. data/lib/patches/rails/route_set_trailing_segment.rb +13 -0
  106. data/lib/patches/rails/sti_associations.rb +17 -0
  107. data/lib/patches/rails/template_resolver_caching.rb +9 -0
  108. data/lib/patches/rails/translation_helper.rb +18 -0
  109. data/lib/patches/responders/flash_responder.rb +17 -0
  110. data/lib/patches/simple_form.rb +37 -0
  111. data/lib/patches/thor/core_ext/hash.rb +7 -0
  112. data/lib/patches/thor/group/symbolized_options.rb +8 -0
  113. data/lib/patches/webrat/links-data-method.rb +15 -0
  114. data/lib/patches/webrat/logger.rb +14 -0
  115. data/lib/patches/webrat/upload_file.rb +23 -0
  116. data/lib/testing/assertions.rb +19 -0
  117. data/lib/testing/env.rb +41 -0
  118. data/lib/testing/factories.rb +28 -0
  119. data/lib/testing/helpers/global_helpers.rb +9 -0
  120. data/lib/testing/paths.rb +54 -0
  121. data/lib/testing/step_definitions/common_steps.rb +287 -0
  122. data/lib/testing/step_definitions/debug_steps.rb +22 -0
  123. data/lib/testing/step_definitions/menu_steps.rb +11 -0
  124. data/lib/testing/step_definitions/routes_steps.rb +18 -0
  125. data/lib/testing/step_definitions/transforms.rb +50 -0
  126. data/lib/testing/step_definitions/webrat_steps.rb +284 -0
  127. data/lib/testing/step_definitions/within_steps.rb +16 -0
  128. data/lib/webrat/integrations/rails.rb +33 -0
  129. data/public/images/adva-core/admin/header_bg.png +0 -0
  130. data/public/images/adva-core/admin/menu_checkmark.png +0 -0
  131. data/public/images/adva-core/admin/section_menu_bg.png +0 -0
  132. data/public/images/adva-core/admin/tab_action_active.png +0 -0
  133. data/public/images/adva-core/admin/tab_main_active.png +0 -0
  134. data/public/images/adva-core/admin/tab_sidebar_active.png +0 -0
  135. data/public/images/adva-core/admin/tab_top_active.png +0 -0
  136. data/public/images/adva-core/asset_selected.png +0 -0
  137. data/public/images/adva-core/avatar.gif +0 -0
  138. data/public/images/adva-core/feed.mini.png +0 -0
  139. data/public/images/adva-core/filter-bg.png +0 -0
  140. data/public/images/adva-core/grid.png +0 -0
  141. data/public/images/adva-core/icons/accept.png +0 -0
  142. data/public/images/adva-core/icons/add.png +0 -0
  143. data/public/images/adva-core/icons/arrow_cross.png +0 -0
  144. data/public/images/adva-core/icons/arrow_cross_2.png +0 -0
  145. data/public/images/adva-core/icons/arrow_cross_3.png +0 -0
  146. data/public/images/adva-core/icons/arrow_up_down.png +0 -0
  147. data/public/images/adva-core/icons/assets/audio.png +0 -0
  148. data/public/images/adva-core/icons/assets/doc.png +0 -0
  149. data/public/images/adva-core/icons/assets/pdf.png +0 -0
  150. data/public/images/adva-core/icons/assets/video.png +0 -0
  151. data/public/images/adva-core/icons/attach.png +0 -0
  152. data/public/images/adva-core/icons/bin.png +0 -0
  153. data/public/images/adva-core/icons/bin_closed.png +0 -0
  154. data/public/images/adva-core/icons/bin_empty.png +0 -0
  155. data/public/images/adva-core/icons/bullet_black.png +0 -0
  156. data/public/images/adva-core/icons/bullet_delete.png +0 -0
  157. data/public/images/adva-core/icons/bullet_error.png +0 -0
  158. data/public/images/adva-core/icons/bullet_go.png +0 -0
  159. data/public/images/adva-core/icons/bullet_red.png +0 -0
  160. data/public/images/adva-core/icons/bullet_white.png +0 -0
  161. data/public/images/adva-core/icons/bullet_yellow.png +0 -0
  162. data/public/images/adva-core/icons/cancel.png +0 -0
  163. data/public/images/adva-core/icons/comment.gif +0 -0
  164. data/public/images/adva-core/icons/comment.png +0 -0
  165. data/public/images/adva-core/icons/comment_add.png +0 -0
  166. data/public/images/adva-core/icons/comment_blue.gif +0 -0
  167. data/public/images/adva-core/icons/comment_delete.png +0 -0
  168. data/public/images/adva-core/icons/comment_edit.png +0 -0
  169. data/public/images/adva-core/icons/comment_yellow.gif +0 -0
  170. data/public/images/adva-core/icons/cross.png +0 -0
  171. data/public/images/adva-core/icons/delete.png +0 -0
  172. data/public/images/adva-core/icons/eye.png +0 -0
  173. data/public/images/adva-core/icons/favorites.png +0 -0
  174. data/public/images/adva-core/icons/help.png +0 -0
  175. data/public/images/adva-core/icons/hourglass.png +0 -0
  176. data/public/images/adva-core/icons/icon_attachment.gif +0 -0
  177. data/public/images/adva-core/icons/icon_padlock.gif +0 -0
  178. data/public/images/adva-core/icons/link.png +0 -0
  179. data/public/images/adva-core/icons/lock.png +0 -0
  180. data/public/images/adva-core/icons/magnifier.png +0 -0
  181. data/public/images/adva-core/icons/minus.gif +0 -0
  182. data/public/images/adva-core/icons/page_add.png +0 -0
  183. data/public/images/adva-core/icons/page_delete.png +0 -0
  184. data/public/images/adva-core/icons/page_edit.png +0 -0
  185. data/public/images/adva-core/icons/page_favorites.png +0 -0
  186. data/public/images/adva-core/icons/page_go.png +0 -0
  187. data/public/images/adva-core/icons/page_green.png +0 -0
  188. data/public/images/adva-core/icons/page_red.png +0 -0
  189. data/public/images/adva-core/icons/page_white_add.png +0 -0
  190. data/public/images/adva-core/icons/page_white_delete.png +0 -0
  191. data/public/images/adva-core/icons/page_white_edit.png +0 -0
  192. data/public/images/adva-core/icons/page_white_go.png +0 -0
  193. data/public/images/adva-core/icons/page_white_link.png +0 -0
  194. data/public/images/adva-core/icons/page_white_magnify.png +0 -0
  195. data/public/images/adva-core/icons/pencil.png +0 -0
  196. data/public/images/adva-core/icons/star.png +0 -0
  197. data/public/images/adva-core/icons/stop.png +0 -0
  198. data/public/images/adva-core/icons/tag_green.png +0 -0
  199. data/public/images/adva-core/icons/tick.png +0 -0
  200. data/public/images/adva-core/icons/zoom.png +0 -0
  201. data/public/images/adva-core/indicator.gif +0 -0
  202. data/public/images/adva-core/lines.png +0 -0
  203. data/public/images/adva-core/preview.png +0 -0
  204. data/public/images/adva-core/theme_selected.png +0 -0
  205. data/public/javascripts/adva-core/admin.js +22 -0
  206. data/public/javascripts/adva-core/jquery/jquery-1.4.2.min.js +154 -0
  207. data/public/javascripts/adva-core/jquery/jquery.table_tree.js +296 -0
  208. data/public/javascripts/adva-core/jquery/jquery.tablednd_0_5.js +385 -0
  209. data/public/javascripts/adva-core/rails.js +127 -0
  210. data/public/javascripts/backup/admin/jquery.admin.js +75 -0
  211. data/public/javascripts/backup/admin/jquery.article.js +22 -0
  212. data/public/javascripts/backup/admin/jquery.cached_pages.js +14 -0
  213. data/public/javascripts/backup/admin/jquery.table_tree.backup.js +279 -0
  214. data/public/javascripts/backup/admin/jquery.table_tree.js +10 -0
  215. data/public/javascripts/backup/application.js +38 -0
  216. data/public/javascripts/backup/application.prototype.js +135 -0
  217. data/public/javascripts/backup/builder.js +136 -0
  218. data/public/javascripts/backup/controls.js +965 -0
  219. data/public/javascripts/backup/cookie.js +49 -0
  220. data/public/javascripts/backup/dragdrop.js +975 -0
  221. data/public/javascripts/backup/effects.js +1130 -0
  222. data/public/javascripts/backup/flash.js +49 -0
  223. data/public/javascripts/backup/jquery.dates.js +49 -0
  224. data/public/javascripts/backup/jquery.flash.js +40 -0
  225. data/public/javascripts/backup/jquery.roles.js +23 -0
  226. data/public/javascripts/backup/jquery/jquery-lowpro.js +224 -0
  227. data/public/javascripts/backup/jquery/jquery-ui.js +273 -0
  228. data/public/javascripts/backup/jquery/jquery.js +19 -0
  229. data/public/javascripts/backup/jquery/jquery.qtip.min.js +15 -0
  230. data/public/javascripts/backup/json.js +139 -0
  231. data/public/javascripts/backup/lowpro.js +320 -0
  232. data/public/javascripts/backup/parseuri.js +39 -0
  233. data/public/javascripts/backup/prototype.js +4320 -0
  234. data/public/javascripts/backup/roles.js +16 -0
  235. data/public/javascripts/backup/scriptaculous.js +60 -0
  236. data/public/javascripts/backup/slider.js +275 -0
  237. data/public/javascripts/backup/sound.js +55 -0
  238. data/public/javascripts/backup/unittest.js +568 -0
  239. data/public/stylesheets/adva-core/admin/forms.css +172 -0
  240. data/public/stylesheets/adva-core/admin/layout.css +38 -0
  241. data/public/stylesheets/adva-core/admin/lists.css +54 -0
  242. data/public/stylesheets/adva-core/admin/navigation.css +234 -0
  243. data/public/stylesheets/adva-core/admin/sidebar.css +87 -0
  244. data/public/stylesheets/adva-core/admin/styles.css +130 -0
  245. data/public/stylesheets/adva-core/common/forms.css +174 -0
  246. data/public/stylesheets/adva-core/common/layout.css +93 -0
  247. data/public/stylesheets/adva-core/common/reset.css +42 -0
  248. data/public/stylesheets/adva-core/common/styles.css +41 -0
  249. data/public/stylesheets/adva-core/default/layout.css +0 -0
  250. data/public/stylesheets/adva-core/default/styles.css +0 -0
  251. data/public/stylesheets/adva-core/simple/layout.css +11 -0
  252. data/public/stylesheets/backup/alternate/common.css +76 -0
  253. data/public/stylesheets/backup/alternate/forms.css +121 -0
  254. data/public/stylesheets/backup/alternate/header.css +125 -0
  255. data/public/stylesheets/backup/alternate/layout.css +103 -0
  256. data/public/stylesheets/backup/alternate/lists.css +153 -0
  257. data/public/stylesheets/backup/alternate/sidebar.css +65 -0
  258. data/public/stylesheets/backup/alternate/top.css +123 -0
  259. data/public/stylesheets/backup/content.css +11 -0
  260. data/public/stylesheets/backup/helptip.css +35 -0
  261. data/public/stylesheets/backup/jquery/alternate/jquery.tooltip.css +13 -0
  262. data/public/stylesheets/backup/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  263. data/public/stylesheets/backup/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  264. data/public/stylesheets/backup/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  265. data/public/stylesheets/backup/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  266. data/public/stylesheets/backup/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  267. data/public/stylesheets/backup/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  268. data/public/stylesheets/backup/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  269. data/public/stylesheets/backup/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  270. data/public/stylesheets/backup/jquery/images/ui-icons_222222_256x240.png +0 -0
  271. data/public/stylesheets/backup/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
  272. data/public/stylesheets/backup/jquery/images/ui-icons_454545_256x240.png +0 -0
  273. data/public/stylesheets/backup/jquery/images/ui-icons_888888_256x240.png +0 -0
  274. data/public/stylesheets/backup/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
  275. data/public/stylesheets/backup/jquery/jquery-ui.css +405 -0
  276. data/public/stylesheets/backup/jquery/jquery.tooltip.css +10 -0
  277. data/public/stylesheets/backup/layout.css +22 -0
  278. data/public/stylesheets/backup/lists.css +17 -0
  279. data/public/stylesheets/backup/menu.css +129 -0
  280. data/public/stylesheets/backup/projection.css +118 -0
  281. data/public/stylesheets/backup/screen/top.css +8 -0
  282. data/public/stylesheets/backup/themes.css +49 -0
  283. data/public/stylesheets/backup/users.css +40 -0
  284. metadata +338 -40
  285. data/lib/bundler/repository.rb +0 -118
@@ -0,0 +1,2 @@
1
+ class Admin::Sites::Menu < Adva::View::Menu::Admin::Actions
2
+ 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,24 @@
1
+ class Admin::Sites::Index < Minimal::Template
2
+ include do
3
+ def to_html
4
+ table_for collection do |t|
5
+ t.column :site
6
+ t.column :actions, :class => :actions
7
+
8
+ t.row do |r, site|
9
+ r.cell link_to_site(site)
10
+ r.cell links_to_actions([:view, :edit, :destroy], site)
11
+ end unless collection.empty?
12
+ end
13
+ end
14
+
15
+ def link_to_site(site)
16
+ capture { link_to(site.name, url_for([:admin, site])) }
17
+ end
18
+
19
+ def link_to_view(site)
20
+ capture { link_to(:'.actions.view', "http://#{site.host}", :class => :view) }
21
+ end
22
+ end
23
+ end
24
+
@@ -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,55 @@
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
+ page
13
+ end
14
+ end
15
+
16
+ def header
17
+ render :partial => 'layouts/admin/header'
18
+ end
19
+
20
+ def stylesheets
21
+ stylesheet_link_tag :admin
22
+ end
23
+
24
+ def javascripts
25
+ javascript_include_tag :admin
26
+ end
27
+
28
+ def page
29
+ div :id => 'page' do
30
+ main
31
+ sidebar
32
+ end
33
+ end
34
+
35
+ def main
36
+ div :id => 'main', :class => 'main' do
37
+ flash
38
+ content
39
+ end
40
+ end
41
+
42
+ def content
43
+ div :id => 'content' do
44
+ super
45
+ end
46
+ end
47
+
48
+ def sidebar
49
+ div :id => 'sidebar', :class => 'right' do
50
+ block.call :sidebar
51
+ end
52
+ end
53
+ end
54
+ end
55
+ 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,62 @@
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_menu
8
+ sections_menu 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_menu
24
+ label(site.name, url_for([:admin, :sites])) do
25
+ ul(:class => 'sites') do
26
+ 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
+ render_items
31
+ end
32
+ end
33
+ end
34
+
35
+ def sections_menu
36
+ item(:'.sections', url_for([:admin, site, :sections])) do
37
+ ul(:class => 'sections') do
38
+ site.sections.each do |section|
39
+ item(section.name, url_for([:admin, site, section]), :class => :section)
40
+ end
41
+ item(:'.new_section', url_for([:new, :admin, site, :section]))
42
+ render_items
43
+ end
44
+ end
45
+ end
46
+
47
+ def sites
48
+ Site.all
49
+ end
50
+
51
+ def active?(url, options)
52
+ return false if url =~ %r(/admin/sites$) && request.path !~ %r(/admin/sites(/\d+?)?$)
53
+ super
54
+ end
55
+
56
+ def path_and_parents(path)
57
+ paths = super
58
+ paths.detect { |path| path.gsub!(/(#{Section.types.map(&:tableize).join('|')})$/) { 'sections' } }
59
+ paths
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,64 @@
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 flash
51
+ controller.flash.each do |name, value|
52
+ div value, :id => "flash_#{name}", :class => "flash #{name}"
53
+ end
54
+ end
55
+
56
+ def name
57
+ @name ||= self.class.name.demodulize.underscore.to_sym
58
+ end
59
+
60
+ def default_title
61
+ "#{controller.controller_name.titleize}: #{params[:action].titleize}"
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,46 @@
1
+ class Layouts::Default < Layouts::Base
2
+ include do
3
+ def title
4
+ super(site.title)
5
+ end
6
+
7
+ def body
8
+ page
9
+ footer
10
+ end
11
+
12
+ def page
13
+ div :id => :page do
14
+ header
15
+ div :id => :main do
16
+ flash
17
+ content
18
+ end
19
+ sidebar
20
+ end
21
+ end
22
+
23
+ def header
24
+ div :id => :header do
25
+ h1 site.title
26
+ h4 site.subtitle unless site.subtitle.blank?
27
+ render :partial => 'layouts/default/menu'
28
+ end
29
+ end
30
+
31
+ def footer
32
+ div :id => :footer do
33
+ ul :class => :left do
34
+ li :'.made_with'
35
+ end
36
+ ul :class => :right do
37
+ end
38
+ end
39
+ end
40
+
41
+ def sidebar
42
+ sidebar = capture { block.call(:sidebar) }
43
+ div sidebar, :id => 'sidebar', :class => 'left' unless sidebar.blank?
44
+ end
45
+ end
46
+ end