refinerycms-sl-snippets 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/javascripts/page-snippet-picker.js +121 -0
- data/app/assets/javascripts/part-snippets-select.js +40 -0
- data/app/assets/stylesheets/page-snippet-picker.css +82 -0
- data/app/controllers/refinery/admin/snippets_controller.rb +38 -0
- data/app/controllers/refinery/admin/snippets_page_parts_controller.rb +38 -0
- data/app/models/refinery/snippet.rb +62 -0
- data/app/models/refinery/snippet_page_part.rb +20 -0
- data/app/views/admin/pages/tabs/_snippets_field.html.erb +46 -0
- data/app/views/refinery/admin/pages/tabs/_snippets.html.erb +3 -0
- data/app/views/refinery/admin/pages/tabs/_snippets_content.html.erb +24 -0
- data/app/views/refinery/admin/pages/tabs/_snippets_field.html.erb +55 -0
- data/app/views/refinery/admin/pages/tabs/_snippets_list_item.html.erb +20 -0
- data/app/views/refinery/admin/snippets/_actions.html.erb +28 -0
- data/app/views/refinery/admin/snippets/_form.html.erb +35 -0
- data/app/views/refinery/admin/snippets/_locale_picker.html.erb +12 -0
- data/app/views/refinery/admin/snippets/_records.html.erb +18 -0
- data/app/views/refinery/admin/snippets/_snippet.html.erb +22 -0
- data/app/views/refinery/admin/snippets/_snippets.html.erb +2 -0
- data/app/views/refinery/admin/snippets/_sortable_list.html.erb +7 -0
- data/app/views/refinery/admin/snippets/edit.html.erb +1 -0
- data/app/views/refinery/admin/snippets/index.html.erb +10 -0
- data/app/views/refinery/admin/snippets/new.html.erb +1 -0
- data/app/views/refinery/admin/snippets_page_parts/add.html.erb +1 -0
- data/app/views/refinery/admin/snippets_page_parts/remove.html.erb +1 -0
- data/config/locales/cs.yml +35 -0
- data/config/locales/en.yml +44 -0
- data/config/locales/es.yml +44 -0
- data/config/locales/nl.yml +22 -0
- data/config/routes.rb +18 -0
- data/db/migrate/1_create_snippets.rb +22 -0
- data/db/migrate/2_translate_snippets.rb +20 -0
- data/db/migrate/3_create_snippets_page_parts.rb +22 -0
- data/db/migrate/6_remove_position_from_snippets.rb +12 -0
- data/db/seeds.rb +6 -0
- data/features/manage_snippets.feature +63 -0
- data/features/step_definitions/snippet_steps.rb +14 -0
- data/features/support/paths.rb +17 -0
- data/lib/extensions/application_helper_extensions.rb +39 -0
- data/lib/extensions/page_extensions.rb +22 -0
- data/lib/gemspec.rb +31 -0
- data/lib/generators/refinery/snippets_generator.rb +22 -0
- data/lib/refinery/snippets.rb +29 -0
- data/lib/refinery/snippets/engine.rb +49 -0
- data/lib/refinery/snippets/tabs.rb +22 -0
- data/lib/refinery/snippets/version.rb +5 -0
- data/lib/refinerycms-snippets.rb +1 -0
- data/lib/tasks/snippets.rake +13 -0
- data/readme.md +52 -0
- data/refinerycms-snippets.gemspec +106 -0
- data/spec/helpers/application_helper_spec.rb +43 -0
- data/spec/models/page_spec.rb +39 -0
- data/spec/models/snippet_spec.rb +91 -0
- metadata +133 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
<% if @page.new_record? %>
|
2
|
+
<div class="msg alert"><%= t('.please_save_page_before') %></div>
|
3
|
+
<% else %>
|
4
|
+
<div id="part-snippets-menu">
|
5
|
+
<ul>
|
6
|
+
<% @page.parts.each do |part|%>
|
7
|
+
<li>
|
8
|
+
<%= link_to(part.title, refinery.url_for(:anchor => "part-#{part.id}")) %> |
|
9
|
+
</li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
</div>
|
13
|
+
<%= render :partial => '/refinery/admin/pages/tabs/snippets_field', :collection => @page.parts, :as => :part %>
|
14
|
+
<% end %>
|
15
|
+
|
16
|
+
<% content_for :stylesheets do %>
|
17
|
+
<%= stylesheet_link_tag 'page-snippet-picker' %>
|
18
|
+
<% end %>
|
19
|
+
<% content_for :javascripts do %>
|
20
|
+
<%= javascript_include_tag 'page-snippet-picker' %>
|
21
|
+
<% end %>
|
22
|
+
<% content_for :javascripts do %>
|
23
|
+
<%= javascript_include_tag 'part-snippets-select' %>
|
24
|
+
<% end %>
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<div id="<%= "part-#{part.id}" %>" class="part-snippets">
|
2
|
+
<h1><%= part.title %></h1>
|
3
|
+
<div class="active-snippets">
|
4
|
+
<% if part.snippets.before.any? %>
|
5
|
+
<h2><%= t('.before_body') %></h2>
|
6
|
+
<ul>
|
7
|
+
<%= render :partial => '/refinery/admin/pages/tabs/snippets_list_item', :collection => part.snippets.before, :as => :snippet, :locals => {:part => part, :before_body => true} %>
|
8
|
+
</ul>
|
9
|
+
<% end %>
|
10
|
+
<% if part.snippets.after.any? %>
|
11
|
+
<h2><%= t('.after_body') %></h2>
|
12
|
+
<ul>
|
13
|
+
<%= render :partial => '/refinery/admin/pages/tabs/snippets_list_item', :collection => part.snippets.after, :as => :snippet, :locals => {:part => part, :before_body => false} %>
|
14
|
+
</ul>
|
15
|
+
<% end %>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
<div class="inactive-snippets">
|
19
|
+
<%
|
20
|
+
inactive_snippets = []
|
21
|
+
Refinery::Snippet.all.inject(inactive_snippets) do |s, snippet|
|
22
|
+
unless snippet.after?(part) and snippet.before?(part)
|
23
|
+
s << snippet
|
24
|
+
end
|
25
|
+
end
|
26
|
+
%>
|
27
|
+
<% unless inactive_snippets.empty? %>
|
28
|
+
<h2><%= t('.inactive') %></h2>
|
29
|
+
<ul>
|
30
|
+
<% inactive_snippets.each do |snippet| %>
|
31
|
+
<li class='clearfix record <%= cycle('on', 'on-hover') %>' >
|
32
|
+
<span class="title"><%= snippet.title %></span>
|
33
|
+
<div class="actions">
|
34
|
+
<% unless snippet.after?(part) %>
|
35
|
+
<%= link_to t('.add_after_body'), refinery.url_for({:controller => 'snippets_page_parts', :action => 'add', :id => @page.id, :snippet_id => snippet.id, :part_id => part.id}), :class => 'add_icon add-snippet' %>
|
36
|
+
<% else %>
|
37
|
+
<span class="add-snippet"><%= t('.add_after_body') %></span>
|
38
|
+
<% end %>
|
39
|
+
<% unless snippet.before?(part) %>
|
40
|
+
<%= link_to t('.add_before_body'), refinery.url_for({:controller => 'snippets_page_parts', :action => 'add', :id => @page.id, :snippet_id => snippet.id, :part_id => part.id, :before_body => 'true'}), :class => 'add_icon add-snippet' %>
|
41
|
+
<% else %>
|
42
|
+
<span class=" add-snippet"><%= t('.add_before_body') %></span>
|
43
|
+
<% end %>
|
44
|
+
</div>
|
45
|
+
</li>
|
46
|
+
<% end %>
|
47
|
+
</ul>
|
48
|
+
<% end %>
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<li class='clearfix record <%= cycle('on', 'on-hover') %>' >
|
2
|
+
<span class='title'>
|
3
|
+
<%= snippet.title %>
|
4
|
+
<% if defined?(::Refinery::I18n) and ::Refinery::I18n.frontend_locales.many? and
|
5
|
+
(locales = snippet.translations.collect{|t| t.locale}).present? %>
|
6
|
+
<span class='preview'>
|
7
|
+
<% locales.each do |locale| %>
|
8
|
+
<%= refinery_icon_tag "flags/#{locale}.png", :size => '16x11' %>
|
9
|
+
<% end %>
|
10
|
+
</span>
|
11
|
+
<% end %>
|
12
|
+
</span>
|
13
|
+
<span class='actions'>
|
14
|
+
<%= link_to refinery_icon_tag('application_edit.png'), refinery.edit_admin_snippet_path(snippet),
|
15
|
+
:title => t('.edit') %>
|
16
|
+
<%= link_to refinery_icon_tag('delete.png'), refinery.url_for({:controller => 'snippets_page_parts', :action => 'remove', :id => @page.id, :snippet_id => snippet.id, :part_id => part.id, :before_body => before_body}),
|
17
|
+
:title => t('.remove'),
|
18
|
+
:class => 'remove-snippet' %>
|
19
|
+
</span>
|
20
|
+
</li>
|
@@ -0,0 +1,28 @@
|
|
1
|
+
<ul>
|
2
|
+
<% if Refinery::Admin::SnippetsController.searchable? %>
|
3
|
+
<li>
|
4
|
+
<%= render :partial => "/refinery/admin/search",
|
5
|
+
:locals => {
|
6
|
+
:url => refinery.admin_snippets_path
|
7
|
+
} %>
|
8
|
+
</li>
|
9
|
+
<% end %>
|
10
|
+
<li>
|
11
|
+
<%= link_to t('.create_new'), refinery.new_admin_snippet_path,
|
12
|
+
:class => "add_icon" %>
|
13
|
+
</li>
|
14
|
+
<% if !searching? and Refinery::Admin::SnippetsController.sortable? and Refinery::Snippet.count > 1 %>
|
15
|
+
<li>
|
16
|
+
<%= link_to t('.reorder', :what => "Snippets"),
|
17
|
+
refinery.admin_snippets_path,
|
18
|
+
:id => "reorder_action",
|
19
|
+
:class => "reorder_icon" %>
|
20
|
+
|
21
|
+
<%= link_to t('.reorder_done', :what => "Snippets"),
|
22
|
+
refinery.admin_snippets_path,
|
23
|
+
:id => "reorder_action_done",
|
24
|
+
:style => "display: none;",
|
25
|
+
:class => "reorder_icon" %>
|
26
|
+
</li>
|
27
|
+
<% end %>
|
28
|
+
</ul>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<%= form_for [refinery, :admin, @snippet] do |f| -%>
|
2
|
+
<%= render :partial => "/refinery/admin/error_messages", :locals => {
|
3
|
+
:object => @snippet,
|
4
|
+
:include_object_name => true
|
5
|
+
} %>
|
6
|
+
|
7
|
+
<%= render :partial => "locale_picker",
|
8
|
+
:locals => {
|
9
|
+
:current_locale => Thread.current[:globalize_locale]
|
10
|
+
} if defined?(::Refinery::I18n) %>
|
11
|
+
|
12
|
+
<div class='field'>
|
13
|
+
<%= f.label :title -%>
|
14
|
+
<%= f.text_field :title, :class => 'larger widest' -%>
|
15
|
+
</div>
|
16
|
+
<br />
|
17
|
+
<div class='field'>
|
18
|
+
<div class='clearfix ui-tabs ui-widget ui-widget-content ui-corner-all'>
|
19
|
+
<div>
|
20
|
+
<% [:body].each do |part| %>
|
21
|
+
<div>
|
22
|
+
<%= f.text_area part, :rows => 20, :class => 'wymeditor widest' -%>
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<%= render :partial => '/refinery/admin/form_actions',
|
29
|
+
:locals => {
|
30
|
+
:f => f,
|
31
|
+
:continue_editing => true,
|
32
|
+
:delete_title => t('delete', :scope => 'refinery.admin.snippets.snippet'),
|
33
|
+
:delete_confirmation => t('message', :scope => 'refinery.admin.delete', :title => @snippet.title)
|
34
|
+
} %>
|
35
|
+
<% end -%>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<input type='hidden' name='switch_locale' id='switch_locale' value='<%= local_assigns[:current_locale] %>' />
|
2
|
+
<% if defined?(::Refinery::I18n) and ::Refinery::I18n.frontend_locales.many? and
|
3
|
+
(locales = ::Refinery::I18n.frontend_locales).present? %>
|
4
|
+
<ul id='switch_locale_picker' class='clearfix'>
|
5
|
+
<% locales.each do |locale| %>
|
6
|
+
<li<%= " class='selected'" if locale.to_s == local_assigns[:current_locale].to_s %>>
|
7
|
+
<%= link_to refinery_icon_tag("flags/#{locale}.png", :size => '48x33'),
|
8
|
+
refinery.url_for(:switch_locale => locale) %>
|
9
|
+
</li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
<% end %>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% if searching? %>
|
2
|
+
<h2><%= t('results_for', :scope => 'refinery.admin.search', :query => params[:search]) %></h2>
|
3
|
+
<% end %>
|
4
|
+
<% if @snippets.any? %>
|
5
|
+
<div class='pagination_container'>
|
6
|
+
<%= render :partial => 'snippets' %>
|
7
|
+
</div>
|
8
|
+
<% else %>
|
9
|
+
<p>
|
10
|
+
<% unless searching? %>
|
11
|
+
<strong>
|
12
|
+
<%= t('.no_items_yet') %>
|
13
|
+
</strong>
|
14
|
+
<% else %>
|
15
|
+
<%= t('no_results', :scope => 'refinery.admin.search') %>
|
16
|
+
<% end %>
|
17
|
+
</p>
|
18
|
+
<% end %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(snippet) -%>">
|
2
|
+
<span class='title'>
|
3
|
+
<%= snippet.title %>
|
4
|
+
<% if defined?(::Refinery::I18n) and ::Refinery::I18n.frontend_locales.many? and
|
5
|
+
(locales = snippet.translations.collect{|t| t.locale}).present? %>
|
6
|
+
<span class='preview'>
|
7
|
+
<% locales.each do |locale| %>
|
8
|
+
<%= refinery_icon_tag "flags/#{locale}.png", :size => '16x11' %>
|
9
|
+
<% end %>
|
10
|
+
</span>
|
11
|
+
<% end %>
|
12
|
+
</span>
|
13
|
+
<span class='actions'>
|
14
|
+
<%= link_to refinery_icon_tag("application_edit.png"), refinery.edit_admin_snippet_path(snippet),
|
15
|
+
:title => t('.edit') %>
|
16
|
+
<%= link_to refinery_icon_tag("delete.png"), refinery.admin_snippet_path(snippet),
|
17
|
+
:class => "cancel confirm-delete",
|
18
|
+
:title => t('.delete'),
|
19
|
+
:confirm => t('message', :scope => 'refinery.admin.delete', :title => snippet.title),
|
20
|
+
:method => :delete %>
|
21
|
+
</span>
|
22
|
+
</li>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<ul id='sortable_list'>
|
2
|
+
<%= render :partial => 'snippet', :collection => @snippets %>
|
3
|
+
</ul>
|
4
|
+
<%= render :partial => "/refinery/admin/sortable_list",
|
5
|
+
:locals => {
|
6
|
+
:continue_reordering => (local_assigns.keys.include?(:continue_reordering)) ? continue_reordering : true
|
7
|
+
} %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => "form" %>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<section id='records'>
|
2
|
+
<%= render :partial => 'records' %>
|
3
|
+
</section>
|
4
|
+
<aside id='actions'>
|
5
|
+
<%= render :partial => 'actions' %>
|
6
|
+
</aside>
|
7
|
+
<%= render :partial => '/refinery/admin/make_sortable',
|
8
|
+
:locals => {
|
9
|
+
:tree => false
|
10
|
+
} if !searching? and Refinery::Admin::SnippetsController.sortable? and Refinery::Snippet.count > 1 %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => "form" %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => '/refinery/admin/pages/tabs/snippets_content' %>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= render :partial => '/refinery/admin/pages/tabs/snippets_content' %>
|
@@ -0,0 +1,35 @@
|
|
1
|
+
cs:
|
2
|
+
plugins:
|
3
|
+
snippets:
|
4
|
+
title: Výstřižky
|
5
|
+
admin:
|
6
|
+
snippets:
|
7
|
+
actions:
|
8
|
+
create_new: Přidat nový výstřižek
|
9
|
+
reorder: Přeuspořádat výstřižky
|
10
|
+
reorder_done: Dokončit přeuspořádávání výstřižků
|
11
|
+
records:
|
12
|
+
title: Výstřižky
|
13
|
+
sorry_no_results: Zadaným kritériím neodpovídají žádné výstřižky
|
14
|
+
no_items_yet: Žádné výstřižky zatím nebyly nalezeny. Klikněte na "Přidat nový výstřižek" pro přidání prvního výstřižku.
|
15
|
+
snippet:
|
16
|
+
view_live_html: Zobrazí výstřižek živě <br/><em>(zobrazí se v novém okně)</em>
|
17
|
+
edit: Upravit výstřižek
|
18
|
+
delete: Odstranit výstřižek
|
19
|
+
pages:
|
20
|
+
tabs:
|
21
|
+
snippets_content:
|
22
|
+
please_save_page_before: Před přidáním výstřižků prosím uložte tuto stránku.
|
23
|
+
snippets_field:
|
24
|
+
active: Aktivní
|
25
|
+
inactive: Neaktivní
|
26
|
+
add_after_body: Přidat za obsah
|
27
|
+
add_before_body: Přidat před obsah
|
28
|
+
after_body: Před obsah
|
29
|
+
before_body: Za obsah
|
30
|
+
snippets_list_item:
|
31
|
+
remove: Odstranit
|
32
|
+
edit: Upravit
|
33
|
+
snippets:
|
34
|
+
show:
|
35
|
+
other: Další výstřižky
|
@@ -0,0 +1,44 @@
|
|
1
|
+
en:
|
2
|
+
refinery:
|
3
|
+
plugins:
|
4
|
+
refinery_snippets:
|
5
|
+
title: Snippets
|
6
|
+
admin:
|
7
|
+
snippets:
|
8
|
+
actions:
|
9
|
+
create_new: Add New Snippet
|
10
|
+
reorder: Reorder Snippets
|
11
|
+
reorder_done: Done Reordering Snippets
|
12
|
+
records:
|
13
|
+
title: Snippets
|
14
|
+
sorry_no_results: Sorry! There are no results found.
|
15
|
+
no_items_yet: There are no Snippets yet. Click "Add New Snippet" to add your first snippet.
|
16
|
+
snippet:
|
17
|
+
view_live_html: View this snippet live <br/><em>(opens in a new window)</em>
|
18
|
+
edit: Edit this snippet
|
19
|
+
delete: Remove this snippet forever
|
20
|
+
pages:
|
21
|
+
tabs:
|
22
|
+
snippets_content:
|
23
|
+
please_save_page_before: Please save this page before you can add any snippets.
|
24
|
+
snippets_field:
|
25
|
+
active: Active
|
26
|
+
inactive: Inactive
|
27
|
+
add_after_body: Add after body
|
28
|
+
add_before_body: Add before body
|
29
|
+
after_body: After body
|
30
|
+
before_body: Before body
|
31
|
+
snippets_list_item:
|
32
|
+
remove: Remove
|
33
|
+
edit: Edit
|
34
|
+
snippets:
|
35
|
+
show:
|
36
|
+
other: Other Snippets
|
37
|
+
activerecord:
|
38
|
+
models:
|
39
|
+
refinery/snippet: snippet
|
40
|
+
refinery/snippet_page_part: Snippet association
|
41
|
+
attributes:
|
42
|
+
refinery/snippet:
|
43
|
+
title: Title
|
44
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
es:
|
2
|
+
refinery:
|
3
|
+
plugins:
|
4
|
+
refinery_snippets:
|
5
|
+
title: Snippets
|
6
|
+
admin:
|
7
|
+
snippets:
|
8
|
+
actions:
|
9
|
+
create_new: Añadir Snippet
|
10
|
+
reorder: Reordenar Snippets
|
11
|
+
reorder_done: Snippets reordenados
|
12
|
+
records:
|
13
|
+
title: Snippets
|
14
|
+
sorry_no_results: No hay resultados.
|
15
|
+
no_items_yet: No hay Snippets todavía. Usa "Añadir Snippet" para crear uno.
|
16
|
+
snippet:
|
17
|
+
view_live_html: Ver el snippet <br/><em>(abre una nueva ventana)</em>
|
18
|
+
edit: Editar este snippet
|
19
|
+
delete: Borrar este snippet
|
20
|
+
pages:
|
21
|
+
tabs:
|
22
|
+
snippets_content:
|
23
|
+
please_save_page_before: Por favor guarda la página antes de añadir un snippet.
|
24
|
+
snippets_field:
|
25
|
+
active: Activo
|
26
|
+
inactive: Inactivo
|
27
|
+
add_after_body: Añadir después
|
28
|
+
add_before_body: Añadir antes
|
29
|
+
after_body: Después
|
30
|
+
before_body: Antes
|
31
|
+
snippets_list_item:
|
32
|
+
remove: Eliminar
|
33
|
+
edit: Editar
|
34
|
+
snippets:
|
35
|
+
show:
|
36
|
+
other: Otros Snippets
|
37
|
+
activerecord:
|
38
|
+
models:
|
39
|
+
refinery/snippet: snippet
|
40
|
+
refinery/snippet_page_part: Asociación de snippet
|
41
|
+
attributes:
|
42
|
+
refinery/snippet:
|
43
|
+
title: Título
|
44
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
nl:
|
2
|
+
refinery:
|
3
|
+
plugins:
|
4
|
+
refinery_snippets:
|
5
|
+
title: Snippets
|
6
|
+
admin:
|
7
|
+
snippets:
|
8
|
+
actions:
|
9
|
+
create_new: Maak een nieuwe Snippet
|
10
|
+
reorder: Wijzig de volgorde van de Snippets
|
11
|
+
reorder_done: Klaar met het wijzingen van de volgorde van de Snippets
|
12
|
+
records:
|
13
|
+
title: Snippets
|
14
|
+
sorry_no_results: Helaas! Er zijn geen resultaten gevonden.
|
15
|
+
no_items_yet: Er zijn nog geen Snippets. Druk op 'Maak een nieuwe Snippet' om de eerste aan te maken.
|
16
|
+
snippet:
|
17
|
+
view_live_html: Bekijk deze snippet op de website <br/><em>(opent een nieuw venster)</em>
|
18
|
+
edit: Bewerk deze snippet
|
19
|
+
delete: Verwijder deze snippet voor eeuwig
|
20
|
+
snippets:
|
21
|
+
show:
|
22
|
+
other: Andere Snippets
|
data/config/routes.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
Refinery::Core::Engine.routes.append do
|
2
|
+
|
3
|
+
# Admin routes
|
4
|
+
namespace :admin, :path => 'refinery', :as => 'admin' do
|
5
|
+
resources :snippets, except: :show do
|
6
|
+
collection do
|
7
|
+
post :update_positions
|
8
|
+
end
|
9
|
+
end
|
10
|
+
resources :snippets_page_parts do
|
11
|
+
member do
|
12
|
+
get 'add'
|
13
|
+
get 'remove'
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class CreateSnippets < ActiveRecord::Migration
|
2
|
+
|
3
|
+
def up
|
4
|
+
unless ::Refinery::Snippet.table_exists?
|
5
|
+
create_table ::Refinery::Snippet.table_name do |t|
|
6
|
+
t.string :title, :limit => 36, :null => false
|
7
|
+
t.text :body
|
8
|
+
t.integer :position, :null => false, :default => 0
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
Refinery::Snippets::Engine.load_seed
|
14
|
+
end
|
15
|
+
|
16
|
+
def down
|
17
|
+
::Refinery::UserPlugin.destroy_all({:name => "snippets"})
|
18
|
+
|
19
|
+
drop_table ::Refinery::Snippet.table_name
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|