refinerycms-llama_widgets 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. data/app/assets/images/refinery/icons/lock.png +0 -0
  2. data/app/assets/images/refinery/itoggle.png +0 -0
  3. data/app/assets/javascripts/refinery/engage.itoggle-min.js +17 -0
  4. data/app/assets/javascripts/refinery/widgets.js.coffee.erb +91 -0
  5. data/app/assets/stylesheets/refinery/engage.itoggle.css +94 -0
  6. data/app/assets/stylesheets/refinery/widgets.scss +89 -0
  7. data/app/controllers/refinery/widgets/admin/templates_controller.rb +28 -0
  8. data/app/controllers/refinery/widgets/admin/widget_types_controller.rb +59 -0
  9. data/app/controllers/refinery/widgets/admin/widgets_controller.rb +30 -0
  10. data/app/decorators/controllers/refinery/admin/pages_controller.rb +23 -0
  11. data/app/decorators/controllers/refinery/pages_controller.rb +13 -0
  12. data/app/decorators/models/refinery/page.rb +28 -0
  13. data/app/decorators/models/refinery/page_part.rb +16 -0
  14. data/app/helpers/refinery/widgets/widgets_helper.rb +38 -0
  15. data/app/models/refinery/widgets/content_block_widget.rb +13 -0
  16. data/app/models/refinery/widgets/template.rb +64 -0
  17. data/app/models/refinery/widgets/template_part.rb +37 -0
  18. data/app/models/refinery/widgets/widget.rb +108 -0
  19. data/app/overrides/refinery/admin/pages/_actions.rb +5 -0
  20. data/app/overrides/refinery/admin/pages/_form.rb +4 -0
  21. data/app/overrides/refinery/admin/pages/_form_page_parts.rb +5 -0
  22. data/app/overrides/refinery/admin/pages/_page.rb +5 -0
  23. data/app/views/refinery/admin/_image_picker.html.erb +66 -0
  24. data/app/views/refinery/admin/_nested_image_picker.html.erb +58 -0
  25. data/app/views/refinery/admin/pages/_form_page_parts.html.erb +37 -0
  26. data/app/views/refinery/admin/pages/_page_part.slim +25 -0
  27. data/app/views/refinery/admin/pages/_widget_fields.slim +46 -0
  28. data/app/views/refinery/widgets/_content_block_widget.slim +2 -0
  29. data/app/views/refinery/widgets/_widget.slim +1 -0
  30. data/app/views/refinery/widgets/admin/templates/_actions.html.erb +25 -0
  31. data/app/views/refinery/widgets/admin/templates/_form.html.erb +17 -0
  32. data/app/views/refinery/widgets/admin/templates/_page_part.slim +22 -0
  33. data/app/views/refinery/widgets/admin/templates/_page_parts.html.erb +37 -0
  34. data/app/views/refinery/widgets/admin/templates/_records.html.erb +16 -0
  35. data/app/views/refinery/widgets/admin/templates/_sortable_list.html.erb +5 -0
  36. data/app/views/refinery/widgets/admin/templates/_template.html.erb +18 -0
  37. data/app/views/refinery/widgets/admin/templates/_templates.html.erb +2 -0
  38. data/app/views/refinery/widgets/admin/templates/_widget_fields.slim +26 -0
  39. data/app/views/refinery/widgets/admin/templates/edit.html.erb +1 -0
  40. data/app/views/refinery/widgets/admin/templates/index.html.erb +7 -0
  41. data/app/views/refinery/widgets/admin/templates/list.slim +15 -0
  42. data/app/views/refinery/widgets/admin/templates/new.html.erb +1 -0
  43. data/app/views/refinery/widgets/admin/widget_types/new_for_page.slim +4 -0
  44. data/app/views/refinery/widgets/admin/widget_types/new_for_template.slim +4 -0
  45. data/app/views/refinery/widgets/admin/widget_types/show_for_page.slim +4 -0
  46. data/app/views/refinery/widgets/admin/widget_types/show_for_template.slim +4 -0
  47. data/app/views/refinery/widgets/admin/widgets/_content_block_widget.slim +3 -0
  48. data/app/views/refinery/widgets/admin/widgets/_content_block_widget_preview.slim +3 -0
  49. data/app/views/refinery/widgets/admin/widgets/_widget.slim +2 -0
  50. data/app/views/refinery/widgets/admin/widgets/_widget_preview.slim +2 -0
  51. data/app/views/refinery/widgets/admin/widgets/new.slim +31 -0
  52. data/config/locales/cs.yml +27 -0
  53. data/config/locales/en.yml +34 -0
  54. data/config/locales/es.yml +28 -0
  55. data/config/locales/fr.yml +27 -0
  56. data/config/locales/it.yml +27 -0
  57. data/config/locales/nb.yml +27 -0
  58. data/config/locales/nl.yml +27 -0
  59. data/config/locales/sk.yml +27 -0
  60. data/config/locales/tr.yml +27 -0
  61. data/config/locales/zh-CN.yml +29 -0
  62. data/config/routes.rb +29 -0
  63. data/db/migrate/1_create_widgets_templates.rb +22 -0
  64. data/db/migrate/2_create_widgets_template_parts.rb +20 -0
  65. data/db/migrate/3_create_widgets_widgets.rb +24 -0
  66. data/db/migrate/4_create_widgets_content_block_widgets.rb +16 -0
  67. data/db/migrate/5_add_template_id_to_refinery_pages.rb +13 -0
  68. data/db/migrate/6_add_locked_to_refinery_page_parts.rb +13 -0
  69. data/db/seeds.rb +24 -0
  70. data/lib/generators/refinery/templates/config/initializers/refinery/widgets.rb.erb +7 -0
  71. data/lib/generators/refinery/widgets_generator.rb +27 -0
  72. data/lib/refinery/widgets.rb +24 -0
  73. data/lib/refinery/widgets/acts_as_widget.rb +31 -0
  74. data/lib/refinery/widgets/configuration.rb +15 -0
  75. data/lib/refinery/widgets/engine.rb +39 -0
  76. data/lib/refinery/widgets/widget_type.rb +31 -0
  77. data/lib/refinerycms-widgets.rb +4 -0
  78. data/lib/tasks/refinery/widgets.rake +26 -0
  79. metadata +202 -0
@@ -0,0 +1,37 @@
1
+ <div class='field'>
2
+ <div id='page-tabs' class='clearfix ui-tabs ui-widget ui-widget-content ui-corner-all'>
3
+ <ul id='page_parts'>
4
+ <% f.object.parts.each_with_index do |part, index| %>
5
+ <li class="ui-state-default <%= 'ui-state-active' if index == 0 %>">
6
+ <%= link_to "#{part.title.to_s.humanize}", "\##{part.title}" %>
7
+ </li>
8
+ <% end %>
9
+ <% pages_tabs = ::Refinery::Pages.tabs
10
+ tabs_to_show = (refinery_pages_tabs ||= []).map!(&:to_s)
11
+ pages_tabs.reject!{|t| refinery_pages_tabs.exclude?(t.name.to_s) } unless tabs_to_show.include?('all')
12
+ pages_tabs.each_with_index do |tab, tab_index| %>
13
+ <li class='ui-state-default' id="custom_<%= tab.name %>_tab">
14
+ <%= link_to tab.name.titleize, "#custom_tab_#{tab_index}" %>
15
+ </li>
16
+ <% end %>
17
+ </ul>
18
+
19
+ <div id='page_part_editors'>
20
+ <% f.object.parts.each_with_index do |part,index| %>
21
+ <div class='page_part' id="<%= part.title %>">
22
+ <%= render 'page_part', :f => f, :field => part.title, :part => part %>
23
+ </div>
24
+ <% end %>
25
+ </div>
26
+ </div>
27
+ </div>
28
+
29
+ <% content_for :javascripts do %>
30
+ <script>
31
+ $(document).ready(function(){
32
+ if (!page_options.initialised) {
33
+ page_options.init(false, '', '');
34
+ }
35
+ });
36
+ </script>
37
+ <% end %>
@@ -0,0 +1,25 @@
1
+ - index = part.new_record? ? part.object_id : part.to_param
2
+
3
+ div.page_part id = field
4
+ div.tab-area.ui-corner-bottom id="template_part_index_#{part.title}" data-index=index
5
+ = f.fields_for :parts, part, child_index: index do |j|
6
+ = j.hidden_field :title
7
+ = j.hidden_field :position
8
+ = j.hidden_field :locked
9
+ .widgets data-sortable='widgets'
10
+ = j.fields_for :widgets, part.widgets.sort_by(&:position) do |k|
11
+ = render 'refinery/admin/pages/widget_fields', f: k, type: k.object.widget_type
12
+
13
+ - unless part.locked?
14
+ = content_tag(:a, :href => refinery.page_widgets_admin_widgets_path(:dialog => true), :title => 'Add widget', :id => "add_widget_#{j.object.title}") do
15
+ .widget
16
+ .left
17
+ = refinery_icon_tag('add')
18
+ span.type Add widget
19
+ .clear
20
+ - else
21
+ .widget
22
+ .left
23
+ = refinery_icon_tag('lock')
24
+ span.type This page part is locked.
25
+ .clear
@@ -0,0 +1,46 @@
1
+ .widget data-sort-item='widget'
2
+ .banner
3
+ .left
4
+ span.handle title="Reorder"
5
+ = refinery_icon_tag('arrow_switch')
6
+ span.type
7
+ = f.object.ultimate_widget_type.name if f.object.widget_type
8
+ - if f.object.times_used > 1
9
+ span.sub-title style = 'margin-left: 20px;' Used in #{pluralize (f.object.times_used-1), 'other place'}
10
+ .right
11
+ .icons
12
+ - if f.object.locked?
13
+ span title = 'Locked'
14
+ = refinery_icon_tag('lock')
15
+ - else
16
+ = f.label :display, :class => 'inline'
17
+ = f.check_box :display, :class => 'simple-itoggle'
18
+ = link_to_function(refinery_icon_tag('bin_closed'), 'removeWidget(this)', :title => "Remove widget" )
19
+ = link_to_function(refinery_icon_tag('edit'), 'showWidgetEdit(this)', :title => "Edit widget" ) unless local_assigns.has_key?(:mode) && mode == 'edit'
20
+ = link_to_function(refinery_icon_tag('zoom'), 'toggleWidget(this)', :title => "Toggle details")
21
+ .inner.clear style="margin-top:40px;"
22
+ .previewing style=("display:none;" if local_assigns.has_key?(:mode) && mode == 'edit')
23
+ .field
24
+ = f.label :name
25
+ = f.object.name
26
+ = f.fields_for f.object.widget_type.association_name do |j|
27
+ = render "refinery/widgets/admin/widgets/#{f.object.widget_type.admin_preview_partial}", :f => j
28
+
29
+ .editing style=("display:none;" unless local_assigns.has_key?(:mode) && mode == 'edit')
30
+ .field.clear
31
+ = f.hidden_field :sub_type
32
+ = f.hidden_field :_destroy, 'data-meta' => 'destroy'
33
+ = f.hidden_field :position, 'data-meta' => 'position'
34
+ = f.hidden_field :widget_id
35
+ = f.hidden_field :locked
36
+ = f.hidden_field :layout
37
+ = f.label :name
38
+ - if f.object.locked?
39
+ = text_field_tag :name, f.object.name, :disabled => true
40
+ = f.hidden_field :name
41
+ - else
42
+ = f.text_field :name
43
+ = f.fields_for f.object.widget_type.association_name do |j|
44
+ = render "refinery/widgets/admin/widgets/#{f.object.widget_type.admin_partial}", :f => j
45
+ .clear
46
+
@@ -0,0 +1,2 @@
1
+ .widget.content_block_widget
2
+ = raw widget.sub_type_instance.content
@@ -0,0 +1 @@
1
+ = render "refinery/widgets/#{widget.widget.widget_type.front_partial}", :widget => widget.widget
@@ -0,0 +1,25 @@
1
+ <ul>
2
+ <% if ::Refinery::Widgets::Admin::TemplatesController.searchable? %>
3
+ <li>
4
+ <%= render '/refinery/admin/search', :url => refinery.widgets_admin_templates_path %>
5
+ </li>
6
+ <% end %>
7
+ <li>
8
+ <%= link_to t('.create_new'), refinery.new_widgets_admin_template_path,
9
+ :class => "add_icon" %>
10
+ </li>
11
+ <% if !searching? && ::Refinery::Widgets::Admin::TemplatesController.sortable? && ::Refinery::Widgets::Template.many? %>
12
+ <li>
13
+ <%= link_to t('.reorder', :what => "Templates"),
14
+ refinery.widgets_admin_templates_path,
15
+ :id => "reorder_action",
16
+ :class => "reorder_icon" %>
17
+
18
+ <%= link_to t('.reorder_done', :what => "Templates"),
19
+ refinery.widgets_admin_templates_path,
20
+ :id => "reorder_action_done",
21
+ :style => "display: none;",
22
+ :class => "reorder_icon" %>
23
+ </li>
24
+ <% end %>
25
+ </ul>
@@ -0,0 +1,17 @@
1
+ <%= form_for [refinery, :widgets_admin, @template] do |f| -%>
2
+ <%= render '/refinery/admin/error_messages',
3
+ :object => @template,
4
+ :include_object_name => true %>
5
+
6
+ <div class='field'>
7
+ <%= f.label :name -%>
8
+ <%= f.text_field :name, :class => 'larger widest' -%>
9
+ </div>
10
+
11
+ <%= render 'page_parts', f: f, tabbed_fields: Refinery::Widgets::Template.parts %>
12
+
13
+ <%= render '/refinery/admin/form_actions', :f => f,
14
+ :continue_editing => false,
15
+ :delete_title => t('delete', :scope => 'refinery.templates.admin.templates.template'),
16
+ :delete_confirmation => t('message', :scope => 'refinery.admin.delete', :title => @template.name) -%>
17
+ <% end -%>
@@ -0,0 +1,22 @@
1
+ - template_part = f.object.template_part(field)
2
+ - index = template_part.new_record? ? template_part.object_id : template_part.to_param
3
+
4
+ div.tab-area.ui-corner-bottom id="template_part_index_#{field}" data-index=index
5
+ = f.fields_for :template_parts, template_part, child_index: index do |j|
6
+ = j.hidden_field :name
7
+
8
+ .field.clear
9
+ = j.label :locked, class: 'inline'
10
+ = j.select :locked, [['Yes', true], ['No', false]]
11
+ = j.hidden_field :display
12
+
13
+ .widgets data-sortable='widgets'
14
+ = j.fields_for :widgets, template_part.widgets.sort_by(&:position) do |k|
15
+ = render 'refinery/widgets/admin/templates/widget_fields', f: k, type: k.object.widget_type
16
+
17
+ = content_tag(:a, :href => refinery.template_widgets_admin_widgets_path(:dialog => true), :title => 'Add widget', :id => "add_widget_#{j.object.name}") do
18
+ .widget
19
+ .left
20
+ = refinery_icon_tag('add')
21
+ span.type Add widget
22
+ .clear
@@ -0,0 +1,37 @@
1
+ <div class='field'>
2
+ <div id='page-tabs' class='clearfix ui-tabs ui-widget ui-widget-content ui-corner-all'>
3
+ <ul id='page_parts'>
4
+ <% tabbed_fields.each_with_index do |field, index| %>
5
+ <li class="ui-state-default <%= 'ui-state-active' if index == 0 %>">
6
+ <%= link_to "#{field.to_s.humanize}", "\##{field}" %>
7
+ </li>
8
+ <% end %>
9
+ <% pages_tabs = ::Refinery::Pages.tabs
10
+ tabs_to_show = (refinery_pages_tabs ||= []).map!(&:to_s)
11
+ pages_tabs.reject!{|t| refinery_pages_tabs.exclude?(t.name.to_s) } unless tabs_to_show.include?('all')
12
+ pages_tabs.each_with_index do |tab, tab_index| %>
13
+ <li class='ui-state-default' id="custom_<%= tab.name %>_tab">
14
+ <%= link_to tab.name.titleize, "#custom_tab_#{tab_index}" %>
15
+ </li>
16
+ <% end %>
17
+ </ul>
18
+
19
+ <div id='page_part_editors'>
20
+ <% tabbed_fields.each do |field| %>
21
+ <div class='page_part' id="<%= field %>">
22
+ <%= render 'page_part', :f => f, :field => field %>
23
+ </div>
24
+ <% end %>
25
+ </div>
26
+ </div>
27
+ </div>
28
+
29
+ <% content_for :javascripts do %>
30
+ <script>
31
+ $(document).ready(function(){
32
+ if (!page_options.initialised) {
33
+ page_options.init(false, '', '');
34
+ }
35
+ });
36
+ </script>
37
+ <% end %>
@@ -0,0 +1,16 @@
1
+ <%= render 'refinery/admin/search_header', :url => refinery.widgets_admin_templates_path %>
2
+ <div class='pagination_container'>
3
+ <% if @templates.any? %>
4
+ <%= render 'templates' %>
5
+ <% else %>
6
+ <p>
7
+ <% unless searching? %>
8
+ <strong>
9
+ <%= t('.no_items_yet') %>
10
+ </strong>
11
+ <% else %>
12
+ <%= t('no_results', :scope => 'refinery.admin.search') %>
13
+ <% end %>
14
+ </p>
15
+ <% end %>
16
+ </div>
@@ -0,0 +1,5 @@
1
+ <ul id='sortable_list'>
2
+ <%= render :partial => 'template', :collection => @templates %>
3
+ </ul>
4
+ <%= render '/refinery/admin/sortable_list',
5
+ :continue_reordering => (local_assigns.keys.include?(:continue_reordering)) ? continue_reordering : true %>
@@ -0,0 +1,18 @@
1
+ <li class='clearfix record <%= cycle("on", "on-hover") %>' id="<%= dom_id(template) -%>">
2
+ <span class='title'>
3
+ <%= template.name %>
4
+ </span>
5
+ <span class='sub-title'>
6
+ Used <%= pluralize template.pages.count, 'time' %>
7
+ </span>
8
+ <span class='actions'>
9
+
10
+ <%= link_to refinery_icon_tag("application_edit.png"), refinery.edit_widgets_admin_template_path(template),
11
+ :title => t('.edit') %>
12
+ <%= link_to refinery_icon_tag("delete.png"), refinery.widgets_admin_template_path(template),
13
+ :class => "cancel confirm-delete",
14
+ :title => t('.delete'),
15
+ :confirm => t('message', :scope => 'refinery.admin.delete', :title => template.name),
16
+ :method => :delete %>
17
+ </span>
18
+ </li>
@@ -0,0 +1,2 @@
1
+ <%= will_paginate @templates if Refinery::Widgets::Admin::TemplatesController.pageable? %>
2
+ <%= render 'sortable_list' %>
@@ -0,0 +1,26 @@
1
+ .widget data-sort-item='widget'
2
+ .banner
3
+ .left
4
+ span.handle title="Reorder"
5
+ = refinery_icon_tag('arrow_switch')
6
+ span.type
7
+ = f.object.ultimate_widget_type.name if f.object.widget_type
8
+ - if f.object.times_used > 1
9
+ span.sub-title style = 'margin-left: 20px;' Used in #{pluralize (f.object.times_used-1), 'other place'}
10
+ .right
11
+ .icons
12
+ = link_to_function(refinery_icon_tag('bin_closed'), 'removeWidget(this)', :title => "Remove widget" )
13
+ = link_to_function(refinery_icon_tag('zoom'), 'toggleWidget(this)', :title => "Toggle details")
14
+ .inner.clear style="margin-top:40px;"
15
+ .field.clear
16
+ = f.hidden_field :sub_type
17
+ = f.hidden_field :_destroy, 'data-meta' => 'destroy'
18
+ = f.hidden_field :position, 'data-meta' => 'position'
19
+ = f.hidden_field :widget_id
20
+ = f.hidden_field :locked
21
+ = f.label :name
22
+ = f.text_field :name
23
+ = f.fields_for f.object.widget_type.association_name do |j|
24
+ = render "refinery/widgets/admin/widgets/#{f.object.widget_type.admin_partial}", :f => j
25
+ .clear
26
+
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,7 @@
1
+ <section id='records'>
2
+ <%= render 'records' %>
3
+ </section>
4
+ <aside id='actions'>
5
+ <%= render 'actions' %>
6
+ </aside>
7
+ <%= render '/refinery/admin/make_sortable', :tree => false if !searching? and ::Refinery::Widgets::Admin::TemplatesController.sortable? and ::Refinery::Widgets::Template.many? %>
@@ -0,0 +1,15 @@
1
+ table.select_template
2
+ thead
3
+ tr
4
+ th Name
5
+ th Template parts
6
+ th Times used
7
+ th &nbsp;
8
+
9
+ tbody
10
+ - @templates.each do |template|
11
+ tr class = cycle('dark', 'light')
12
+ td = template.name
13
+ td = template.unlocked_template_parts.collect(&:name).to_sentence
14
+ td = Refinery::Page.where(template_id: template.id).count
15
+ td = link_to_function 'Use this template', "linkFromDialog('#{refinery.new_admin_page_path(parent_id: @parent_id, template_id: template.id)}')"
@@ -0,0 +1 @@
1
+ <%= render 'form' %>
@@ -0,0 +1,4 @@
1
+ = instantiate_builder('page', @page, {}).fields_for :parts, @page_part, child_index: @page_part_index do |j|
2
+ = j.fields_for :widgets, @widget, child_index: @widget.object_id do |k|
3
+ = render("refinery/admin/pages/widget_fields", f: k, mode: 'edit')
4
+
@@ -0,0 +1,4 @@
1
+ = instantiate_builder('template', @template, {}).fields_for :template_parts, @template_part, child_index: @template_part_index do |j|
2
+ = j.fields_for :widgets, @widget, child_index: @widget.object_id do |k|
3
+ = render("refinery/widgets/admin/templates/widget_fields", f: k)
4
+
@@ -0,0 +1,4 @@
1
+ = instantiate_builder('page', @page, {}).fields_for :parts, @page_part, child_index: @page_part_index do |j|
2
+ = j.fields_for :widgets, @widget, child_index: @widget.object_id do |k|
3
+ = render("refinery/widgets/admin/templates/widget_fields", f: k)
4
+
@@ -0,0 +1,4 @@
1
+ = instantiate_builder('template', @template, {}).fields_for :template_parts, @template_part, child_index: @template_part_index do |j|
2
+ = j.fields_for :widgets, @widget, child_index: @widget.object_id do |k|
3
+ = render("refinery/widgets/admin/templates/widget_fields", f: k)
4
+
@@ -0,0 +1,3 @@
1
+ .field
2
+ = f.label :content
3
+ = f.text_field :content, :class => 'wymeditor', :style => 'width: 918px;'
@@ -0,0 +1,3 @@
1
+ .field
2
+ = f.label :content
3
+ = raw f.object.content
@@ -0,0 +1,2 @@
1
+ = f.fields_for f.object.widget_type.association_name do |j|
2
+ = render "refinery/widgets/admin/widgets/#{f.object.widget_type.admin_partial}", :f => j
@@ -0,0 +1,2 @@
1
+ = f.fields_for f.object.widget_type.association_name do |j|
2
+ = render "refinery/widgets/admin/widgets/#{f.object.widget_type.admin_preview_partial}", :f => j
@@ -0,0 +1,31 @@
1
+ #new_widget
2
+ h3 Add new
3
+ = select_tag :widget_type, options_for_select([['Select type...', nil]] + Refinery::Widgets::WidgetType.all.map{|t| [t.name, t.klass_as_string] }), :class => current_page?(refinery.url_for(:action => 'page')) ? 'page' : 'template'
4
+
5
+ h3 Select existing
6
+ table.existing_widgets
7
+ thead
8
+ tr.titles
9
+ th Name
10
+ th Type
11
+ - if current_page?(refinery.url_for(action: 'page'))
12
+ th Pages
13
+ - else
14
+ th Templates
15
+ th &nbsp
16
+ tbody
17
+ - @widgets.each do |widget|
18
+ tr class = cycle('dark', 'light')
19
+ td = widget.name
20
+ td = widget.widget_type.name
21
+ - if current_page?(refinery.url_for(action: 'page'))
22
+ td
23
+ = widget.pages.collect{|p| p.title }.to_sentence
24
+ - else
25
+ td
26
+ = widget.templates.collect{|p| p.name }.to_sentence
27
+ td
28
+ - if current_page?(refinery.url_for(action: 'page'))
29
+ = link_to_function('Select', "selectExistingWidgetForPage(#{widget.id})")
30
+ - else
31
+ = link_to_function('Select', "selectExistingWidgetForTemplate(#{widget.id})")
@@ -0,0 +1,27 @@
1
+ cs:
2
+ refinery:
3
+ plugins:
4
+ templates:
5
+ title: Templates
6
+ widgets:
7
+ admin:
8
+ templates:
9
+ actions:
10
+ create_new: Přidat Template
11
+ reorder: Řadit Templates
12
+ reorder_done: Konec řazení Templates
13
+ records:
14
+ title: Templates
15
+ sorry_no_results: Litujeme, ale nebyly nalezny žádné výsledky.
16
+ no_items_yet: Zatím nebyly vytvořeny žádné Templates. Zvolte "Přidat Template" pro přidání prvního template.
17
+ template:
18
+ view_live_html: Zobrazit náhled template<br/><em>(otevře se v novém okně)</em>
19
+ edit: Upravit template
20
+ delete: Smazat template
21
+ templates:
22
+ show:
23
+ other: Další Templates
24
+ activerecord:
25
+ attributes:
26
+ 'refinery/widgets/template':
27
+ name: Name