humpyard 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (197) hide show
  1. data/Gemfile +28 -0
  2. data/README.rdoc +61 -0
  3. data/VERSION +1 -0
  4. data/app/controllers/humpyard/assets_controller.rb +123 -0
  5. data/app/controllers/humpyard/elements_controller.rb +200 -0
  6. data/app/controllers/humpyard/errors_controller.rb +8 -0
  7. data/app/controllers/humpyard/pages_controller.rb +365 -0
  8. data/app/helpers/humpyard/pages_helper.rb +19 -0
  9. data/app/models/humpyard/asset.rb +22 -0
  10. data/app/models/humpyard/assets/paperclip_asset.rb +48 -0
  11. data/app/models/humpyard/assets/youtube_asset.rb +38 -0
  12. data/app/models/humpyard/element.rb +57 -0
  13. data/app/models/humpyard/elements/box_element.rb +15 -0
  14. data/app/models/humpyard/elements/media_element.rb +13 -0
  15. data/app/models/humpyard/elements/news_element.rb +13 -0
  16. data/app/models/humpyard/elements/sitemap_element.rb +11 -0
  17. data/app/models/humpyard/elements/text_element.rb +49 -0
  18. data/app/models/humpyard/news_item.rb +42 -0
  19. data/app/models/humpyard/page.rb +153 -0
  20. data/app/models/humpyard/pages/news_page.rb +71 -0
  21. data/app/models/humpyard/pages/static_page.rb +25 -0
  22. data/app/models/humpyard/pages/virtual_page.rb +30 -0
  23. data/app/views/humpyard/assets/_edit.html.haml +15 -0
  24. data/app/views/humpyard/assets/_index.html.haml +24 -0
  25. data/app/views/humpyard/assets/_list.html.haml +4 -0
  26. data/app/views/humpyard/assets/_list_item.html.haml +1 -0
  27. data/app/views/humpyard/assets/_show.html.haml +38 -0
  28. data/app/views/humpyard/assets/_show_asset.html.haml +3 -0
  29. data/app/views/humpyard/assets/destroy.js.erb +4 -0
  30. data/app/views/humpyard/assets/paperclip_assets/_edit.html.haml +4 -0
  31. data/app/views/humpyard/assets/paperclip_assets/_info_table.html.haml +10 -0
  32. data/app/views/humpyard/assets/paperclip_assets/_show.html.haml +12 -0
  33. data/app/views/humpyard/assets/youtube_assets/_edit.html.haml +4 -0
  34. data/app/views/humpyard/assets/youtube_assets/_show.html.haml +5 -0
  35. data/app/views/humpyard/common/_head.html.haml +8 -0
  36. data/app/views/humpyard/common/_page_construct.html.haml +45 -0
  37. data/app/views/humpyard/elements/_edit.html.haml +25 -0
  38. data/app/views/humpyard/elements/_inline_edit.haml +0 -0
  39. data/app/views/humpyard/elements/_new.html.haml +1 -0
  40. data/app/views/humpyard/elements/_show.html.haml +29 -0
  41. data/app/views/humpyard/elements/_show_container.html.haml +3 -0
  42. data/app/views/humpyard/elements/_show_view.html.haml +2 -0
  43. data/app/views/humpyard/elements/box_elements/_edit.html.haml +4 -0
  44. data/app/views/humpyard/elements/box_elements/_inline_edit.html.haml +0 -0
  45. data/app/views/humpyard/elements/box_elements/_show.html.haml +5 -0
  46. data/app/views/humpyard/elements/destroy.js.erb +1 -0
  47. data/app/views/humpyard/elements/error.js.erb +1 -0
  48. data/app/views/humpyard/elements/media_elements/_edit.html.haml +7 -0
  49. data/app/views/humpyard/elements/media_elements/_show.html.haml +8 -0
  50. data/app/views/humpyard/elements/news_elements/_edit.html.haml +5 -0
  51. data/app/views/humpyard/elements/news_elements/_inline_edit.html.haml +0 -0
  52. data/app/views/humpyard/elements/news_elements/_show.html.haml +4 -0
  53. data/app/views/humpyard/elements/sitemap_elements/_edit.html.haml +5 -0
  54. data/app/views/humpyard/elements/sitemap_elements/_inline_edit.html.haml +0 -0
  55. data/app/views/humpyard/elements/sitemap_elements/_show.html.haml +3 -0
  56. data/app/views/humpyard/elements/sitemap_elements/_show_part.html.haml +12 -0
  57. data/app/views/humpyard/elements/text_elements/_edit.html.haml +4 -0
  58. data/app/views/humpyard/elements/text_elements/_inline_edit.html.haml +0 -0
  59. data/app/views/humpyard/elements/text_elements/_show.html.haml +4 -0
  60. data/app/views/humpyard/pages/_content.html.haml +2 -0
  61. data/app/views/humpyard/pages/_edit.html.haml +39 -0
  62. data/app/views/humpyard/pages/_index.html.haml +23 -0
  63. data/app/views/humpyard/pages/_show.html.haml +16 -0
  64. data/app/views/humpyard/pages/_subtree.html.haml +6 -0
  65. data/app/views/humpyard/pages/_tree.html.haml +3 -0
  66. data/app/views/humpyard/pages/destroy.js.erb +4 -0
  67. data/app/views/humpyard/pages/news_pages/_detail.html.haml +10 -0
  68. data/app/views/humpyard/pages/news_pages/_edit.html.haml +3 -0
  69. data/app/views/humpyard/pages/news_pages/_show.html.haml +5 -0
  70. data/app/views/humpyard/pages/show.html.haml +3 -0
  71. data/app/views/humpyard/pages/static_pages/_edit.html.haml +1 -0
  72. data/app/views/humpyard/pages/static_pages/_show.html.haml +1 -0
  73. data/app/views/humpyard/pages/virtual_pages/_edit.html.haml +7 -0
  74. data/app/views/humpyard/pages/virtual_pages/_show.html.haml +4 -0
  75. data/app/views/humpyard/pages/welcome.html.haml +13 -0
  76. data/compass/stylesheets/_humpyard.scss +12 -0
  77. data/compass/stylesheets/humpyard/_backend.scss +1 -0
  78. data/compass/stylesheets/humpyard/_base.scss +144 -0
  79. data/compass/stylesheets/humpyard/_ie.scss +1 -0
  80. data/compass/stylesheets/humpyard/_jquery_ui_overrides.scss +380 -0
  81. data/compass/stylesheets/humpyard/_print.scss +3 -0
  82. data/config/locales/de.yml +84 -0
  83. data/config/locales/en.yml +81 -0
  84. data/config/routes.rb +38 -0
  85. data/db/migrate/20100321134138_base.rb +60 -0
  86. data/db/migrate/20100330204700_create_box_element.rb +24 -0
  87. data/db/migrate/20100401153655_page_template.rb +11 -0
  88. data/db/migrate/20100409195732_page_types.rb +26 -0
  89. data/db/migrate/20100413230623_element_yield.rb +14 -0
  90. data/db/migrate/20100415132312_news_page.rb +48 -0
  91. data/db/migrate/20100415193423_page_i18n_name.rb +27 -0
  92. data/db/migrate/20100415213700_create_news_element.rb +12 -0
  93. data/db/migrate/20100703120000_shared_elements.rb +9 -0
  94. data/db/migrate/20101001142534_page_modified_at.rb +11 -0
  95. data/db/migrate/20101003100138_create_sitemap_elements.rb +13 -0
  96. data/db/migrate/20101003122108_create_humpyard_pages_virtual_pages.rb +11 -0
  97. data/db/migrate/20101006070503_page_cache_control.rb +9 -0
  98. data/db/migrate/20101104173743_create_media.rb +36 -0
  99. data/db/migrate/20110425230524_media_with_link.rb +9 -0
  100. data/lib/generators/humpyard.rb +114 -0
  101. data/lib/generators/humpyard/auth/auth_generator.rb +191 -0
  102. data/lib/generators/humpyard/auth/templates/authlogic/README +9 -0
  103. data/lib/generators/humpyard/auth/templates/authlogic/controllers/user_sessions_controller.rb +22 -0
  104. data/lib/generators/humpyard/auth/templates/authlogic/migration.rb +17 -0
  105. data/lib/generators/humpyard/auth/templates/authlogic/models/ability.rb +12 -0
  106. data/lib/generators/humpyard/auth/templates/authlogic/models/user.rb +7 -0
  107. data/lib/generators/humpyard/auth/templates/authlogic/models/user_session.rb +6 -0
  108. data/lib/generators/humpyard/auth/templates/authlogic/views/user_sessions/new.html.haml +12 -0
  109. data/lib/generators/humpyard/auth/templates/custom/README +8 -0
  110. data/lib/generators/humpyard/auth/templates/devise/README +14 -0
  111. data/lib/generators/humpyard/auth/templates/devise/models/ability.rb +14 -0
  112. data/lib/generators/humpyard/auth/templates/fake/README +0 -0
  113. data/lib/generators/humpyard/auth/templates/fake/models/ability.rb +12 -0
  114. data/lib/generators/humpyard/auth/templates/simple/README +16 -0
  115. data/lib/generators/humpyard/auth/templates/simple/config/humpyard_users.yml +2 -0
  116. data/lib/generators/humpyard/auth/templates/simple/controllers/user_sessions_controller.rb +39 -0
  117. data/lib/generators/humpyard/auth/templates/simple/models/ability.rb +12 -0
  118. data/lib/generators/humpyard/auth/templates/simple/views/user_sessions/new.html.haml +15 -0
  119. data/lib/generators/humpyard/element/USAGE +7 -0
  120. data/lib/generators/humpyard/element/element_generator.rb +82 -0
  121. data/lib/generators/humpyard/element/templates/_edit.html.haml +12 -0
  122. data/lib/generators/humpyard/element/templates/_inline_edit.html.haml +0 -0
  123. data/lib/generators/humpyard/element/templates/_show.html.haml +9 -0
  124. data/lib/generators/humpyard/element/templates/fixtures.yml +23 -0
  125. data/lib/generators/humpyard/element/templates/migration.rb +16 -0
  126. data/lib/generators/humpyard/element/templates/model.rb +11 -0
  127. data/lib/generators/humpyard/element/templates/tests/rspec/model.rb +7 -0
  128. data/lib/generators/humpyard/element/templates/tests/shoulda/model.rb +7 -0
  129. data/lib/generators/humpyard/element/templates/tests/test_unit/model.rb +7 -0
  130. data/lib/generators/humpyard/page/USAGE +7 -0
  131. data/lib/generators/humpyard/page/page_generator.rb +80 -0
  132. data/lib/generators/humpyard/page/templates/_edit.html.haml +7 -0
  133. data/lib/generators/humpyard/page/templates/_show.html.haml +4 -0
  134. data/lib/generators/humpyard/page/templates/fixtures.yml +23 -0
  135. data/lib/generators/humpyard/page/templates/migration.rb +16 -0
  136. data/lib/generators/humpyard/page/templates/model.rb +37 -0
  137. data/lib/generators/humpyard/page/templates/tests/rspec/model.rb +7 -0
  138. data/lib/generators/humpyard/page/templates/tests/shoulda/model.rb +7 -0
  139. data/lib/generators/humpyard/page/templates/tests/test_unit/model.rb +7 -0
  140. data/lib/generators/humpyard/skeleton/USAGE +6 -0
  141. data/lib/generators/humpyard/skeleton/skeleton_generator.rb +99 -0
  142. data/lib/generators/humpyard/skeleton/templates/compass.config +14 -0
  143. data/lib/generators/humpyard/skeleton/templates/images/ajax-loader.gif +0 -0
  144. data/lib/generators/humpyard/skeleton/templates/images/grid.png +0 -0
  145. data/lib/generators/humpyard/skeleton/templates/initializers/compass.rb +16 -0
  146. data/lib/generators/humpyard/skeleton/templates/initializers/haml.rb +3 -0
  147. data/lib/generators/humpyard/skeleton/templates/initializers/humpyard.rb +20 -0
  148. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/images/jstree/d.png +0 -0
  149. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/images/jstree/throbber.gif +0 -0
  150. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/javascripts/jquery-1.5.1.js +8316 -0
  151. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/javascripts/jquery-humpyard.js +790 -0
  152. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/javascripts/jquery-rails.js +157 -0
  153. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/javascripts/jquery-ui-1.8.10.js +11544 -0
  154. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/javascripts/jquery.form-2.64.js +803 -0
  155. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/javascripts/jquery.jstree.js +3510 -0
  156. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  157. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  158. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  159. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  160. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  161. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  162. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  163. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  164. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-icons_222222_256x240.png +0 -0
  165. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  166. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-icons_454545_256x240.png +0 -0
  167. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-icons_888888_256x240.png +0 -0
  168. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  169. data/lib/generators/humpyard/skeleton/templates/javascripts/jquery-ui-18/stylesheets/smoothness/jquery-ui-1.8.10.css +573 -0
  170. data/lib/generators/humpyard/skeleton/templates/stylesheets/ie.sass +15 -0
  171. data/lib/generators/humpyard/skeleton/templates/stylesheets/ie.scss +16 -0
  172. data/lib/generators/humpyard/skeleton/templates/stylesheets/partials/_base.sass +12 -0
  173. data/lib/generators/humpyard/skeleton/templates/stylesheets/partials/_base.scss +11 -0
  174. data/lib/generators/humpyard/skeleton/templates/stylesheets/print.sass +3 -0
  175. data/lib/generators/humpyard/skeleton/templates/stylesheets/print.scss +3 -0
  176. data/lib/generators/humpyard/skeleton/templates/stylesheets/screen.sass +78 -0
  177. data/lib/generators/humpyard/skeleton/templates/stylesheets/screen.scss +90 -0
  178. data/lib/generators/humpyard/skeleton/templates/views/layout.html.haml +28 -0
  179. data/lib/html_to_textile.rb +220 -0
  180. data/lib/humpyard.rb +70 -0
  181. data/lib/humpyard/action_controller/base.rb +24 -0
  182. data/lib/humpyard/active_model/naming.rb +29 -0
  183. data/lib/humpyard/active_model/translation.rb +26 -0
  184. data/lib/humpyard/active_model/validators/publish_range.rb +14 -0
  185. data/lib/humpyard/active_record/acts/asset.rb +68 -0
  186. data/lib/humpyard/active_record/acts/container_element.rb +26 -0
  187. data/lib/humpyard/active_record/acts/element.rb +89 -0
  188. data/lib/humpyard/active_record/acts/page.rb +101 -0
  189. data/lib/humpyard/active_record/has/title_for_url.rb +75 -0
  190. data/lib/humpyard/compass.rb +6 -0
  191. data/lib/humpyard/config.rb +235 -0
  192. data/lib/humpyard/engine.rb +7 -0
  193. data/lib/humpyard/uri_parser.rb +16 -0
  194. data/lib/humpyard/uri_parser/assets_uri_parser.rb +15 -0
  195. data/lib/humpyard/uri_parser/pages_uri_parser.rb +15 -0
  196. data/lib/tasks/humpyard.rake +103 -0
  197. metadata +331 -0
@@ -0,0 +1,4 @@
1
+ %ul
2
+ - element.content_data.news_page.news_items.limit(3).each do |news_item|
3
+ %li
4
+ = link_to "#{news_item.created_at.to_date}: #{news_item.title}", news_item.human_url
@@ -0,0 +1,5 @@
1
+ .humpyard-tab
2
+ .humpyard-tab-title
3
+ Sitemap
4
+ = form.input :levels, :as => :select, :collection => (1..10).to_a.map{|x| [x,x]}
5
+ = form.input :show_description
@@ -0,0 +1,3 @@
1
+ .humpyard-elements-sitemap-element
2
+ - cache "sitemap-#{I18n.locale}-#{Humpyard::Page.root_page.last_modified(:include_pages => true).to_i}" do
3
+ = render '/humpyard/elements/sitemap_elements/show_part', :pages => ([Humpyard::Page.root_page] + Humpyard::Page.root_page.siblings), :element => element, :level => 1
@@ -0,0 +1,12 @@
1
+ - if level <= element.content_data.levels and pages and pages.size > 0
2
+ %ul
3
+ - pages.each do |page|
4
+ - if page.in_sitemap
5
+ %li
6
+ - if page.content_data.is_humpyard_virtual_page?
7
+ = page.title
8
+ - else
9
+ = link_to page.title, page.human_url
10
+ - if element.content_data.show_description
11
+ .desc= page.description
12
+ = render '/humpyard/elements/sitemap_elements/show_part', :pages => page.child_pages(:multiple_roots => true), :element => element, :level => level + 1
@@ -0,0 +1,4 @@
1
+ .humpyard-tab
2
+ .humpyard-tab-title
3
+ Text Content
4
+ = form.input :content, :class => :content, :rows => 20
@@ -0,0 +1,4 @@
1
+ - if element.content_data.content.blank?
2
+ &#160;
3
+ - else
4
+ = element.content_data.html_content :parse_uris => true
@@ -0,0 +1,2 @@
1
+ .hy-content{:id => "hy-content-#{yield_name}", :'data-content-yield' => yield_name}
2
+ = render :partial => "/humpyard/elements/show_container", :locals => {:elements => @page.root_elements(yield_name)}
@@ -0,0 +1,39 @@
1
+ = humpyard_form_for @page, :as => :page, :url => @page.page, :html=>{:'data-dialog-remote' => true, :'data-form-object-class' => "page", :class=>'page-form'} do |form|
2
+ .dialog-search
3
+ = "#{I18n.t("humpyard_form.titles.#{form.form_type.downcase}", :model => "#{Humpyard::Page.model_name.human}#{@page.title.blank? ? '' : " '#{@page.title}'"}")}"
4
+ .dialog-pane
5
+ .flashes
6
+ - unless @page.persisted?
7
+ = hidden_field_tag :type, @page_type
8
+ = hidden_field :page, :parent_id
9
+ - if @prev
10
+ = hidden_field_tag :prev_id, @prev.id
11
+ - if @next
12
+ = hidden_field_tag :next_id, @next.id
13
+ .humpyard-tabview
14
+ .humpyard-tab
15
+ .humpyard-tab-title
16
+ Page Options
17
+ = form.input :title
18
+ - if Humpyard::config.templates.size > 1
19
+ = form.input :template_name, :as => :select, :collection => Humpyard::config.templates.map{|name, data| [name.to_s.camelize, name.to_s]}
20
+ - else
21
+ = hidden_field :page, :template_name
22
+ = form.input :description, :rows => 10
23
+ = form.input :in_menu
24
+ = form.input :in_sitemap
25
+ = form.input :always_refresh
26
+ = render "/humpyard/pages/#{@page.class.name.split('::').last.underscore.pluralize}/edit", :page => @page, :form => form
27
+ .humpyard-tab
28
+ .humpyard-tab-title
29
+ Generic Options
30
+ = form.input :display_from
31
+ = form.input :display_until
32
+ .dialog-buttons.humpyard-form-buttons
33
+ = form.submit
34
+ - if @page.persisted? and can? :destroy, @page.page
35
+ = link_to "#{I18n.t("humpyard_form.actions.destroy", :model => "#{Humpyard::Page.model_name.human}#{@page.title.blank? ? '' : " '#{@page.title}'"}")}", humpyard_page_path(@page.page), :'data-icon' => "ui-icon-trash", :confirm => "Are you sure?", :method => :delete, :remote => true
36
+ .hy-locale-info
37
+ Sprache:
38
+ = I18n.locale
39
+
@@ -0,0 +1,23 @@
1
+ .humpyard-dialog-title
2
+ = I18n.t 'humpyard_cms.pages.edit.title'
3
+ .dialog-columns
4
+ .left-dialog-column.with-toolbar.with-search
5
+ .dialog-pane
6
+ #hy-page-treeview
7
+ = render :partial => 'tree', :locals => {:pages => @pages, :page => @page}
8
+ #humpyard-page-types-menu.dialog-menu
9
+ - Humpyard::config.page_types.each do |name, type|
10
+ = link_to I18n.t('humpyard_cms.pages.edit.add', :page_type => type.model_name.human), new_humpyard_page_path(:type => name), :'data-dialog-link' => true
11
+ .dialog-search
12
+ Pages
13
+ .dialog-buttons.humpyard-form-buttons
14
+ %a{:'data-icon' => "ui-icon-circle-plus", :'data-dialog-menu' => '#humpyard-page-types-menu'}
15
+ = I18n.t('humpyard_cms.pages.edit.add', :page_type => Humpyard::Page.model_name.human)
16
+ .right-dialog-column.with-toolbar.with-search
17
+ - if @page
18
+ = render :partial => 'edit', :locals => {:page => @page}
19
+ - else
20
+ .dialog-pane
21
+ Nothing selected
22
+ .humpyard-dialog-buttons
23
+
@@ -0,0 +1,16 @@
1
+ - title @page.title
2
+
3
+ #hy-content-main.hy-content{:'data-content-yield' => 'main'}
4
+ = render :partial => @page_partial, :locals => @local_vars
5
+
6
+ /
7
+ ="X-HumpYard-Page:#{@page.id}"
8
+ ="X-HumpYard-Time:#{Time.now}"
9
+
10
+ - Humpyard::config.templates[@page.template_name.to_sym][:yields].each do |yield_name|
11
+ - content_for yield_name.to_sym do
12
+ - if @page.always_refresh
13
+ = render '/humpyard/pages/content', :yield_name => yield_name
14
+ - else
15
+ - cache "hy-yield-#{@page.id}-#{yield_name}-#{I18n.locale}-#{humpyard_user ? humpyard_user : nil}-#{@page.last_modified.to_i}" do
16
+ = render '/humpyard/pages/content', :yield_name => yield_name
@@ -0,0 +1,6 @@
1
+ - if pages and pages.size > 0
2
+ %ul
3
+ - pages.each do |page|
4
+ %li.treeitem{:'data-page-id' => page.id, :id => "hy-page-treeview-item-#{page.id}"}
5
+ = link_to content_tag(:span, page.title, :id => "hy-page-treeview-text-#{page.id}"), edit_humpyard_page_path(page), :'data-dialog-link' => true, :class => (@page and @page==page ? 'active' : ''), :id => "hy-page-treeview-link-#{page.id}"
6
+ = render 'subtree.html', :pages => page.child_pages, :root_page => @root_page
@@ -0,0 +1,3 @@
1
+ .humpyard-treeview{:'data-sortable-update-url'=> move_humpyard_pages_path}
2
+ - if root_page = Humpyard::Page.root_page
3
+ = render 'subtree.html', :pages => ([root_page] + root_page.siblings), :root_page => root_page
@@ -0,0 +1,4 @@
1
+ remove_element('#hy-page-treeview-item-<%=@page.id%>');
2
+ replace_content_for_element('#pages-dialog .right-dialog-column .dialog-pane', '<p><%= escape_javascript "#{I18n.t("humpyard_form.flashes.destroy_success", :model => "#{Humpyard::Page.model_name.human}#{@page.title.blank? ? '' : " '#{@page.title}'"}")}" %></p>');
3
+ remove_element('#pages-dialog .right-dialog-column .dialog-buttons a');
4
+ remove_element('#pages-dialog .right-dialog-column .dialog-buttons button');
@@ -0,0 +1,10 @@
1
+ %p
2
+ = item.created_at.to_date
3
+ %h2
4
+ = item.title
5
+ %p
6
+ = item.content
7
+
8
+ %p
9
+ = link_to '<< Back', page.human_url
10
+
@@ -0,0 +1,3 @@
1
+ .humpyard-tab
2
+ .humpyard-tab-title
3
+ News Items
@@ -0,0 +1,5 @@
1
+ %ul
2
+ - @page.content_data.news_items.each do |news_item|
3
+ %li
4
+ = link_to "#{news_item.created_at.to_date}: #{news_item.title}", news_item.human_url
5
+
@@ -0,0 +1,3 @@
1
+ = render 'show'
2
+
3
+
@@ -0,0 +1 @@
1
+ = render :partial => "/humpyard/elements/show_container", :locals => {:elements => page.root_elements(:main)}
@@ -0,0 +1,7 @@
1
+ / The editing form for the page. This sits inside a tab view in a dialog.
2
+ / These tabs are positioned after the generic tab. Example:
3
+
4
+ / .humpyard-tab
5
+ / .humpyard-tab-title
6
+ / Page Content
7
+ / = form.input :content
@@ -0,0 +1,4 @@
1
+ / Renders the page content on the page. You can access your data model instance via page.content_data. See example below
2
+
3
+ / .content
4
+ / = page.content_data.content
@@ -0,0 +1,13 @@
1
+ - title "Welcome to Humpyard"
2
+ %p
3
+ The installation of Humpyard was successful.
4
+ %p
5
+ You may now add some
6
+ = link_to 'Pages', humpyard_pages_path, :'data-dialog' => "size:800x700;dialog_id:pages-dialog"
7
+ to your site.
8
+
9
+
10
+ - content_for :sidebar do
11
+ %p
12
+ %a{"href"=>"http://humpyard.org/"}
13
+ Visit the Humpyard Homepage
@@ -0,0 +1,12 @@
1
+ @import "compass/css3";
2
+ @import "humpyard/jquery_ui_overrides";
3
+ @import "humpyard/backend";
4
+ @import "humpyard_form";
5
+ @import "humpyard/base";
6
+ @import "humpyard/print";
7
+ @import "humpyard/ie";
8
+
9
+ @mixin humpyard($body_selector: body) {
10
+ @if not ($body_selector == "body" or $body_selector == true) {
11
+ @debug '[DEPRECATED] To specify a the selector "' + $body_selector + '" to +humpyard, pass true as the first argument and mix it into ' + $body_selector + "."; }
12
+ @include humpyard-base; }
@@ -0,0 +1,144 @@
1
+ @import "jquery_ui_overrides";
2
+ @import "humpyard_form";
3
+
4
+ $hy_panel_bg_color: #eee;
5
+ $hy_panel_bg_gradient: #aaa;
6
+ $hy_panel_border_color: #a5a5a5 !default;
7
+ $hy_selection_color: #ffcc00 !default;
8
+ $hy_top_bar_height: 20px !default;
9
+ $hy_bottom_bar_height: 80px !default;
10
+ $hy_bottom_padding: 5px !default;
11
+ $hy_bottom_bg_color: #444;
12
+ $hy_bottom_bg_gradient: #000;
13
+
14
+ @mixin humpyard-base {
15
+ @include jquery-ui-overrides;
16
+ @include humpyard-form;
17
+ a:focus {
18
+ outline: none; }
19
+ body {
20
+ margin: 0;
21
+ padding: 0;
22
+ font-size: 10px;
23
+ #hy-top {
24
+ display: none; }
25
+ #hy-side {
26
+ display: none; }
27
+ #hy-bottom {
28
+ display: none; } }
29
+ body.hy-logged-in {
30
+ margin: 0;
31
+ padding: 0;
32
+ overflow: hidden;
33
+ .ajax-indicator {
34
+ display: none;
35
+ position: absolute;
36
+ left: 50%;
37
+ top: 4px; }
38
+ .ajax-indicator.active {
39
+ display: block; }
40
+ #hy-top {
41
+ @include linear-gradient(color-stops($hy_panel_bg_color, $hy_panel_bg_gradient));
42
+ border-bottom: $hy_panel_border_color solid 1px;
43
+ padding: 0.2em;
44
+ height: $hy_top_bar_height;
45
+ display: block;
46
+ #hy-top-left {
47
+ float: left; }
48
+ #hy-top-right {
49
+ float: right; } }
50
+ #hy-top.hy-edit-active {
51
+ border-bottom: $hy_selection_color solid 1px; }
52
+ #hy-side {
53
+ position: absolute;
54
+ background: $hy_panel_bg_color;
55
+ @include linear-gradient(color-stops($hy_panel_bg_color, $hy_panel_bg_gradient));
56
+ border-right: $hy_panel_border_color solid 1px;
57
+ left: -200px;
58
+ top: 36px;
59
+ bottom: 0;
60
+ width: 199px;
61
+ display: block; }
62
+ #hy-side.hy-edit-active {
63
+ left: 0; }
64
+ #hy-bottom {
65
+ position: absolute;
66
+ @include linear-gradient(color-stops($hy_bottom_bg_color, $hy_bottom_bg_gradient));
67
+ border-top: $hy_bottom_bg_gradient solid 1px;
68
+ left: 0;
69
+ right: 0;
70
+ bottom: -$hy_bottom_bar_height - 1 - 2 * $hy_bottom_padding;
71
+ height: $hy_bottom_bar_height;
72
+ padding: $hy_bottom_padding;
73
+ display: block;
74
+
75
+ .element {
76
+ display: block;
77
+ float: left;
78
+ border: 1px solid #ccc;
79
+ @include border-radius;
80
+ @include linear-gradient(color-stops(#555, #888));
81
+ color: #fff;
82
+ width: 64px;
83
+ height: 64px;
84
+ padding: 5px;
85
+ margin-left: 5px;
86
+
87
+ span {
88
+ display: block;
89
+ text-align: center;
90
+ width: 80px;
91
+ margin-left: -7px;
92
+ margin-top: 25px;
93
+ font-family: Sans-Serif;
94
+ font-weight: bold;
95
+ font-size: 8px;
96
+ @include rotate;
97
+ }
98
+ }
99
+ }
100
+ #hy-bottom.hy-edit-active {
101
+ bottom: 0;
102
+ left: 0px; }
103
+ #hy-body {
104
+ position: absolute;
105
+ overflow: auto;
106
+ top: $hy_top_bar_height + 5;
107
+ bottom: 0;
108
+ left: 0;
109
+ right: 0;
110
+ .hy-el-menu {
111
+ a {
112
+ font-size: 11px;
113
+ color: #555555;
114
+ text-decoration: none; }
115
+ position: absolute;
116
+ background: none;
117
+ top: 0;
118
+ left: 0;
119
+ display: none; }
120
+ .hy-marker-frame {
121
+ position: absolute;
122
+ top: 0;
123
+ left: 0;
124
+ background: $hy_selection_color;
125
+ display: none; }
126
+ .hy-el-share-info {
127
+ display: inline;
128
+ .description {
129
+ display: inline;
130
+ background: $hy_selection_color;
131
+ color: black;
132
+ padding: 2px; } } }
133
+ #hy-body.hy-edit-active {
134
+ left: 0px;
135
+ bottom: $hy_bottom_bar_height + 2 * $hy_bottom_padding + 1;
136
+ .hy-el-active {
137
+ .hy-el-menu, .hy-marker-frame {
138
+ display: block; } } }
139
+ .hy-locale-info {
140
+ float: right;
141
+ color: black;
142
+ padding: 3px;
143
+ border: 1px solid $hy_selection_color;
144
+ border-radius: 2px; } } }
@@ -0,0 +1,380 @@
1
+ $left_dialog_column_width: 250px;
2
+ $left_dialog_column_background: #dee4ea;
3
+ $left_dialog_column_border_color: #b4b4b4;
4
+ $left_dialog_column_border_width: 1px;
5
+ $data_table_odd_background_color: #eaf3fe;
6
+ $data_table_border_color: #c0c0c0;
7
+
8
+ @mixin jquery-ui-overrides {
9
+ .ui-button-text-only .ui-button-text {
10
+ padding: 0.2em 0.5em !important; }
11
+ .ui-tabs .ui-tabs-nav li a {
12
+ padding: 0.2em 0.5em !important; }
13
+ .ui-dialog .ui-dialog-buttonpane button {
14
+ margin: 0.3em 0.2em 0.3em 0 !important;
15
+ padding: 0.1em 0.3em 0.1em 0.3em !important; }
16
+ .ui-dialog .ui-dialog-titlebar {
17
+ padding: 0.2em 0.5em 0.1em !important;
18
+ border: none !important;
19
+ }
20
+ .ui-dialog .ui-dialog-buttonpane {
21
+ margin: 0 !important;
22
+ }
23
+ .ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text {
24
+ padding: 0.2em !important; }
25
+ .ui-button-icon-only {
26
+ width: 1.8em !important; }
27
+ .ui-button-text {
28
+ color: #333;
29
+ }
30
+ .ui-dialog {
31
+ padding: 0 !important;
32
+ border: 1px solid $data_table_border_color !important;
33
+ }
34
+ .ui-state-highlight {
35
+ height: 20px;
36
+ line-height: 2px; }
37
+ .droparea {
38
+ min-height: 20px; }
39
+ .ui-dialog-content {
40
+ position: relative;
41
+ background: yellow;
42
+ label.required {
43
+ font-weight: bold; }
44
+
45
+ .left-dialog-column, .right-dialog-column {
46
+ .dialog-buttons, .dialog-search {
47
+ position: absolute;
48
+ @include linear-gradient(color-stops(#eee, #aaa));
49
+ padding: 3px;
50
+ }
51
+ .dialog-buttons {
52
+ bottom: 0;
53
+ left: 0;
54
+ right: 0;
55
+ height: 22px;
56
+ border-top: $left_dialog_column_border_width solid $left_dialog_column_border_color;
57
+ button[type=submit] {
58
+ float: right;
59
+ }
60
+ }
61
+ .dialog-search {
62
+ top: 0;
63
+ left: 0;
64
+ right: 0;
65
+ height: 24px;
66
+ border-bottom: $left_dialog_column_border_width solid $left_dialog_column_border_color;
67
+ line-height: 24px;
68
+ font-weight: bold;
69
+
70
+ form {
71
+ position: relative;
72
+ padding: 0;
73
+ margin: 0;
74
+ }
75
+ }
76
+
77
+ .dialog-pane {
78
+ padding: 3px;
79
+ }
80
+
81
+ &.with-toolbar,
82
+ &.with-search {
83
+ overflow: hidden;
84
+ padding: 0;
85
+ .dialog-pane, .dialog-list {
86
+ position: absolute;
87
+ top: 0;
88
+ bottom: 0;
89
+ left: 0;
90
+ right: 0;
91
+ overflow: auto;
92
+ }
93
+ }
94
+
95
+ &.with-toolbar {
96
+ .dialog-pane, .dialog-list {
97
+ bottom: 29px;
98
+ }
99
+ }
100
+
101
+ &.with-search {
102
+ .dialog-pane, .dialog-list {
103
+ top: 31px;
104
+ }
105
+ }
106
+ }
107
+
108
+ .left-dialog-column {
109
+ overflow: auto;
110
+ position: absolute;
111
+ left: 0;
112
+ width: $left_dialog_column_width;
113
+ top: 0;
114
+ bottom: 0;
115
+ background: $left_dialog_column_background;
116
+ border-right: $left_dialog_column_border_width solid $left_dialog_column_border_color;
117
+ .ui-state-highlight {
118
+ border: none;
119
+ line-height: 2px;
120
+ background: #660000;
121
+ margin: -2px 0 0 10px; }
122
+
123
+ .dialog-list {
124
+ ul {
125
+ margin: 0;
126
+ padding: 0;
127
+
128
+ li {
129
+ margin: 0;
130
+ padding: 5px;
131
+ border-bottom: 1px solid #8196b9;
132
+ a {
133
+ display:block;
134
+ padding: 5px;
135
+ margin: -5px;
136
+ width: $left_dialog_column_width - 10px;
137
+ overflow: hidden;
138
+ width: 100%;
139
+ text-decoration: none;
140
+ font-weight: normal;
141
+ color: #000;
142
+ }
143
+ a.active {
144
+ color: white;
145
+ background: rgb(114, 133, 172);
146
+ @include linear-gradient(color-stops(#b0bfd8, #8196b9));
147
+ color: #fff;
148
+ font-weight: bold;
149
+ }
150
+ }
151
+ }
152
+ }
153
+
154
+ .dialog-search {
155
+ input {
156
+ width: 100%;
157
+ }
158
+ }
159
+ }
160
+
161
+ .right-dialog-column {
162
+ overflow: auto;
163
+ position: absolute;
164
+ left: $left_dialog_column_width + $left_dialog_column_border_width;
165
+ right: 0;
166
+ top: 0;
167
+ bottom: 0;
168
+
169
+ .dialog-search {
170
+ input {
171
+ width: $left_dialog_column_width - 6px;
172
+ float: right;
173
+ }
174
+ }
175
+ }
176
+
177
+
178
+ .flash {
179
+ padding: 5px;
180
+ margin: 0 0 5px 0;
181
+ @include border-radius;
182
+ &.error {
183
+ background: #fcc;
184
+ color: #600;
185
+ border: 1px solid #600;
186
+ }
187
+ &.info {
188
+ background: #cfc;
189
+ color: #060;
190
+ border: 1px solid #060;
191
+ }
192
+ }
193
+
194
+ .data_table {
195
+ width: 100%;
196
+ border-collapse: collapse;
197
+ border-spacing: 0;
198
+ margin-bottom: 10px;
199
+ border-top: 1px solid $data_table_border_color;
200
+ border-bottom: 1px solid $data_table_border_color;
201
+ td, th {
202
+ border-left: 1px solid $data_table_border_color;
203
+ border-right: 1px solid $data_table_border_color;
204
+ text-align: left;
205
+ padding: 0 4px;
206
+ white-space: nowrap;
207
+ overflow: hidden;
208
+ }
209
+ th {
210
+ /*@include linear-gradient(color-stops(#fff, #ccc, #fff));*/
211
+ background: #ddd;
212
+ border-bottom: 1px solid $data_table_border_color;
213
+ color: #525252;
214
+ font-weight: normal;
215
+ position: relative;
216
+ &.sortable {
217
+ padding: 0;
218
+ a {
219
+ padding: 0 13px 0 4px;
220
+ text-decoration: none;
221
+ display: block;
222
+ }
223
+ }
224
+ &.asc a {
225
+ background: image_url("table/asc.png") center right no-repeat;
226
+ }
227
+ &.desc a {
228
+ background: image_url("table/desc.png") center right no-repeat;
229
+ }
230
+ }
231
+ tr:nth-child(2n) {
232
+ background: $data_table_odd_background_color;
233
+ }
234
+ }
235
+
236
+ }
237
+
238
+ .dialog-menu {
239
+ display: none;
240
+ position: absolute;
241
+ background: #fff;
242
+ bottom: 0;
243
+ left: 0;
244
+ right: 0;
245
+
246
+ a {
247
+ display: block;
248
+ border-top: 1px solid #999;
249
+ text-decoration: none;
250
+ padding: 3px;
251
+ }
252
+
253
+ a:hover {
254
+ @include linear-gradient(color-stops(#b0bfd8, #8196b9));
255
+ }
256
+ }
257
+
258
+
259
+ .jstree-default {
260
+ li, ins {
261
+ background-image: image_url("jstree/d.png");
262
+ background-repeat: no-repeat;
263
+ background-color: transparent; }
264
+ li {
265
+ background-position: -90px 0;
266
+ background-repeat: repeat-y;
267
+ &.jstree-last {
268
+ background: transparent; } }
269
+ .jstree-open > ins {
270
+ background-position: -72px 0; }
271
+ .jstree-closed > ins {
272
+ background-position: -54px 0; }
273
+ .jstree-leaf > ins {
274
+ background-position: -36px 0; }
275
+ .jstree-hovered {
276
+ background: #e7f4f9;
277
+ border: 1px solid #d8f0fa;
278
+ padding: 0 2px 0 1px; }
279
+ .jstree-clicked {
280
+ background: #beebff;
281
+ border: 1px solid #99defd;
282
+ padding: 0 2px 0 1px; }
283
+ a {
284
+ .jstree-icon {
285
+ background-position: -56px -19px; }
286
+ &.jstree-loading .jstree-icon {
287
+ background: image_url("jstree/throbber.gif") center center no-repeat !important; } }
288
+ &.jstree-focused {
289
+ background: transparent; }
290
+ .jstree-no-dots {
291
+ li, .jstree-leaf > ins {
292
+ background: transparent; }
293
+ .jstree-open > ins {
294
+ background-position: -18px 0; }
295
+ .jstree-closed > ins {
296
+ background-position: 0 0; } }
297
+ .jstree-no-icons a .jstree-icon {
298
+ display: none; }
299
+ .jstree-search {
300
+ font-style: italic; }
301
+ .jstree-no-icons .jstree-checkbox {
302
+ display: inline-block; }
303
+ .jstree-no-checkboxes .jstree-checkbox {
304
+ display: none !important; }
305
+ .jstree-checked > a > .jstree-checkbox {
306
+ background-position: -38px -19px; }
307
+ .jstree-unchecked > a > .jstree-checkbox {
308
+ background-position: -2px -19px; }
309
+ .jstree-undetermined > a > .jstree-checkbox {
310
+ background-position: -20px -19px; }
311
+ .jstree-checked > a > .jstree-checkbox:hover {
312
+ background-position: -38px -37px; }
313
+ .jstree-unchecked > a > .jstree-checkbox:hover {
314
+ background-position: -2px -37px; }
315
+ .jstree-undetermined > a > .jstree-checkbox:hover {
316
+ background-position: -20px -37px; } }
317
+
318
+ #vakata-dragged.jstree-default {
319
+ ins {
320
+ background: transparent !important; }
321
+ .jstree-ok {
322
+ background: image_url("jstree/d.png") -2px -53px no-repeat !important; }
323
+ .jstree-invalid {
324
+ background: image_url("jstree/d.png") -18px -53px no-repeat !important; } }
325
+
326
+ #jstree-marker.jstree-default {
327
+ background: image_url("jstree/d.png") -41px -57px no-repeat !important; }
328
+
329
+ .jstree-default a.jstree-search {
330
+ color: aqua; }
331
+
332
+ #vakata-contextmenu.jstree-default-context {
333
+ background: #f0f0f0;
334
+ border: 1px solid #979797;
335
+ -moz-box-shadow: 1px 1px 2px #999;
336
+ -webkit-box-shadow: 1px 1px 2px #999;
337
+ box-shadow: 1px 1px 2px #999;
338
+ li ul {
339
+ background: #f0f0f0;
340
+ border: 1px solid #979797;
341
+ -moz-box-shadow: 1px 1px 2px #999;
342
+ -webkit-box-shadow: 1px 1px 2px #999;
343
+ box-shadow: 1px 1px 2px #999; }
344
+ a {
345
+ color: black;
346
+ &:hover {
347
+ padding: 0 5px;
348
+ background: #e8eff7;
349
+ border: 1px solid #aecff7;
350
+ color: black;
351
+ -moz-border-radius: 2px;
352
+ -webkit-border-radius: 2px;
353
+ border-radius: 2px; } }
354
+ .vakata-hover > a {
355
+ padding: 0 5px;
356
+ background: #e8eff7;
357
+ border: 1px solid #aecff7;
358
+ color: black;
359
+ -moz-border-radius: 2px;
360
+ -webkit-border-radius: 2px;
361
+ border-radius: 2px; }
362
+ li {
363
+ &.jstree-contextmenu-disabled a {
364
+ color: silver;
365
+ background: transparent;
366
+ border: 0;
367
+ padding: 1px 4px;
368
+ &:hover {
369
+ color: silver;
370
+ background: transparent;
371
+ border: 0;
372
+ padding: 1px 4px; } }
373
+ &.vakata-separator {
374
+ background: white;
375
+ border-top: 1px solid #e0e0e0;
376
+ margin: 0; }
377
+ ul {
378
+ margin-left: -4px; } } }
379
+
380
+ }