solidus_static_content 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +5 -5
  2. data/.circleci/config.yml +35 -0
  3. data/.gem_release.yml +5 -0
  4. data/.gitignore +17 -6
  5. data/.rspec +2 -3
  6. data/.rubocop.yml +2 -0
  7. data/CHANGELOG.md +80 -0
  8. data/Gemfile +26 -6
  9. data/{LICENSE.md → LICENSE} +0 -0
  10. data/README.md +81 -68
  11. data/Rakefile +4 -13
  12. data/app/assets/stylesheets/spree/frontend/solidus_static_content.css +7 -0
  13. data/app/assets/stylesheets/spree/frontend/spree_static_content.css +2 -7
  14. data/app/models/solidus_static_content/permission_sets/page_display.rb +11 -0
  15. data/app/models/solidus_static_content/permission_sets/page_management.rb +11 -0
  16. data/app/models/spree/page.rb +16 -21
  17. data/bin/console +17 -0
  18. data/bin/r +8 -0
  19. data/bin/rails +6 -6
  20. data/bin/rails-engine +13 -0
  21. data/bin/rails-sandbox +16 -0
  22. data/bin/rake +7 -0
  23. data/bin/sandbox +84 -0
  24. data/bin/sandbox_rails +8 -0
  25. data/bin/setup +8 -0
  26. data/config/locales/de.yml +7 -5
  27. data/config/locales/en.yml +9 -7
  28. data/config/locales/es-MX.yml +38 -0
  29. data/config/locales/es.yml +6 -5
  30. data/config/locales/et.yml +6 -5
  31. data/config/locales/fr.yml +7 -5
  32. data/config/locales/it.yml +6 -5
  33. data/config/locales/nl.yml +7 -5
  34. data/config/locales/pl.yml +6 -5
  35. data/config/locales/pt-BR.yml +6 -5
  36. data/config/locales/pt.yml +7 -5
  37. data/config/locales/ro.yml +11 -9
  38. data/config/locales/ru.yml +7 -5
  39. data/config/locales/sv.yml +7 -5
  40. data/config/routes.rb +9 -2
  41. data/db/migrate/20081216193152_create_pages.rb +1 -1
  42. data/db/migrate/20090625125735_extend_pages.rb +1 -1
  43. data/db/migrate/20090814113100_add_visible_to_pages.rb +1 -1
  44. data/db/migrate/20090814142845_add_default_true_to_visible_for_page.rb +1 -1
  45. data/db/migrate/20090829000527_add_index_for_page.rb +1 -1
  46. data/db/migrate/20091219021134_add_meta_fields_to_pages.rb +1 -1
  47. data/db/migrate/20100204105222_add_layout_to_pages.rb +1 -1
  48. data/db/migrate/20100323085528_add_show_in_sidebar_option_to_pages.rb +1 -1
  49. data/db/migrate/20110717103112_add_meta_title_to_page.rb +1 -1
  50. data/db/migrate/20120723144115_add_render_as_partial_for_layout_for_spree_pages.rb +1 -1
  51. data/db/migrate/20140926121757_add_pages_stores.rb +1 -1
  52. data/db/migrate/20180305193240_update_spree_page_position.rb +13 -0
  53. data/lib/controllers/backend/spree/admin/pages_controller.rb +16 -0
  54. data/{app/controllers → lib/controllers/frontend}/spree/static_content_controller.rb +7 -3
  55. data/lib/generators/solidus_static_content/install/install_generator.rb +7 -5
  56. data/lib/solidus_static_content.rb +6 -18
  57. data/lib/solidus_static_content/engine.rb +35 -0
  58. data/lib/solidus_static_content/factories.rb +18 -0
  59. data/lib/solidus_static_content/route_matcher.rb +11 -0
  60. data/lib/solidus_static_content/version.rb +5 -0
  61. data/lib/views/backend/spree/admin/pages/_form.html.erb +119 -0
  62. data/lib/views/backend/spree/admin/pages/edit.html.erb +32 -0
  63. data/lib/views/backend/spree/admin/pages/index.html.erb +68 -0
  64. data/lib/views/backend/spree/admin/pages/new.html.erb +31 -0
  65. data/lib/views/backend/spree/admin/shared/_pages_tabs.html.erb +9 -0
  66. data/{app/views → lib/views/frontend}/spree/static_content/_static_content_footer.html.erb +0 -0
  67. data/{app/views → lib/views/frontend}/spree/static_content/_static_content_header.html.erb +0 -0
  68. data/{app/views → lib/views/frontend}/spree/static_content/_static_content_list.html.erb +0 -0
  69. data/{app/views → lib/views/frontend}/spree/static_content/_static_content_sidebar.html.erb +1 -1
  70. data/lib/views/frontend/spree/static_content/show.html.erb +18 -0
  71. data/solidus_static_content.gemspec +36 -31
  72. data/spec/controllers/spree/admin/pages_controller_spec.rb +11 -0
  73. data/spec/controllers/{static_content_controller_spec.rb → spree/static_content_controller_spec.rb} +9 -12
  74. data/spec/features/{admin → spree/admin}/pages_spec.rb +8 -5
  75. data/spec/features/{static_content_spec.rb → spree/static_content_spec.rb} +6 -4
  76. data/spec/helpers/{page_helper_spec.rb → spree/page_helper_spec.rb} +0 -0
  77. data/spec/lib/solidus_static_content/engine_spec.rb +14 -0
  78. data/spec/lib/{spree_static.content_spec.rb → solidus_static_content/route_matcher_spec.rb} +4 -13
  79. data/spec/models/{page_spec.rb → spree/page_spec.rb} +22 -7
  80. data/spec/spec_helper.rb +17 -40
  81. metadata +85 -177
  82. data/.travis.yml +0 -21
  83. data/app/assets/javascripts/spree/backend/spree_static_content.js +0 -1
  84. data/app/assets/javascripts/spree/frontend/spree_static_content.js +0 -1
  85. data/app/assets/stylesheets/spree/backend/spree_static_content.css +0 -3
  86. data/app/controllers/spree/admin/pages_controller.rb +0 -3
  87. data/app/overrides/pages_in_menu.rb +0 -5
  88. data/app/views/spree/admin/pages/_form.html.erb +0 -98
  89. data/app/views/spree/admin/pages/edit.html.erb +0 -18
  90. data/app/views/spree/admin/pages/index.html.erb +0 -51
  91. data/app/views/spree/admin/pages/new.html.erb +0 -18
  92. data/app/views/spree/static_content/show.html.erb +0 -26
  93. data/lib/spree_static_content/engine.rb +0 -17
  94. data/spec/factories/page_factory.rb +0 -18
@@ -1,3 +0,0 @@
1
- /*
2
- *= require spree/backend
3
- */
@@ -1,3 +0,0 @@
1
- class Spree::Admin::PagesController < Spree::Admin::ResourceController
2
-
3
- end
@@ -1,5 +0,0 @@
1
- Deface::Override.new(:virtual_path => "spree/admin/shared/_menu",
2
- :name => "static_content_pages_admin_tab",
3
- :insert_bottom => "[data-hook='admin_tabs']",
4
- :text => "<%= tab(:pages, label: 'Pages', icon: 'file-text') %>",
5
- :disabled => false)
@@ -1,98 +0,0 @@
1
- <div data-hook="admin_page_form_fields">
2
- <div class="left eight columns alpha" data-hook="admin_page_form_left">
3
-
4
- <%= f.field_container :title do %>
5
- <%= f.label :title %> <span class="required">*</span><br />
6
- <%= f.text_field :title, :class => 'fullwidth title' %>
7
- <%= f.error_message_on :title %>
8
- <% end %>
9
-
10
- <%= f.field_container :slug do %>
11
- <%= f.label :slug %> <span class="required">*</span><br />
12
- <%= f.text_field :slug, :class => 'fullwidth title' %>
13
- <%= f.error_message_on :slug %>
14
- <% end %>
15
-
16
- <%= f.field_container :body do %>
17
- <%= f.label :body %> <span class="required">*</span><br />
18
- <%= f.text_area :body, {rows: 12, :class => 'fullwidth'} %>
19
- <%= f.error_message_on :body %>
20
- <% end %>
21
-
22
- </div>
23
- <div class="right four columns omega" data-hook="admin_page_form_right">
24
-
25
- <%= f.field_container :layout do %>
26
- <%= f.label :layout %><br />
27
- <%= f.text_field :layout, :class => 'fullwidth title' %>
28
- <% end %>
29
-
30
- <%= f.field_container :foreign_link do %>
31
- <%= f.label :foreign_link %><br />
32
- <%= f.text_field :foreign_link, :class => 'fullwidth title' %>
33
- <% end %>
34
-
35
- <%= f.field_container :position do %>
36
- <%= f.label :position %><br />
37
- <%= f.number_field :position, :min => 0, :class => 'fullwidth title' %>
38
- <% end %>
39
-
40
- <%= f.field_container :show_in_sidebar do %>
41
- <%= f.check_box :show_in_sidebar %>
42
- <%= f.label :show_in_sidebar %>
43
- <% end %>
44
-
45
- <%= f.field_container :show_in_heade do %>
46
- <%= f.check_box :show_in_header %>
47
- <%= f.label :show_in_header %>
48
- <% end %>
49
-
50
- <%= f.field_container :show_in_footer do %>
51
- <%= f.check_box :show_in_footer %>
52
- <%= f.label :show_in_footer %>
53
- <% end %>
54
-
55
- <%= f.field_container :visible do %>
56
- <%= f.check_box :visible %>
57
- <%= f.label :visible %>
58
- <% end %>
59
-
60
- <%= f.field_container :render_layout_as_partial do %>
61
- <%= f.check_box :render_layout_as_partial %>
62
- <%= f.label :render_layout_as_partial %>
63
- <% end %>
64
-
65
- <%= f.field_container :stores do %>
66
- <%= f.label :stores, Spree.t(:stores)%><br />
67
- <% Spree::Store.all.each do |store| %>
68
- <%= check_box_tag "page[store_ids][]", store.id, @page.stores.include?(store) %> <%= store.name %>
69
- <% end %>
70
- <% end %>
71
-
72
- </div>
73
-
74
- <div data-hook="admin_page_form_meta" class="alpha omega twelve columns">
75
-
76
- <%= f.field_container :meta_title do %>
77
- <%= f.label :meta_title %><br />
78
- <%= f.text_field :meta_title, :class => 'fullwidth title' %>
79
- <%= f.error_message_on :meta_title %>
80
- <% end %>
81
-
82
- <%= f.field_container :meta_keywords do %>
83
- <%= f.label :meta_keywords %><br />
84
- <%= f.text_field :meta_keywords, :class => 'fullwidth title' %>
85
- <%= f.error_message_on :meta_keywords %>
86
- <% end %>
87
-
88
- <%= f.field_container :meta_description do %>
89
- <%= f.label :meta_description %><br />
90
- <%= f.text_field :meta_description, :class => 'fullwidth title' %>
91
- <%= f.error_message_on :meta_description %>
92
- <% end %>
93
-
94
- </div>
95
- <div class="clear"></div>
96
- <div data-hook="admin_page_form_additional_fields"></div>
97
- <div class="clear"></div>
98
- </div>
@@ -1,18 +0,0 @@
1
- <%= render 'spree/admin/shared/configuration_menu' %>
2
-
3
- <% content_for :page_title do %>
4
- <%= Spree.t("static_content.static_pages") %> <i class="icon-arrow-right"></i> <%= Spree.t("static_content.editing_page") %> "<%= @page.title%>"
5
- <% end %>
6
-
7
- <% content_for :page_actions do %>
8
- <li><%= button_link_to Spree.t(:back_to_static_pages_list), spree.admin_pages_url, :icon => 'icon-arrow-left' %></li>
9
- <% end %>
10
-
11
- <%= render "spree/shared/error_messages", :target => @page %>
12
-
13
- <%= form_for [:admin, @page] do |f| %>
14
- <fieldset class="no-border-top">
15
- <%= render :partial => 'form', :locals => { :f => f } %>
16
- <%= render :partial => 'spree/admin/shared/edit_resource_links' %>
17
- </fieldset>
18
- <% end %>
@@ -1,51 +0,0 @@
1
- <% content_for :page_actions do %>
2
- <li><%= button_link_to Spree.t("static_content.new_page"), new_object_url, :icon => 'icon-plus', :id => 'admin_new_page' %></li>
3
- <% end %>
4
-
5
- <% content_for :page_title do %>
6
- <%= Spree.t("static_content.static_pages") %>
7
- <% end %>
8
-
9
- <% if @pages.any? %>
10
- <table class="index responsive" id="listing_pages" data-hook>
11
- <colgroup>
12
- <col style="width: 40%">
13
- <col style="width: 35%">
14
- <col style="width: 10%">
15
- <col style="width: 15%">
16
- </colgroup>
17
- <thead>
18
- <tr data-hook="admin_pages_index_headers">
19
- <th><%= Spree::Page.human_attribute_name(:title) %></th>
20
- <th><%= Spree.t("static_content.link") %></th>
21
- <th><%= Spree::Page.human_attribute_name(:visible) %></th>
22
- <th data-hook="admin_pages_index_header_actions" class="actions"></th>
23
- </tr>
24
- </thead>
25
-
26
- <tbody>
27
- <% @pages.each do |page| %>
28
- <tr data-hook="admin_pages_index_rows" class="<%= cycle('odd', 'even') %>" id="<%= dom_id page %>">
29
- <td>
30
- <%= page.title %>
31
- </td>
32
- <td>
33
- <%= link_to page.link, page.link, :target => '_blank' %>
34
- </td>
35
- <td class="align-center">
36
- <%= content_tag(:i, '', :class => 'icon-ok green') if page.visible %>
37
- </td>
38
- <td class="actions" data-hook="admin_pages_index_row_actions">
39
- <%= link_to_edit page, :no_text => true %>
40
- <%= link_to_delete page, :no_text => true %>
41
- </td>
42
- </tr>
43
- <% end %>
44
- </tbody>
45
- </table>
46
- <% else %>
47
- <div class="alpha twelve columns no-objects-found">
48
- <%= Spree.t(:no_resource_found, resource: I18n.t(:other, scope: 'activerecord.models.spree/page')) %>,
49
- <%= link_to Spree.t(:add_one), spree.new_admin_page_path %>!
50
- </div>
51
- <% end %>
@@ -1,18 +0,0 @@
1
- <%= render 'spree/admin/shared/configuration_menu' %>
2
-
3
- <% content_for :page_title do %>
4
- <%= Spree.t("static_content.static_pages") %> <i class="icon-arrow-right"></i> <%= Spree.t("static_content.new_page") %>
5
- <% end %>
6
-
7
- <% content_for :page_actions do %>
8
- <li><%= button_link_to Spree.t(:back_to_static_pages_list), spree.admin_pages_url, :icon => 'icon-arrow-left' %></li>
9
- <% end %>
10
-
11
- <%= render "spree/shared/error_messages", :target => @page %>
12
-
13
- <%= form_for [:admin, @page] do |f| %>
14
- <fieldset class="no-border-top">
15
- <%= render :partial => 'form', :locals => { :f => f } %>
16
- <%= render :partial => 'spree/admin/shared/new_resource_links' %>
17
- </fieldset>
18
- <% end %>
@@ -1,26 +0,0 @@
1
- <% if @page.layout.present? and @page.render_layout_as_partial? %>
2
- <%= render :partial => @page.layout %>
3
- <% else %>
4
- <% content_for :head do -%>
5
- <%- if @page.meta_title.present? -%>
6
- <meta name="title" content="<%=@page.meta_title%>">
7
- <%- else -%>
8
- <meta name="title" content="<%=@page.title%>">
9
- <%- end -%>
10
- <meta name="keywords" content="<%=@page.meta_keywords%>">
11
- <meta name="description" content="<%=@page.meta_description%>">
12
- <% end -%>
13
-
14
- <% content_for :sidebar do %>
15
- <% if defined? @products && defined? @taxon %>
16
- <%= render :partial => "spree/shared/filters" %>
17
- <% elsif defined? @taxonomies %>
18
- <%= render :partial => "spree/shared/taxonomies" %>
19
- <% end %>
20
- <% end %>
21
-
22
- <h1><%= @page.title %></h1>
23
- <div id="page_content">
24
- <%= raw @page.body %>
25
- </div>
26
- <% end %>
@@ -1,17 +0,0 @@
1
- module SpreeStaticContent
2
- class Engine < Rails::Engine
3
- require 'spree/core'
4
- isolate_namespace Spree
5
- engine_name 'spree_static_content'
6
-
7
- config.autoload_paths += %W(#{config.root}/lib)
8
-
9
- def self.activate
10
- Dir.glob(File.join(File.dirname(__FILE__), "../../app/overrides/*.rb")) do |c|
11
- Rails.configuration.cache_classes ? require(c) : load(c)
12
- end
13
- end
14
-
15
- config.to_prepare &method(:activate).to_proc
16
- end
17
- end
@@ -1,18 +0,0 @@
1
- FactoryGirl.define do
2
- factory :page, class: Spree::Page do
3
- title { generate(:random_string) }
4
- body { generate(:random_description) }
5
-
6
- sequence(:slug) { |n| "/page#{n}" }
7
-
8
- trait :with_foreign_link do
9
- foreign_link do
10
- if defined?(FFaker)
11
- FFaker::Internet.http_url
12
- else
13
- Faker::Internet.http_url
14
- end
15
- end
16
- end
17
- end
18
- end