spina 1.0.3 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spina might be problematic. Click here for more details.

Files changed (107) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/Rakefile +5 -14
  4. data/app/assets/config/spina/manifest.js +5 -0
  5. data/app/assets/config/spina_manifest.js +5 -0
  6. data/app/assets/images/spina/arrow-left.svg +1 -0
  7. data/app/assets/images/spina/arrow-right.svg +1 -0
  8. data/app/assets/images/spina/datepicker.svg +1 -0
  9. data/app/assets/images/spina/divider.svg +1 -0
  10. data/app/assets/images/spina/media_folder_placeholder.svg +1 -0
  11. data/app/assets/images/spina/spina.svg +1 -0
  12. data/app/assets/javascripts/spina/admin/application.js +1 -2
  13. data/app/assets/javascripts/spina/admin/controllers/gallery_select_controller.js +52 -0
  14. data/app/assets/javascripts/spina/admin/controllers/infinite_scroll_controller.js +2 -2
  15. data/app/assets/javascripts/spina/admin/controllers/page_collapse_controller.js +35 -0
  16. data/app/assets/javascripts/spina/admin/media_gallery.coffee +1 -1
  17. data/app/assets/javascripts/spina/admin/trix.coffee.erb +79 -5
  18. data/app/assets/javascripts/spina/admin/uploads.coffee +1 -1
  19. data/app/assets/stylesheets/spina.sass +8 -4
  20. data/app/assets/stylesheets/spina/_buttons.sass +1 -0
  21. data/app/assets/stylesheets/spina/_forms.sass +1 -1
  22. data/app/assets/stylesheets/spina/_gallery.sass +45 -12
  23. data/app/assets/stylesheets/spina/_sortable_lists.sass +7 -0
  24. data/app/assets/stylesheets/spina/_trix_custom.sass +227 -0
  25. data/app/assets/stylesheets/spina/admin/{application.sass → application.css.sass} +0 -0
  26. data/app/controllers/concerns/spina/frontend.rb +5 -5
  27. data/app/controllers/spina/admin/accounts_controller.rb +2 -1
  28. data/app/controllers/spina/admin/images_controller.rb +1 -1
  29. data/app/controllers/spina/admin/media_picker_controller.rb +14 -2
  30. data/app/controllers/spina/admin/navigations_controller.rb +9 -7
  31. data/app/controllers/spina/admin/pages_controller.rb +16 -11
  32. data/app/controllers/spina/admin/password_resets_controller.rb +2 -2
  33. data/app/controllers/spina/admin/resources_controller.rb +9 -7
  34. data/app/controllers/spina/admin/settings_controller.rb +1 -1
  35. data/app/controllers/spina/admin/users_controller.rb +8 -7
  36. data/app/controllers/spina/pages_controller.rb +1 -3
  37. data/app/helpers/spina/admin/pages_helper.rb +2 -2
  38. data/app/helpers/spina/images_helper.rb +1 -1
  39. data/app/models/spina/account.rb +14 -6
  40. data/app/models/spina/attachment.rb +3 -3
  41. data/app/models/spina/image.rb +10 -1
  42. data/app/models/spina/image_collection.rb +3 -3
  43. data/app/models/spina/line.rb +1 -1
  44. data/app/models/spina/navigation_item.rb +2 -1
  45. data/app/models/spina/page.rb +11 -6
  46. data/app/models/spina/resource.rb +11 -0
  47. data/app/models/spina/text.rb +1 -1
  48. data/app/presenters/spina/menu_presenter.rb +74 -0
  49. data/app/views/layouts/spina/admin/admin.html.haml +1 -1
  50. data/app/views/spina/admin/accounts/social.html.haml +18 -0
  51. data/app/views/spina/admin/images/_form.html.haml +1 -1
  52. data/app/views/spina/admin/images/_image.html.haml +3 -5
  53. data/app/views/spina/admin/media_folders/_media_folder.html.haml +2 -2
  54. data/app/views/spina/admin/media_folders/show.html.haml +1 -1
  55. data/app/views/spina/admin/media_picker/_modal.html.haml +51 -14
  56. data/app/views/spina/admin/media_picker/select.js.erb +4 -2
  57. data/app/views/spina/admin/pages/_form.html.haml +1 -1
  58. data/app/views/spina/admin/pages/children.html.haml +4 -0
  59. data/app/views/spina/admin/partables/lines/_form.html.haml +1 -1
  60. data/app/views/spina/admin/partables/texts/_form.html.haml +4 -1
  61. data/app/views/spina/admin/password_resets/edit.html.haml +1 -1
  62. data/app/views/spina/admin/password_resets/new.html.haml +1 -1
  63. data/app/views/spina/admin/resources/edit.html.haml +1 -1
  64. data/app/views/spina/admin/resources/show.html.haml +13 -3
  65. data/app/views/spina/admin/sessions/new.html.haml +1 -1
  66. data/app/views/spina/admin/shared/_primary_navigation.html.haml +1 -1
  67. data/app/views/spina/admin/shared/_rich_text_field.html.haml +1 -32
  68. data/app/views/spina/shared/_admin_bar.html.haml +1 -1
  69. data/app/views/spina/shared/_social.html.haml +2 -2
  70. data/config/locales/de.yml +3 -0
  71. data/config/locales/en.yml +4 -0
  72. data/config/locales/es.yml +3 -0
  73. data/config/locales/fr.yml +3 -0
  74. data/config/locales/it.yml +3 -0
  75. data/config/locales/nl.yml +4 -0
  76. data/config/locales/pt-BR.yml +20 -1
  77. data/config/locales/ru.yml +3 -0
  78. data/config/locales/tr.yml +3 -0
  79. data/config/locales/zh-CN.yml +3 -0
  80. data/config/routes.rb +1 -0
  81. data/lib/generators/spina/install_generator.rb +10 -10
  82. data/lib/generators/spina/templates/app/views/default/shared/_navigation.html.haml +2 -3
  83. data/lib/generators/spina/templates/app/views/demo/pages/demo.html.haml +4 -3
  84. data/lib/generators/spina/templates/app/views/demo/shared/_navigation.html.haml +2 -3
  85. data/lib/generators/spina/templates/app/views/layouts/default/application.html.haml +0 -1
  86. data/lib/generators/spina/templates/app/views/layouts/demo/application.html.haml +0 -1
  87. data/lib/generators/spina/templates/config/initializers/mobility.rb +0 -1
  88. data/lib/spina.rb +1 -0
  89. data/lib/spina/engine.rb +1 -1
  90. data/lib/spina/railtie.rb +9 -0
  91. data/lib/spina/theme.rb +2 -1
  92. data/lib/spina/version.rb +1 -1
  93. data/lib/tasks/spina_tasks.rake +8 -2
  94. data/vendor/assets/javascripts/spina/trix.js +9 -9
  95. data/vendor/assets/stylesheets/spina/_normalize.scss +1 -1
  96. data/vendor/assets/stylesheets/spina/_trix.css +369 -0
  97. metadata +39 -21
  98. data/app/assets/images/spina/arrow-left.png +0 -0
  99. data/app/assets/images/spina/arrow-right.png +0 -0
  100. data/app/assets/images/spina/datepicker.png +0 -0
  101. data/app/assets/images/spina/divider.png +0 -0
  102. data/app/assets/images/spina/media_folder_placeholder.png +0 -0
  103. data/app/assets/images/spina/spina-large.png +0 -0
  104. data/app/assets/javascripts/spina/admin/galleryselect.coffee +0 -20
  105. data/app/assets/stylesheets/spina/_trix.sass +0 -102
  106. data/config/initializers/assets.rb +0 -6
  107. data/config/initializers/time_formats.rb +0 -1
@@ -1,5 +1,5 @@
1
1
  = form_for [:admin, Spina::Image.new], id: 'new_image', class: 'new_image', data: {remote: true} do |f|
2
2
  = f.submit style: 'display: none'
3
- = hidden_field_tag :media_library, value: true
3
+ = hidden_field_tag :media_library, @media_folder.try(:id)
4
4
  = f.label :file, t('spina.images.upload')
5
5
  = f.file_field :files, multiple: true, accept: "image/*", data: {direct_upload_url: main_app.rails_direct_uploads_url, customfileinput: true}
@@ -1,10 +1,8 @@
1
- .item.image{class: ('selected' if image.id.to_s.try(:in?, params[:selected_ids].to_a))}
1
+ .item.image{class: ('selected' if image.id.to_s.try(:in?, params[:selected_ids].to_a)), data: {action: "click->gallery-select#select", image_id: image.id}}
2
2
  - unless defined?(simple) && simple
3
3
  .overlay
4
4
  = link_to admin_image_path(image), method: :delete, class: 'icon-only delete-photo-link', data: {confirm: t('spina.images.delete_confirmation')} do
5
5
  = t('spina.images.delete')
6
6
  %span.photo-name= truncate(image.name, length: 125)
7
- = radio_button_tag :image_id, image.id
8
- = check_box_tag 'image_ids[]', image.id, image.id.to_s.try(:in?, params[:selected_ids].to_a)
9
-
10
- = image_tag main_app.url_for(image.variant(resize: '300x300^', crop: "300x300+0+0"))
7
+
8
+ = image_tag variant(image.file, resize: '300x300^', crop: "300x300+0+0")
@@ -3,6 +3,6 @@
3
3
  - if media_folder.images.any?
4
4
  = image_tag variant(media_folder.images.last.file, resize: '144x144^', crop: "144x144+0+0")
5
5
  - else
6
- = image_tag 'spina/media_folder_placeholder.png'
6
+ = image_tag 'spina/media_folder_placeholder.svg'
7
7
  .media-folder-shadow
8
- .media-folder-name= media_folder.name
8
+ .media-folder-name= media_folder.name
@@ -6,7 +6,7 @@
6
6
  .item
7
7
  = form_with model: [:admin, Spina::Image.new], id: 'new_image', class: 'new_image' do |f|
8
8
  = f.submit style: 'display: none'
9
- = hidden_field_tag :media_library, value: @media_folder.id
9
+ = hidden_field_tag :media_library, @media_folder.id
10
10
  = f.label :file, t('spina.images.upload')
11
11
  = f.file_field :files, multiple: true, data: {direct_upload_url: main_app.rails_direct_uploads_url, customfileinput: true}
12
12
 
@@ -1,26 +1,63 @@
1
1
  .modal.modal-large
2
- %section
3
- .gallery-select.gallery{data: {multiselect: defined?(multiple) && multiple}}
4
- .item.item-small.item-uploader.new-image-form
5
- = render partial: 'spina/admin/images/form'
2
+ %section{style: "display: flex"}
3
+ .gallery-select-container{data: {controller: "gallery-select"}}
4
+ .gallery-select.gallery.gallery-prepend-image{data: {multiselect: defined?(multiple) && multiple}}
5
+ .item.item-small.item-uploader.new-image-form
6
+ = render partial: 'spina/admin/images/form'
6
7
 
7
- = form_with url: admin_media_picker_path, class: 'gallery-prepend-image' do
8
- = hidden_field_tag :hidden_field_id, params[:hidden_field_id]
9
- = hidden_field_tag :trix_editor_id, params[:trix_editor_id]
10
- = check_box_tag :multiple, true, defined?(multiple) && multiple, style: 'display: none'
8
+ - if @media_folder.present?
9
+ = link_to spina.admin_media_picker_path(request.query_parameters.merge(media_folder_id: nil)), class: 'item media-folder', data: {remote: true} do
10
+ .media-folder-thumbnail
11
+ = image_tag 'spina/media_folder_placeholder.svg'
12
+ .media-folder-shadow
13
+ .media-folder-name=t "spina.images.back"
14
+ - else
15
+ - @media_folders.each do |media_folder|
16
+ = link_to spina.admin_media_picker_path({media_folder_id: media_folder.id}.merge(request.query_parameters)), class: 'item media-folder', data: {remote: true} do
17
+ .media-folder-thumbnail{data: {badge: media_folder.images.count}}
18
+ - if media_folder.images.any?
19
+ = image_tag variant(media_folder.images.last.file, resize: '144x144^', crop: "144x144+0+0")
20
+ - else
21
+ = image_tag 'spina/media_folder_placeholder.svg'
22
+ .media-folder-shadow
23
+ .media-folder-name= media_folder.name
11
24
 
12
25
  .infinite-scroll
13
26
  = render partial: 'spina/admin/images/image', collection: @images
14
27
 
15
- .infinite-pagination{data: {controller: 'infinite-scroll'}}= link_to_next_page @images, 'Next', params: params, remote: true, data: {target: "infinite-scroll.link"}
28
+ .infinite-pagination{data: { controller: 'infinite-scroll' } }
29
+ = link_to_next_page @images, 'Next', params: params, remote: true,
30
+ data: { target: 'infinite-scroll.link' }
31
+ %span{ data: { target: 'infinite-scroll.link' } }
32
+
33
+ .gallery-select-sidebar
34
+ = form_with url: admin_media_picker_path, html: {'data-remote': true} do
35
+ .gallery-select-form-fields
36
+ = hidden_field_tag :image_id, params[:selected_ids]&.first, data: {target: 'gallery-select.singleImage'}
37
+ = hidden_field_tag :image_ids, params[:selected_ids]&.join("-"), data: {target: 'gallery-select.multipleImages'}
38
+ = hidden_field_tag :hidden_field_id, params[:hidden_field_id]
39
+ = hidden_field_tag :trix_toolbar_id, params[:trix_toolbar_id]
40
+ = check_box_tag :multiple, true, defined?(multiple) && multiple, style: 'display: none', data: {target: 'gallery-select.multiple'}
41
+
42
+ - if params[:trix_toolbar_id].present?
43
+ .form-group
44
+ .form-label Alt text
45
+ .form-control= text_field_tag :alt, nil, placeholder: "Alt"
46
+
47
+ .form-group
48
+ .form-label Link to URL
49
+ .form-control= text_field_tag :link_to_url, nil, placeholder: "URL"
16
50
 
17
- - if defined?(multiple) && multiple
18
51
  .gallery-select-action-bar
19
- .pull-right
20
- = link_to t('spina.cancel'), "#", class: 'button button-link', data: {dismiss: 'modal'}
21
- = button_tag type: 'submit', class: 'button button-primary button-large', style: 'margin-bottom: 0px' do
52
+ = link_to t('spina.cancel'), "#", class: 'button button-link', data: {dismiss: 'modal'}
53
+ = button_tag type: 'submit', class: 'button button-primary button-large', style: 'margin-bottom: 0px' do
54
+
55
+ - if defined?(multiple) && multiple
22
56
  = icon('plus')
23
57
  = t('spina.images.choose_images')
24
- %span.gallery-select-counter
58
+ %span.gallery-select-counter{data: {target: "gallery-select.counter"}}
25
59
  - if params[:selected_ids].try(:any?)
26
60
  (#{ params[:selected_ids].count })
61
+ - else
62
+ = icon('check')
63
+ =t 'spina.images.choose_image'
@@ -7,8 +7,10 @@ hidden_input.val("");
7
7
  hidden_input.val("<%= @image.id %>");
8
8
 
9
9
  // Trix editor
10
- $('#<%= params[:trix_editor_id] %>').trigger('image-insert', '<%= main_app.url_for(@image.variant(resize: "800x800")) %>');
11
- $.hideModal();
10
+ <% if params[:trix_toolbar_id].present? %>
11
+ $('trix-editor[toolbar="<%= params[:trix_toolbar_id] %>"]').trigger('image-insert', ["<%= main_app.url_for(@image.file) %>", "<%= params[:alt] %>", "<%= params[:link_to_url] %>"]);
12
+ $.hideModal();
13
+ <% end %>
12
14
  <% end %>
13
15
 
14
16
  <% if @images.present? %>
@@ -24,7 +24,7 @@
24
24
  %ul#locales
25
25
  - Spina.config.locales.each do |locale|
26
26
  %li
27
- = link_to t("languages.#{locale}"), "?locale=#{locale}", style: ('font-weight: 600' if @locale.to_s == locale.to_s)
27
+ = link_to t("languages.#{locale}"), "?locale=#{locale}", style: ('font-weight: 600' if @locale.to_s == locale.to_s).to_s
28
28
 
29
29
  = link_to @page.materialized_path, target: :blank, class: 'button button-hollow button-small', style: 'margin-left: 0' do
30
30
  %i.icon.icon-export{style: 'margin: 0'}
@@ -0,0 +1,4 @@
1
+ %ol.dd-list
2
+ - @children.each do |child|
3
+ %li.dd-item
4
+ .dd-item-inner= render partial: "page", object: child
@@ -2,4 +2,4 @@
2
2
  = f.object.title
3
3
  .horizontal-form-content
4
4
  = f.fields_for :partable, f.object.partable do |ff|
5
- = ff.text_field :content, placeholder: "#{t 'spina.pages.page_part'} #{f.object.name.downcase}"
5
+ = ff.text_field :content, value: ff.object.content(fallback: false, default: nil)
@@ -2,4 +2,7 @@
2
2
  = f.object.title
3
3
  .horizontal-form-content
4
4
  = f.fields_for :partable, f.object.partable do |ff|
5
- = render 'spina/admin/shared/rich_text_field', f: ff, field: :content
5
+ - object_id = (ff.object.persisted? ? ff.object.object_id : "new_association_#{ff.object.object_id}").to_s + "_content"
6
+ = ff.hidden_field :content, id: "#{object_id}_input", value: ff.object.content(fallback: false, default: nil)
7
+ %trix-editor.text-input.trix-content{ input: "#{object_id}_input" }
8
+
@@ -1,5 +1,5 @@
1
1
  = form_for @user, url: spina.admin_password_reset_path(params[:id]), html: {id: "login_wrapper"} do |f|
2
- = image_tag 'spina/spina-large.png', class: 'animated fadeInDown'
2
+ = image_tag 'spina/spina.svg', class: 'animated fadeInDown', width: 72, height: 54
3
3
  - if @user.errors.any?
4
4
  .failed-to-login.animated.fadeInDown
5
5
  .icon.icon-cross
@@ -1,5 +1,5 @@
1
1
  = form_tag spina.admin_password_resets_path, method: :post, id: "login_wrapper" do
2
- = image_tag 'spina/spina-large.png'
2
+ = image_tag 'spina/spina.svg', width: 72, height: 54
3
3
  - if flash[:alert].present?
4
4
  .failed-to-login.animated.fadeInDown
5
5
  .icon.icon-cross
@@ -46,4 +46,4 @@
46
46
  = Spina::Resource.human_attribute_name :parent_page
47
47
  .horizontal-form-content
48
48
  .select-dropdown
49
- = f.select :parent_page_id, page_ancestry_options(f.object), include_blank: Spina::Resource.human_attribute_name(:no_parent)
49
+ = f.select :parent_page_id, page_ancestry_options(Spina::Page.new), include_blank: Spina::Resource.human_attribute_name(:no_parent)
@@ -9,6 +9,16 @@
9
9
  .well
10
10
  .dd#pages_list
11
11
  %ol.dd-list
12
- - @resource.pages.each do |page|
13
- %li.dd-item
14
- .dd-item-inner= render partial: 'spina/admin/pages/page', object: page
12
+ - (@resource.parent_page.try(:children) || @resource.pages.roots).each do |page|
13
+ %li.dd-item{data: {controller: "page-collapse", url: spina.children_admin_page_path(page)}}
14
+ .dd-item-inner
15
+ - if page.children.any?
16
+ = button_tag class: 'collapse-link', data: {action: "page-collapse#expand", target: 'page-collapse.expandLink'} do
17
+ = icon('plus')
18
+
19
+ = button_tag class: 'collapse-link', style: 'display: none', data: {action: "page-collapse#collapse", target: 'page-collapse.collapseLink'} do
20
+ = icon('min')
21
+
22
+ = render partial: 'spina/admin/pages/page', object: page
23
+
24
+ %div{data: {target: 'page-collapse.list'}}
@@ -1,5 +1,5 @@
1
1
  = form_tag spina.admin_sessions_path, id: "login_wrapper" do
2
- = image_tag 'spina/spina-large.png', class: 'animated fadeInDown'
2
+ = image_tag 'spina/spina.svg', class: 'animated fadeInDown', width: 72, height: 54
3
3
  - if flash[:alert].present?
4
4
  .failed-to-login.animated.fadeInDown
5
5
  .icon.icon-cross
@@ -65,4 +65,4 @@
65
65
  %li.bottom
66
66
  = link_to spina.admin_logout_path, data: {turbolinks: false} do
67
67
  = icon('power-off')
68
- =t 'spina.logout'
68
+ =t 'spina.logout'
@@ -1,35 +1,4 @@
1
1
 
2
2
  - object_id = (f.object.persisted? ? f.object.object_id : "new_association_#{f.object.object_id}").to_s + "_#{field}"
3
3
  = f.hidden_field field, id: "#{object_id}_input"
4
-
5
- %trix-toolbar.clearfix{ id: "#{object_id}_toolbar", data: { trix_editor_id: "#{object_id}_editor" }}
6
- .button-groups
7
- .button-group.pull-left
8
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'Bold', data: { trix_attribute: 'bold', trix_key: 'b' }}
9
- .icon.icon-bold
10
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'Italic', data: { trix_attribute: 'italic', trix_key: 'i' }}
11
- .icon.icon-italic
12
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'Bullets', data: { trix_attribute: 'bullet' }}
13
- .icon.icon-list-ul
14
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'Link', data: { trix_action: 'link', trix_attribute: 'href', trix_key: 'k' }}
15
- .icon.icon-link
16
- %button.button.button-small.js-trix-image{ type: 'button', tabindex: -1, title: 'Image', data: { trix_action: 'image', trix_attribute: 'image' }}
17
- .icon.icon-picture-o
18
-
19
- .button-group.pull-left
20
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'h1', data: { trix_attribute: 'heading1' }} H1
21
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'h2', data: { trix_attribute: 'heading2' }} H2
22
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'h3', data: { trix_attribute: 'heading3' }} H3
23
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'h4', data: { trix_attribute: 'heading4' }} H4
24
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'h5', data: { trix_attribute: 'heading5' }} H5
25
- %button.button.button-small{ type: 'button', tabindex: -1, title: 'h6', data: { trix_attribute: 'heading6' }} H6
26
-
27
- .trix-dialogs{data: {trix_dialogs: true}}
28
- .trix-dialog.trix-dialog--link{ data: { trix_dialog_attribute: 'href', trix_dialog: 'href'}}
29
- .trix-dialog__link-fields
30
- %input.trix-input.trix-input--dialog{type: 'text', name: 'href', placeholder: 'Enter a URL…', required: true, data: {trix_input: true}}
31
- .button-group
32
- %input.button{type: 'button', tabindex: -1, value: 'Link', data: { trix_method: 'setAttribute'}}
33
- %input.button{type: 'button', tabindex: -1, value: 'Unlink', data: { trix_method: 'removeAttribute'}}
34
-
35
- %trix-editor.text-input{input: "#{object_id}_input", toolbar: "#{object_id}_toolbar", id: "#{object_id}_editor"}
4
+ %trix-editor.text-input.trix-content{ input: "#{object_id}_input" }
@@ -1,4 +1,4 @@
1
1
  - if current_spina_user.present?
2
2
  #admin_bar
3
- = link_to t('spina.edit_website'), spina.admin_root_url, data: {icon: 'q', :"no-turbolink" => true}, class: 'button button-hollow button-round button-small'
3
+ = link_to t('spina.edit_website'), spina.admin_root_url, data: {icon: 'q', turbolinks: false}, class: 'button button-hollow button-round button-small'
4
4
  = link_to t('spina.logout'), spina.admin_logout_path, data: {icon: 'h'}, class: 'button button-hollow button-round button-small'
@@ -1,5 +1,5 @@
1
1
  - if current_account.facebook.present?
2
- = link_to "", current_account.facebook, class: 'facebook-button', data: {:"no-turbolink" => true}
2
+ = link_to "", current_account.facebook, class: 'facebook-button', data: {turbolinks: false}
3
3
 
4
4
  - if current_account.twitter.present?
5
- = link_to "", current_account.twitter, class: 'twitter-button', data: {:"no-turbolink" => true}
5
+ = link_to "", current_account.twitter, class: 'twitter-button', data: {turbolinks: false}
@@ -161,6 +161,9 @@ de:
161
161
  facebook: Facebook
162
162
  twitter: Twitter
163
163
  google_plus: Google+
164
+ instagram: Instagram
165
+ youtube: YouTube
166
+ linkedin: LinkedIn
164
167
 
165
168
  spina/attachment:
166
169
  created_at: Erstellt am
@@ -102,6 +102,7 @@ en:
102
102
  choose_images: Choose images
103
103
  choose_image: Choose image
104
104
  remove_image: Remove image
105
+ back: Back
105
106
 
106
107
  wysiwyg:
107
108
  paragraph: Paragraph
@@ -173,6 +174,9 @@ en:
173
174
  facebook: Facebook
174
175
  twitter: Twitter
175
176
  google_plus: Google+
177
+ instagram: Instagram
178
+ youtube: YouTube
179
+ linkedin: LinkedIn
176
180
 
177
181
  spina/attachment:
178
182
  created_at: Created at
@@ -160,6 +160,9 @@ es:
160
160
  facebook: Facebook
161
161
  twitter: Twitter
162
162
  google_plus: Google+
163
+ instagram: Instagram
164
+ youtube: YouTube
165
+ linkedin: LinkedIn
163
166
 
164
167
  spina/attachment:
165
168
  created_at: Creado en
@@ -162,6 +162,9 @@ fr:
162
162
  facebook: Facebook
163
163
  twitter: Twitter
164
164
  google_plus: Google+
165
+ instagram: Instagram
166
+ youtube: YouTube
167
+ linkedin: LinkedIn
165
168
 
166
169
  spina/attachment:
167
170
  created_at: Créé le
@@ -135,6 +135,9 @@ it:
135
135
  facebook: Facebook
136
136
  twitter: Twitter
137
137
  google_plus: Google+
138
+ instagram: Instagram
139
+ youtube: YouTube
140
+ linkedin: LinkedIn
138
141
 
139
142
  spina/attachment:
140
143
  created_at: Creato il
@@ -48,6 +48,7 @@ nl:
48
48
  upload: kies een bestand
49
49
  choose_image: Kies afbeelding
50
50
  remove_image: Verwijder afbeelding
51
+ back: Terug
51
52
 
52
53
  forgot_password:
53
54
  new: Wachtwoord vergeten
@@ -165,6 +166,9 @@ nl:
165
166
  facebook: Facebook
166
167
  twitter: Twitter
167
168
  google_plus: Google+
169
+ instagram: Instagram
170
+ youtube: YouTube
171
+ linkedin: LinkedIn
168
172
 
169
173
  spina/attachment:
170
174
  created_at: Aangemaakt op
@@ -48,6 +48,7 @@ pt-BR:
48
48
  media_library_description: "Aqui é onde você vai encontrar todas as suas imagens e documentos"
49
49
  documents: Documentos
50
50
  photos: Imagens
51
+ images: Imagens
51
52
 
52
53
  pages:
53
54
  new: Nova página
@@ -92,8 +93,22 @@ pt-BR:
92
93
  delete_folder: Excluir pasta
93
94
  delete: Excluir
94
95
 
96
+ images:
97
+ delete_confirmation: "Tem certeza que deseja remover esta <strong>imagem</strong>?"
98
+ insert_photos: Inserir imagens
99
+ choose_images: Escolher imagens
100
+ insert_photo: Inserir imagem
101
+ link: "URL da sua imagem:"
102
+ cannot_be_created: "Imagem não pôde ser processada:"
103
+ upload_image: "Enviar uma imagem"
104
+ organize: Organizar imagens
105
+ done_organizing: Concluir organização
106
+ new_folder: Nova pasta
107
+ delete_folder: Excluir pasta
108
+ delete: Excluir
109
+
95
110
  wysiwyg:
96
- paragraph: Paragráfo
111
+ paragraph: Parágrafo
97
112
  heading_1: Cabeçalho 1
98
113
  heading_2: Cabeçalho 2
99
114
  heading_3: Cabeçalho 3
@@ -125,6 +140,7 @@ pt-BR:
125
140
 
126
141
  media_library:
127
142
  photos: Imagens
143
+ images: Imagens
128
144
  attachments: Documentos
129
145
 
130
146
  activerecord:
@@ -162,6 +178,9 @@ pt-BR:
162
178
  facebook: Facebook
163
179
  twitter: Twitter
164
180
  google_plus: Google+
181
+ instagram: Instagram
182
+ youtube: YouTube
183
+ linkedin: LinkedIn
165
184
 
166
185
  spina/attachment:
167
186
  created_at: Criado em
@@ -147,6 +147,9 @@ ru:
147
147
  facebook: Facebook
148
148
  twitter: Twitter
149
149
  google_plus: Google+
150
+ instagram: Instagram
151
+ youtube: YouTube
152
+ linkedin: LinkedIn
150
153
 
151
154
  spina/attachment:
152
155
  created_at: Создан в
@@ -135,6 +135,9 @@ tr:
135
135
  facebook: Facebook
136
136
  twitter: Twitter
137
137
  google_plus: Google+
138
+ instagram: Instagram
139
+ youtube: YouTube
140
+ linkedin: LinkedIn
138
141
 
139
142
  spina/attachment:
140
143
  created_at: Oluşturulma zamanı
@@ -152,6 +152,9 @@ zh-CN:
152
152
  facebook: Facebook
153
153
  twitter: Twitter
154
154
  google_plus: Google+
155
+ instagram: Instagram
156
+ youtube: YouTube
157
+ linkedin: LinkedIn
155
158
 
156
159
  spina/attachment:
157
160
  created_at: 创建于
@@ -28,6 +28,7 @@ Spina::Engine.routes.draw do
28
28
  get 'media_library' => 'images#index', as: "media_library"
29
29
 
30
30
  resources :pages do
31
+ get :children, on: :member
31
32
  post :sort, on: :collection
32
33
  end
33
34