comfortable_mexican_sofa 1.6.31 → 1.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. data/.travis.yml +7 -2
  2. data/Gemfile +11 -2
  3. data/README.md +2 -3
  4. data/Rakefile +18 -0
  5. data/VERSION +1 -0
  6. data/app/assets/images/comfortable_mexican_sofa/bootstrap/glyphicons-halflings-white.png +0 -0
  7. data/app/assets/images/comfortable_mexican_sofa/bootstrap/glyphicons-halflings.png +0 -0
  8. data/app/assets/images/comfortable_mexican_sofa/{icon_regular.gif → icon_file.gif} +0 -0
  9. data/app/assets/images/comfortable_mexican_sofa/icon_page.gif +0 -0
  10. data/app/assets/images/comfortable_mexican_sofa/icon_site.gif +0 -0
  11. data/app/assets/javascripts/comfortable_mexican_sofa/application.js +61 -93
  12. data/app/assets/javascripts/comfortable_mexican_sofa/lib/bootstrap-datetimepicker.js +21 -0
  13. data/app/assets/javascripts/comfortable_mexican_sofa/lib/bootstrap-wysihtml5.js +492 -0
  14. data/app/assets/javascripts/comfortable_mexican_sofa/lib/bootstrap.js +6 -0
  15. data/app/assets/javascripts/comfortable_mexican_sofa/lib/codemirror.js +10 -0
  16. data/app/assets/javascripts/comfortable_mexican_sofa/lib/wysihtml5.js +261 -0
  17. data/app/assets/stylesheets/comfortable_mexican_sofa/application.css.sass +9 -0
  18. data/app/assets/stylesheets/comfortable_mexican_sofa/base.css.sass +328 -0
  19. data/app/assets/stylesheets/comfortable_mexican_sofa/base_overrides.css.sass +6 -0
  20. data/app/assets/stylesheets/comfortable_mexican_sofa/bootstrap_overrides.css.sass +43 -0
  21. data/app/assets/stylesheets/comfortable_mexican_sofa/codemirror_overrides.css.sass +27 -0
  22. data/app/assets/stylesheets/comfortable_mexican_sofa/lib/bootstrap-datetimepicker.css +9 -0
  23. data/app/assets/stylesheets/comfortable_mexican_sofa/lib/bootstrap-wysihtml5.css +102 -0
  24. data/app/assets/stylesheets/comfortable_mexican_sofa/lib/bootstrap.css +9 -0
  25. data/app/assets/stylesheets/comfortable_mexican_sofa/lib/codemirror.css +240 -0
  26. data/app/assets/stylesheets/comfortable_mexican_sofa/wysihtml5_overrides.css.sass +5 -0
  27. data/app/controllers/cms_admin/files_controller.rb +3 -3
  28. data/app/controllers/cms_admin/layouts_controller.rb +3 -3
  29. data/app/controllers/cms_admin/pages_controller.rb +3 -3
  30. data/app/controllers/cms_admin/revisions_controller.rb +1 -1
  31. data/app/controllers/cms_admin/sites_controller.rb +3 -3
  32. data/app/controllers/cms_admin/snippets_controller.rb +3 -3
  33. data/app/models/cms/file.rb +5 -3
  34. data/app/models/cms/page.rb +1 -14
  35. data/app/models/cms/site.rb +2 -2
  36. data/app/views/cms_admin/categories/_categories.html.haml +3 -0
  37. data/app/views/cms_admin/categories/_edit.html.haml +6 -0
  38. data/app/views/cms_admin/categories/_form.html.haml +8 -0
  39. data/app/views/cms_admin/categories/_index.html.haml +24 -0
  40. data/app/views/cms_admin/categories/_show.html.haml +13 -0
  41. data/app/views/cms_admin/categories/create.js.erb +3 -3
  42. data/app/views/cms_admin/categories/update.js.erb +1 -1
  43. data/app/views/cms_admin/files/_file.html.haml +14 -0
  44. data/app/views/cms_admin/files/_form.html.haml +13 -0
  45. data/app/views/cms_admin/files/_index.html.haml +12 -0
  46. data/app/views/cms_admin/files/_page_form.html.haml +9 -0
  47. data/app/views/cms_admin/files/create.js.erb +1 -1
  48. data/app/views/cms_admin/files/edit.html.haml +5 -0
  49. data/app/views/cms_admin/files/index.html.haml +26 -0
  50. data/app/views/cms_admin/files/new.html.haml +5 -0
  51. data/app/views/cms_admin/layouts/_form.html.haml +17 -0
  52. data/app/views/cms_admin/layouts/_index_branch.html.haml +23 -0
  53. data/app/views/cms_admin/layouts/edit.html.haml +9 -0
  54. data/app/views/cms_admin/layouts/index.html.haml +9 -0
  55. data/app/views/cms_admin/layouts/new.html.haml +5 -0
  56. data/app/views/cms_admin/pages/_form.html.haml +35 -0
  57. data/app/views/cms_admin/pages/_form_blocks.html.haml +28 -0
  58. data/app/views/cms_admin/pages/_index_branch.html.haml +35 -0
  59. data/app/views/cms_admin/pages/edit.html.haml +9 -0
  60. data/app/views/cms_admin/pages/form_blocks.js.erb +2 -3
  61. data/app/views/cms_admin/pages/index.html.haml +11 -0
  62. data/app/views/cms_admin/pages/new.html.haml +5 -0
  63. data/app/views/cms_admin/revisions/show.html.haml +28 -0
  64. data/app/views/cms_admin/sites/_form.html.haml +10 -0
  65. data/app/views/cms_admin/sites/_mirrors.html.haml +17 -0
  66. data/app/views/cms_admin/sites/edit.html.haml +5 -0
  67. data/app/views/cms_admin/sites/index.html.haml +24 -0
  68. data/app/views/cms_admin/sites/new.html.haml +5 -0
  69. data/app/views/cms_admin/snippets/_form.html.haml +11 -0
  70. data/app/views/cms_admin/snippets/edit.html.haml +9 -0
  71. data/app/views/cms_admin/snippets/index.html.haml +28 -0
  72. data/app/views/cms_admin/snippets/new.html.haml +5 -0
  73. data/app/views/layouts/cms_admin.html.haml +4 -0
  74. data/app/views/layouts/cms_admin/_body.html.haml +16 -0
  75. data/app/views/layouts/cms_admin/_center.html.haml +7 -0
  76. data/app/views/layouts/cms_admin/_head.html.haml +13 -0
  77. data/app/views/layouts/cms_admin/_left.html.haml +10 -0
  78. data/app/views/layouts/cms_admin/_right.html.haml +1 -0
  79. data/comfortable_mexican_sofa.gemspec +323 -21
  80. data/config/application.rb +22 -14
  81. data/config/environments/development.rb +16 -2
  82. data/config/environments/production.rb +22 -7
  83. data/config/environments/test.rb +6 -6
  84. data/config/initializers/comfortable_mexican_sofa.rb +1 -1
  85. data/db/migrate/01_create_cms.rb +1 -1
  86. data/doc/preview.png +0 -0
  87. data/lib/comfortable_mexican_sofa.rb +0 -5
  88. data/lib/comfortable_mexican_sofa/configuration.rb +1 -1
  89. data/lib/comfortable_mexican_sofa/engine.rb +8 -2
  90. data/lib/comfortable_mexican_sofa/extensions/rails.rb +2 -2
  91. data/lib/comfortable_mexican_sofa/form_builder.rb +27 -82
  92. data/lib/comfortable_mexican_sofa/tag.rb +1 -1
  93. data/lib/comfortable_mexican_sofa/tags/page_markdown.rb +22 -0
  94. data/lib/comfortable_mexican_sofa/version.rb +6 -2
  95. data/lib/comfortable_mexican_sofa/view_methods.rb +5 -8
  96. data/test/functional/cms_admin/files_controller_test.rb +4 -4
  97. data/test/functional/cms_admin/layouts_controller_test.rb +3 -3
  98. data/test/functional/cms_admin/pages_controller_test.rb +20 -12
  99. data/test/functional/cms_admin/revisions_controller_test.rb +3 -3
  100. data/test/functional/cms_admin/sites_controller_test.rb +3 -3
  101. data/test/functional/cms_admin/snippets_controller_test.rb +3 -3
  102. data/test/functional/cms_content_controller_test.rb +1 -1
  103. data/test/gemfiles/Gemfile.rails.3.1 +10 -4
  104. data/test/gemfiles/Gemfile.rails.3.2 +10 -4
  105. data/test/gemfiles/Gemfile.rails.4.0 +16 -0
  106. data/test/test_helper.rb +1 -16
  107. data/test/unit/configuration_test.rb +1 -3
  108. data/test/unit/models/page_test.rb +1 -19
  109. data/test/unit/models/site_test.rb +1 -5
  110. data/test/unit/tags/page_file_test.rb +6 -5
  111. data/test/unit/tags/page_files_test.rb +5 -3
  112. data/test/unit/tags/page_markdown_test.rb +48 -0
  113. metadata +195 -131
  114. checksums.yaml +0 -7
  115. data/.gitignore +0 -14
  116. data/app/assets/images/comfortable_mexican_sofa/elrte/elrte-toolbar.png +0 -0
  117. data/app/assets/images/comfortable_mexican_sofa/elrte/google-maps.png +0 -0
  118. data/app/assets/images/comfortable_mexican_sofa/elrte/iframe.png +0 -0
  119. data/app/assets/images/comfortable_mexican_sofa/elrte/media-director.png +0 -0
  120. data/app/assets/images/comfortable_mexican_sofa/elrte/media-flash.png +0 -0
  121. data/app/assets/images/comfortable_mexican_sofa/elrte/media-quicktime.png +0 -0
  122. data/app/assets/images/comfortable_mexican_sofa/elrte/media-realaudio.png +0 -0
  123. data/app/assets/images/comfortable_mexican_sofa/elrte/media-rutube.png +0 -0
  124. data/app/assets/images/comfortable_mexican_sofa/elrte/media-vimeo.png +0 -0
  125. data/app/assets/images/comfortable_mexican_sofa/elrte/media-winmedia.png +0 -0
  126. data/app/assets/images/comfortable_mexican_sofa/elrte/media-youtube.png +0 -0
  127. data/app/assets/images/comfortable_mexican_sofa/elrte/outline-div.png +0 -0
  128. data/app/assets/images/comfortable_mexican_sofa/elrte/outline-p.png +0 -0
  129. data/app/assets/images/comfortable_mexican_sofa/elrte/pagebreak.gif +0 -0
  130. data/app/assets/images/comfortable_mexican_sofa/elrte/pixel.gif +0 -0
  131. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/evilgrin.png +0 -0
  132. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/grin.png +0 -0
  133. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/happy.png +0 -0
  134. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/smile.png +0 -0
  135. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/surprised.png +0 -0
  136. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/tongue.png +0 -0
  137. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/unhappy.png +0 -0
  138. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/waii.png +0 -0
  139. data/app/assets/images/comfortable_mexican_sofa/elrte/smileys/wink.png +0 -0
  140. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  141. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  142. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  143. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  144. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_glass_75_dadada_1x400.png +0 -0
  145. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  146. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  147. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  148. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  149. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-icons_222222_256x240.png +0 -0
  150. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-icons_2e83ff_256x240.png +0 -0
  151. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-icons_454545_256x240.png +0 -0
  152. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-icons_888888_256x240.png +0 -0
  153. data/app/assets/images/comfortable_mexican_sofa/jquery_ui/ui-icons_cd0a0a_256x240.png +0 -0
  154. data/app/assets/images/comfortable_mexican_sofa/x.png +0 -0
  155. data/app/assets/javascripts/comfortable_mexican_sofa/codemirror/codemirror.js +0 -1
  156. data/app/assets/javascripts/comfortable_mexican_sofa/elrte/elrte.codemirror.js +0 -36
  157. data/app/assets/javascripts/comfortable_mexican_sofa/elrte/elrte.js +0 -267
  158. data/app/assets/javascripts/comfortable_mexican_sofa/elrte/elrte.sofa_image.js +0 -69
  159. data/app/assets/javascripts/comfortable_mexican_sofa/elrte/elrte.sofa_link.js +0 -58
  160. data/app/assets/javascripts/comfortable_mexican_sofa/jquery.js +0 -4
  161. data/app/assets/javascripts/comfortable_mexican_sofa/jquery_ui.js +0 -791
  162. data/app/assets/javascripts/comfortable_mexican_sofa/jquery_ui_timepicker.js +0 -12
  163. data/app/assets/javascripts/comfortable_mexican_sofa/rails.js +0 -315
  164. data/app/assets/stylesheets/comfortable_mexican_sofa/application.css +0 -13
  165. data/app/assets/stylesheets/comfortable_mexican_sofa/codemirror.css +0 -121
  166. data/app/assets/stylesheets/comfortable_mexican_sofa/content.css +0 -271
  167. data/app/assets/stylesheets/comfortable_mexican_sofa/dialogs.css +0 -45
  168. data/app/assets/stylesheets/comfortable_mexican_sofa/elrte.css +0 -173
  169. data/app/assets/stylesheets/comfortable_mexican_sofa/files.css +0 -82
  170. data/app/assets/stylesheets/comfortable_mexican_sofa/form.css +0 -232
  171. data/app/assets/stylesheets/comfortable_mexican_sofa/jquery_ui.css +0 -568
  172. data/app/assets/stylesheets/comfortable_mexican_sofa/reset.css +0 -1
  173. data/app/assets/stylesheets/comfortable_mexican_sofa/structure.css +0 -157
  174. data/app/assets/stylesheets/comfortable_mexican_sofa/typography.css +0 -39
  175. data/app/assets/stylesheets/comfortable_mexican_sofa/widgets.css +0 -29
  176. data/app/controllers/cms_admin/dialogs_controller.rb +0 -13
  177. data/app/views/cms_admin/categories/_categories.html.erb +0 -6
  178. data/app/views/cms_admin/categories/_edit.html.erb +0 -7
  179. data/app/views/cms_admin/categories/_form.html.erb +0 -12
  180. data/app/views/cms_admin/categories/_index.html.erb +0 -31
  181. data/app/views/cms_admin/categories/_show.html.erb +0 -16
  182. data/app/views/cms_admin/dialogs/image.html.erb +0 -7
  183. data/app/views/cms_admin/dialogs/link.html.erb +0 -5
  184. data/app/views/cms_admin/files/_file.html.erb +0 -18
  185. data/app/views/cms_admin/files/_form.html.erb +0 -16
  186. data/app/views/cms_admin/files/_index.html.erb +0 -16
  187. data/app/views/cms_admin/files/_page_form.html.erb +0 -12
  188. data/app/views/cms_admin/files/edit.html.erb +0 -5
  189. data/app/views/cms_admin/files/index.html.erb +0 -29
  190. data/app/views/cms_admin/files/new.html.erb +0 -5
  191. data/app/views/cms_admin/layouts/_form.html.erb +0 -20
  192. data/app/views/cms_admin/layouts/_index_branch.html.erb +0 -27
  193. data/app/views/cms_admin/layouts/edit.html.erb +0 -11
  194. data/app/views/cms_admin/layouts/index.html.erb +0 -10
  195. data/app/views/cms_admin/layouts/new.html.erb +0 -5
  196. data/app/views/cms_admin/pages/_form.html.erb +0 -39
  197. data/app/views/cms_admin/pages/_form_blocks.html.erb +0 -41
  198. data/app/views/cms_admin/pages/_index_branch.html.erb +0 -43
  199. data/app/views/cms_admin/pages/edit.html.erb +0 -11
  200. data/app/views/cms_admin/pages/index.html.erb +0 -12
  201. data/app/views/cms_admin/pages/new.html.erb +0 -5
  202. data/app/views/cms_admin/revisions/show.html.erb +0 -36
  203. data/app/views/cms_admin/sites/_form.html.erb +0 -10
  204. data/app/views/cms_admin/sites/_mirrors.html.erb +0 -20
  205. data/app/views/cms_admin/sites/edit.html.erb +0 -5
  206. data/app/views/cms_admin/sites/index.html.erb +0 -23
  207. data/app/views/cms_admin/sites/new.html.erb +0 -5
  208. data/app/views/cms_admin/snippets/_form.html.erb +0 -13
  209. data/app/views/cms_admin/snippets/edit.html.erb +0 -10
  210. data/app/views/cms_admin/snippets/index.html.erb +0 -33
  211. data/app/views/cms_admin/snippets/new.html.erb +0 -5
  212. data/app/views/layouts/cms_admin.html.erb +0 -5
  213. data/app/views/layouts/cms_admin/_body.html.erb +0 -23
  214. data/app/views/layouts/cms_admin/_center.html.erb +0 -6
  215. data/app/views/layouts/cms_admin/_head.html.erb +0 -43
  216. data/app/views/layouts/cms_admin/_left.html.erb +0 -10
  217. data/app/views/layouts/cms_admin/_right.html.erb +0 -1
  218. data/test/functional/cms_admin/dialogs_controller_test.rb +0 -24
  219. data/test/gemfiles/Gemfile.rails.3.0 +0 -10
  220. data/test/unit/form_builder_test.rb +0 -69
@@ -28,7 +28,7 @@ class CmsAdmin::FilesController < CmsAdmin::BaseController
28
28
  @file = @site.files.create!(file_params.merge(:label => label))
29
29
  end
30
30
 
31
- flash[:notice] = I18n.t('cms.files.created')
31
+ flash[:success] = I18n.t('cms.files.created')
32
32
  redirect_to :action => :edit, :id => @file
33
33
  end
34
34
  format.js do
@@ -74,7 +74,7 @@ class CmsAdmin::FilesController < CmsAdmin::BaseController
74
74
 
75
75
  def update
76
76
  @file.update_attributes!(params[:file])
77
- flash[:notice] = I18n.t('cms.files.updated')
77
+ flash[:success] = I18n.t('cms.files.updated')
78
78
  redirect_to :action => :edit, :id => @file
79
79
  rescue ActiveRecord::RecordInvalid
80
80
  logger.detailed_error($!)
@@ -87,7 +87,7 @@ class CmsAdmin::FilesController < CmsAdmin::BaseController
87
87
  respond_to do |format|
88
88
  format.js
89
89
  format.html do
90
- flash[:notice] = I18n.t('cms.files.deleted')
90
+ flash[:success] = I18n.t('cms.files.deleted')
91
91
  redirect_to :action => :index
92
92
  end
93
93
  end
@@ -18,7 +18,7 @@ class CmsAdmin::LayoutsController < CmsAdmin::BaseController
18
18
 
19
19
  def create
20
20
  @layout.save!
21
- flash[:notice] = I18n.t('cms.layouts.created')
21
+ flash[:success] = I18n.t('cms.layouts.created')
22
22
  redirect_to :action => :edit, :id => @layout
23
23
  rescue ActiveRecord::RecordInvalid
24
24
  logger.detailed_error($!)
@@ -28,7 +28,7 @@ class CmsAdmin::LayoutsController < CmsAdmin::BaseController
28
28
 
29
29
  def update
30
30
  @layout.update_attributes!(params[:layout])
31
- flash[:notice] = I18n.t('cms.layouts.updated')
31
+ flash[:success] = I18n.t('cms.layouts.updated')
32
32
  redirect_to :action => :edit, :id => @layout
33
33
  rescue ActiveRecord::RecordInvalid
34
34
  logger.detailed_error($!)
@@ -38,7 +38,7 @@ class CmsAdmin::LayoutsController < CmsAdmin::BaseController
38
38
 
39
39
  def destroy
40
40
  @layout.destroy
41
- flash[:notice] = I18n.t('cms.layouts.deleted')
41
+ flash[:success] = I18n.t('cms.layouts.deleted')
42
42
  redirect_to :action => :index
43
43
  end
44
44
 
@@ -26,7 +26,7 @@ class CmsAdmin::PagesController < CmsAdmin::BaseController
26
26
 
27
27
  def create
28
28
  @page.save!
29
- flash[:notice] = I18n.t('cms.pages.created')
29
+ flash[:success] = I18n.t('cms.pages.created')
30
30
  redirect_to :action => :edit, :id => @page
31
31
  rescue ActiveRecord::RecordInvalid
32
32
  logger.detailed_error($!)
@@ -36,7 +36,7 @@ class CmsAdmin::PagesController < CmsAdmin::BaseController
36
36
 
37
37
  def update
38
38
  @page.save!
39
- flash[:notice] = I18n.t('cms.pages.updated')
39
+ flash[:success] = I18n.t('cms.pages.updated')
40
40
  redirect_to :action => :edit, :id => @page
41
41
  rescue ActiveRecord::RecordInvalid
42
42
  logger.detailed_error($!)
@@ -46,7 +46,7 @@ class CmsAdmin::PagesController < CmsAdmin::BaseController
46
46
 
47
47
  def destroy
48
48
  @page.destroy
49
- flash[:notice] = I18n.t('cms.pages.deleted')
49
+ flash[:success] = I18n.t('cms.pages.deleted')
50
50
  redirect_to :action => :index
51
51
  end
52
52
 
@@ -20,7 +20,7 @@ class CmsAdmin::RevisionsController < CmsAdmin::BaseController
20
20
 
21
21
  def revert
22
22
  @record.restore_from_revision(@revision)
23
- flash[:notice] = I18n.t('cms.revisions.reverted')
23
+ flash[:success] = I18n.t('cms.revisions.reverted')
24
24
  redirect_to_record
25
25
  end
26
26
 
@@ -22,7 +22,7 @@ class CmsAdmin::SitesController < CmsAdmin::BaseController
22
22
 
23
23
  def create
24
24
  @site.save!
25
- flash[:notice] = I18n.t('cms.sites.created')
25
+ flash[:success] = I18n.t('cms.sites.created')
26
26
  redirect_to cms_admin_site_layouts_path(@site)
27
27
  rescue ActiveRecord::RecordInvalid
28
28
  logger.detailed_error($!)
@@ -32,7 +32,7 @@ class CmsAdmin::SitesController < CmsAdmin::BaseController
32
32
 
33
33
  def update
34
34
  @site.update_attributes!(params[:site])
35
- flash[:notice] = I18n.t('cms.sites.updated')
35
+ flash[:success] = I18n.t('cms.sites.updated')
36
36
  redirect_to :action => :edit, :id => @site
37
37
  rescue ActiveRecord::RecordInvalid
38
38
  logger.detailed_error($!)
@@ -42,7 +42,7 @@ class CmsAdmin::SitesController < CmsAdmin::BaseController
42
42
 
43
43
  def destroy
44
44
  @site.destroy
45
- flash[:notice] = I18n.t('cms.sites.deleted')
45
+ flash[:success] = I18n.t('cms.sites.deleted')
46
46
  redirect_to :action => :index
47
47
  end
48
48
 
@@ -18,7 +18,7 @@ class CmsAdmin::SnippetsController < CmsAdmin::BaseController
18
18
 
19
19
  def create
20
20
  @snippet.save!
21
- flash[:notice] = I18n.t('cms.snippets.created')
21
+ flash[:success] = I18n.t('cms.snippets.created')
22
22
  redirect_to :action => :edit, :id => @snippet
23
23
  rescue ActiveRecord::RecordInvalid
24
24
  logger.detailed_error($!)
@@ -28,7 +28,7 @@ class CmsAdmin::SnippetsController < CmsAdmin::BaseController
28
28
 
29
29
  def update
30
30
  @snippet.update_attributes!(params[:snippet])
31
- flash[:notice] = I18n.t('cms.snippets.updated')
31
+ flash[:success] = I18n.t('cms.snippets.updated')
32
32
  redirect_to :action => :edit, :id => @snippet
33
33
  rescue ActiveRecord::RecordInvalid
34
34
  logger.detailed_error($!)
@@ -38,7 +38,7 @@ class CmsAdmin::SnippetsController < CmsAdmin::BaseController
38
38
 
39
39
  def destroy
40
40
  @snippet.destroy
41
- flash[:notice] = I18n.t('cms.snippets.deleted')
41
+ flash[:success] = I18n.t('cms.snippets.deleted')
42
42
  redirect_to :action => :index
43
43
  end
44
44
 
@@ -22,9 +22,11 @@ class Cms::File < ActiveRecord::Base
22
22
  has_attached_file :file, ComfortableMexicanSofa.config.upload_file_options.merge(
23
23
  # dimensions accessor needs to be set before file assignment for this to work
24
24
  :styles => lambda { |f|
25
- (f.instance.dimensions.blank?? { } : { :original => f.instance.dimensions }).merge(
26
- :cms_thumb => '80x60#'
27
- ).merge(ComfortableMexicanSofa.config.upload_file_options[:styles] || {})
25
+ if f.respond_to?(:instance) && f.instance.respond_to?(:dimensions)
26
+ (f.instance.dimensions.blank?? { } : { :original => f.instance.dimensions }).merge(
27
+ :cms_thumb => '80x60#'
28
+ )
29
+ end
28
30
  }
29
31
  )
30
32
  before_post_process :is_image?
@@ -1,16 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
- class ColumnLimitValidator < ActiveModel::EachValidator
4
- # Ensuring that slug and full path are not longer than what database
5
- # can store. We want to avoid magical invisible truncation
6
- def validate_each(record, attribute, value)
7
- column_limit = record.class.columns_hash[attribute.to_s].limit
8
- if value.to_s.length > column_limit
9
- record.errors.add(attribute, :too_long, :count => column_limit)
10
- end
11
- end
12
- end
13
-
14
3
  class Cms::Page < ActiveRecord::Base
15
4
 
16
5
  ComfortableMexicanSofa.establish_connection(self)
@@ -66,9 +55,7 @@ class Cms::Page < ActiveRecord::Base
66
55
  :presence => true
67
56
  validate :validate_target_page
68
57
  validate :validate_format_of_unescaped_slug
69
- validates :slug, :full_path,
70
- :column_limit => true
71
-
58
+
72
59
  # -- Scopes ---------------------------------------------------------------
73
60
  default_scope order('cms_pages.position')
74
61
  scope :published, where(:is_published => true)
@@ -50,7 +50,7 @@ class Cms::Site < ActiveRecord::Base
50
50
  Cms::Site.find_all_by_hostname(real_host_from_aliases(host)).each do |site|
51
51
  if site.path.blank?
52
52
  cms_site = site
53
- elsif "#{path.to_s.split('?')[0]}/".match /^\/#{Regexp.escape(site.path.to_s)}\//
53
+ elsif "#{path}/".match /^\/#{Regexp.escape(site.path.to_s)}\//
54
54
  cms_site = site
55
55
  break
56
56
  end
@@ -78,7 +78,7 @@ protected
78
78
  end
79
79
 
80
80
  def assign_identifier
81
- self.identifier = self.identifier.blank?? self.hostname.try(:idify) : self.identifier
81
+ self.identifier = self.identifier.blank?? self.hostname.try(:slugify) : self.identifier
82
82
  end
83
83
 
84
84
  def assign_hostname
@@ -0,0 +1,3 @@
1
+ - object ||= categories
2
+ - object.categories.each do |category|
3
+ .category= category.label
@@ -0,0 +1,6 @@
1
+ - category ||= edit
2
+
3
+ = form_for @category, :as => :category, :url => cms_admin_site_category_path(@site, category), :remote => true, :html => {:id => dom_id(category)} do |form|
4
+ .input-append
5
+ = form.text_field :label
6
+ %button.btn.btn-mini= t('.save')
@@ -0,0 +1,8 @@
1
+ - object = form.object
2
+ - if (categories = @site.categories.of_type(object.class.to_s)).present?
3
+ = form.element t('.label'), nil, :class => 'categories' do
4
+ - categories.each do |category|
5
+ = hidden_field_tag "#{object.class.to_s.demodulize.underscore.downcase}[category_ids][#{category.id}]", 0, :id => nil
6
+ %label.checkbox.inline
7
+ = check_box_tag "#{object.class.to_s.demodulize.underscore.downcase}[category_ids][#{category.id}]", 1, object.categories.member?(category), :id => nil
8
+ = category.label
@@ -0,0 +1,24 @@
1
+ - type ||= index
2
+
3
+ .categories-widget
4
+ .categories-widget-label= t('.label')
5
+
6
+ .action-links
7
+ .edit= link_to t('.edit'), '#', :class => 'btn btn-mini'
8
+ .done= link_to t('.done'), '#', :class => 'btn btn-mini'
9
+
10
+ .categories.read
11
+ .category.all{:class => params[:category].blank?? 'active' : nil}
12
+ = link_to t('.all'), :category => nil
13
+ - @site.categories.of_type(type).each do |category|
14
+ = render :partial => 'cms_admin/categories/show', :object => category, :locals => { :read => true }
15
+
16
+ .categories.editable
17
+ - @site.categories.of_type(type).each do |category|
18
+ = render :partial => 'cms_admin/categories/show', :object => category
19
+
20
+ = form_for :category, :url => cms_admin_site_categories_path(@site), :remote => true, :html => {:id => 'new_category'} do |form|
21
+ = form.hidden_field :categorized_type, :value => type
22
+ .input-append
23
+ = form.text_field :label, :placeholder => 'Add Category'
24
+ %button.btn.btn-mini= t('.add')
@@ -0,0 +1,13 @@
1
+ - category ||= show
2
+ - read ||= false
3
+ - categories = [params[:category]].flatten.compact
4
+ - active = categories.flatten.member?(category.label)
5
+
6
+ .category{:class => (read && active ? 'active' : nil), :id => dom_id(category)}
7
+ - if read
8
+ - categories = active ? categories.reject{|c| c == category.label} : categories << category.label
9
+ = link_to category.label, "?#{{:category => categories}.to_param}"
10
+ - else
11
+ = link_to category.label, edit_cms_admin_site_category_path(@site, category), :remote => true
12
+ = link_to cms_admin_site_category_path(@site, category), :method => :delete, :remote => true, :data => {:confirm => t('.are_you_sure')}, :class => 'delete' do
13
+ %i.icon-remove-circle
@@ -1,7 +1,7 @@
1
- $('.categories_widget .categories.editable .category.new').before(
1
+ $('.categories-widget .categories.editable form#new_category').before(
2
2
  '<%= escape_javascript(render :partial => "show", :object => @category ) %>'
3
3
  );
4
- $('.categories_widget .categories.read').append(
4
+ $('.categories-widget .categories.read').append(
5
5
  '<%= escape_javascript(render :partial => "show", :object => @category, :locals => { :read => true }) %>'
6
6
  );
7
- $('.categories_widget .categories.editable .category.new form input#category_label').val('');
7
+ $('.categories-widget .categories.editable form#new_category input#category_label').val('');
@@ -1,4 +1,4 @@
1
- $('.categories.editable .category#<%= dom_id(@category) %>').replaceWith(
1
+ $('.categories.editable form#<%= dom_id(@category) %>').replaceWith(
2
2
  '<%= escape_javascript(render :partial => "show", :object => @category ) %>'
3
3
  );
4
4
  $('.categories.read .category#<%= dom_id(@category) %>').replaceWith(
@@ -0,0 +1,14 @@
1
+ .file{:class => "#{dom_id(file)} #{file.is_image?? 'image' : nil}"}
2
+ .file-name
3
+
4
+ = link_to cms_admin_site_file_path(@site, file), :method => :delete, :remote => true, :data => {:confirm => t('.are_you_sure')}, :class => 'delete' do
5
+ %i.icon-remove-circle
6
+ = link_to file.file_file_name, file.file.url, :target => '_blank', :class => 'filename'
7
+
8
+ .file-info{:data => {:url => file.file.url}}
9
+ .thumb
10
+ = image_tag file.file.url(:cms_thumb) if file.is_image?
11
+ .details
12
+ %input{:type => 'text', :value => file.file.url}
13
+ .file-type= file.file_content_type
14
+ .file-size= number_to_human_size(file.file_file_size, :locale => :en)
@@ -0,0 +1,13 @@
1
+ = form.text_field :label
2
+ = form.file_field :file, :multiple => @file.new_record?
3
+
4
+ - unless @file.new_record?
5
+ = form.element t('.current_file'), nil do
6
+ = link_to @file.file.url, @file.file.url, :target => '_blank'
7
+
8
+ = form.text_area :description
9
+
10
+ = render :partial => 'cms_admin/categories/form', :object => form
11
+
12
+ .form-actions
13
+ = form.submit t(@file.new_record?? '.create' : '.update'), :class => 'btn btn-primary'
@@ -0,0 +1,12 @@
1
+ - type ||= nil
2
+ - files_scope = (type == 'image') ? @site.files.images : @site.files
3
+
4
+ .box.file-uploader
5
+ = form_for :file, :url => cms_admin_site_files_path(@site), :html => {:multipart => true} do |form|
6
+ %span.btn.btn-file
7
+ = t('.button')
8
+ = form.file_field :file, :multiple => true, :id => nil
9
+
10
+ .uploaded-files
11
+ - files_scope.order(:label).each do |file|
12
+ = render :partial => 'cms_admin/files/file', :object => file
@@ -0,0 +1,9 @@
1
+ - block ||= page_form
2
+
3
+ - if (files = block.files).present?
4
+ .files
5
+ - files.each do |file|
6
+ .file{:class => dom_id(file)}
7
+ = link_to file.file_file_name, file.file.url, :target => '_blank'
8
+ = link_to cms_admin_site_file_path(@site, file), :method => :delete, :remote => true, :confirm => t('.are_you_sure'), :class => 'delete' do
9
+ %i.icon-remove-circle
@@ -1,3 +1,3 @@
1
- $('.uploaded_files').prepend(
1
+ $('.uploaded-files').prepend(
2
2
  '<%= escape_javascript(render :partial => "file", :object => @file ) %>'
3
3
  );
@@ -0,0 +1,5 @@
1
+ .page-header
2
+ %h2= t('.title')
3
+
4
+ = comfy_form_for @file, :as => :file, :url => {:action => :update} do |form|
5
+ = render form
@@ -0,0 +1,26 @@
1
+ .page-header
2
+ = link_to t('.new_link'), new_cms_admin_site_file_path(@site), :class => 'btn pull-right'
3
+ %h2= t('.title')
4
+
5
+ = render :partial => 'cms_admin/categories/index', :object => 'Cms::File'
6
+
7
+ %table.table.table-hover.table-bordered
8
+ %tbody.sortable
9
+ - @files.each do |file|
10
+ %tr{:id => dom_id(file)}
11
+ %td
12
+ .icon
13
+ - if !params[:category].present? && @site.files.count > 1
14
+ .dragger
15
+ %span &#8645;
16
+ %td.main
17
+ .item-title
18
+ = link_to file.label, edit_cms_admin_site_file_path(@site, file)
19
+ = render :partial => '/cms_admin/categories/categories', :object => file
20
+ .item-meta
21
+ = link_to file.file_file_name, file.file.url, :target => '_blank'
22
+
23
+ %td
24
+ .btn-group
25
+ = link_to t('.edit'), edit_cms_admin_site_file_path(@site, file), :class => 'btn btn-small'
26
+ = link_to t('.delete'), cms_admin_site_file_path(@site, file), :method => :delete, :data => {:confirm => t('.are_you_sure')}, :class => 'btn btn-small btn-danger'
@@ -0,0 +1,5 @@
1
+ .page-header
2
+ %h2= t('.title')
3
+
4
+ = comfy_form_for @file, :as => :file, :url => {:action => :create}, :html => {:multipart => true} do |form|
5
+ = render form
@@ -0,0 +1,17 @@
1
+ - content_for :right_column do
2
+ = render :partial => 'cms_admin/files/index'
3
+
4
+ = form.text_field :label, :data => {:slugify => @layout.new_record?}
5
+ = form.text_field :identifier, :data => {:slug => true}
6
+ - if (options = Cms::Layout.options_for_select(@site, @layout)).present?
7
+ = form.select :parent_id, [["---- #{t('.select_parent_layout')} ----", nil]] + options
8
+
9
+ - if (options = Cms::Layout.app_layouts_for_select).present?
10
+ = form.select :app_layout, [["---- #{t('.select_app_layout')} ----", nil]] + options
11
+
12
+ = form.text_area :content, :data => {:cm_mode => 'text/html'}
13
+ = form.text_area :css, :data => {:cm_mode => 'css'}
14
+ = form.text_area :js, :data => {:cm_mode => 'javascript'}
15
+
16
+ .form-actions
17
+ = form.submit t(@layout.new_record?? '.create' : '.update'), :class => 'btn btn-primary'
@@ -0,0 +1,23 @@
1
+ - layout ||= index_branch
2
+ - has_siblings = layout.siblings.select{|l| l.site_id == @site.id}.size > 0
3
+
4
+ %li{:id => dom_id(layout)}
5
+ .item
6
+ .icon
7
+ - if !params[:category].present? && has_siblings
8
+ .dragger
9
+ %span &#8645;
10
+
11
+ .btn-group
12
+ = link_to t('.add_child_layout'), new_cms_admin_site_layout_path(@site, :parent_id => layout.id), :class => 'btn btn-small'
13
+ = link_to t('.edit'), edit_cms_admin_site_layout_path(@site, layout), :class => 'btn btn-small'
14
+ = link_to t('.delete'), cms_admin_site_layout_path(@site, layout), :method => :delete, :data => {:confirm => t('.are_you_sure')}, :class => 'btn btn-small btn-danger'
15
+
16
+ .item-content
17
+ .item-title
18
+ = link_to layout.label, edit_cms_admin_site_layout_path(@site, layout)
19
+ .item-meta
20
+ = layout.identifier
21
+
22
+ - if layout.children.present?
23
+ %ul= render :partial => 'index_branch', :collection => layout.children
@@ -0,0 +1,9 @@
1
+ .page-header
2
+ = link_to pluralize(@layout.revisions.count, t('.revision')), cms_admin_site_layout_revisions_path(@site, @layout), :class => 'btn pull-right'
3
+ %h2= t('.title')
4
+
5
+ - content_for :right_column do
6
+ = render :partial => 'cms_admin/sites/mirrors', :object => @layout
7
+
8
+ = comfy_form_for @layout, :as => :layout, :url => {:action => :update} do |form|
9
+ = render form
@@ -0,0 +1,9 @@
1
+ .page-header
2
+ = link_to t('.new_link'), new_cms_admin_site_layout_path(@site), :class => 'btn pull-right'
3
+ %h2= t('.title')
4
+
5
+ - content_for :right_column do
6
+ = render :partial => 'cms_admin/sites/mirrors'
7
+
8
+ %ul.list.sortable
9
+ = render :partial => 'index_branch', :collection => @layouts