adminpanel 2.6.1 → 3.0.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 (91) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/adminpanel.gemspec +6 -6
  4. data/app/assets/images/adminpanel/magnifier.png +0 -0
  5. data/app/assets/javascripts/adminpanel/bootstrap-data-confirm.coffee.erb +142 -0
  6. data/app/assets/javascripts/adminpanel/dom-filter.coffee +15 -0
  7. data/app/assets/javascripts/adminpanel/dropzone.js +1728 -0
  8. data/app/assets/javascripts/adminpanel/filter-side-menu.coffee +4 -0
  9. data/app/assets/javascripts/adminpanel/gallery.js.coffee.erb +79 -0
  10. data/app/assets/javascripts/adminpanel/realm.js +0 -3
  11. data/app/assets/stylesheets/adminpanel/_search-input.scss.erb +11 -0
  12. data/app/assets/stylesheets/adminpanel/bootstrap.css.erb +1 -1
  13. data/app/assets/stylesheets/adminpanel/dropzone.css +515 -0
  14. data/app/assets/stylesheets/adminpanel/theme.css.scss.erb +1 -1
  15. data/app/controllers/adminpanel/analytics_controller.rb +7 -51
  16. data/app/controllers/adminpanel/application_controller.rb +1 -0
  17. data/app/controllers/adminpanel/roles_controller.rb +4 -1
  18. data/app/controllers/adminpanel/sections_controller.rb +1 -7
  19. data/app/controllers/concerns/adminpanel/facebook_actions.rb +3 -0
  20. data/app/controllers/concerns/adminpanel/gallery_actions.rb +31 -0
  21. data/app/controllers/concerns/adminpanel/rest_actions.rb +4 -1
  22. data/app/helpers/adminpanel/analytics_helper.rb +8 -18
  23. data/app/helpers/adminpanel/application_helper.rb +10 -2
  24. data/app/helpers/adminpanel/router_helper.rb +6 -2
  25. data/app/helpers/adminpanel/shared_pages_helper.rb +5 -3
  26. data/app/models/adminpanel/analytic.rb +4 -0
  27. data/app/models/adminpanel/image.rb +31 -0
  28. data/app/models/adminpanel/sectionfile.rb +1 -3
  29. data/app/models/concerns/adminpanel/base.rb +51 -7
  30. data/app/models/concerns/adminpanel/sortable_gallery.rb +12 -17
  31. data/app/views/adminpanel/analytics/_header.html.erb +1 -1
  32. data/app/views/adminpanel/form/_adminpanel_file_field.html.erb +27 -23
  33. data/app/views/adminpanel/icons/_delete.html.erb +1 -0
  34. data/app/views/adminpanel/sections/edit.html.erb +1 -12
  35. data/app/views/adminpanel/shared/_form_fields.html.erb +1 -0
  36. data/app/views/adminpanel/templates/destroy.js.erb +3 -0
  37. data/app/views/adminpanel/templates/index.html.erb +4 -4
  38. data/app/views/adminpanel/templates/show.html.erb +57 -52
  39. data/app/views/layouts/adminpanel/_side_menu.html.erb +18 -3
  40. data/config/initializers/adminpanel/assets.rb +4 -0
  41. data/config/locales/en.yml +24 -9
  42. data/config/locales/es.yml +18 -33
  43. data/config/routes.rb +10 -5
  44. data/lib/adminpanel/version.rb +1 -1
  45. data/lib/generators/adminpanel/gallery/gallery_generator.rb +0 -8
  46. data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +7 -18
  47. data/lib/generators/adminpanel/gallery/templates/uploader.rb +1 -1
  48. data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +9 -5
  49. data/lib/generators/adminpanel/resource/resource_generator.rb +12 -16
  50. data/lib/generators/adminpanel/resource/resource_generator_helper.rb +23 -16
  51. data/test/dummy/.gitignore +2 -2
  52. data/test/dummy/app/controllers/adminpanel/products_controller.rb +1 -1
  53. data/test/dummy/app/models/adminpanel/galleryfile.rb +1 -13
  54. data/test/dummy/app/models/adminpanel/photo.rb +2 -9
  55. data/test/dummy/app/models/adminpanel/product.rb +1 -0
  56. data/test/dummy/config/initializers/carrierwave.rb +5 -0
  57. data/test/dummy/db/schema.rb +10 -18
  58. data/test/dummy/test/fixtures/adminpanel/galleries.yml +3 -3
  59. data/test/dummy/test/fixtures/adminpanel/images.yml +60 -0
  60. data/test/dummy/test/fixtures/adminpanel/products.yml +2 -2
  61. data/test/dummy/test/fixtures/{dog fries.png → attachments/dog-fries.png} +0 -0
  62. data/test/dummy/test/fixtures/attachments/hipster.jpg +0 -0
  63. data/test/dummy/test/fixtures/attachments/thumb_hipster.jpg +0 -0
  64. data/test/features/shared/form/belongs_to_remote_test.rb +1 -4
  65. data/test/features/shared/form/resource_field_test.rb +1 -1
  66. data/test/features/shared/resource/edit_test.rb +2 -5
  67. data/test/features/shared/resource/new_test.rb +5 -2
  68. data/test/features/shared/ui/dropzone_element_generation_test.rb +27 -0
  69. data/test/features/shared/ui/filtering_test.rb +29 -0
  70. data/test/generators/gallery_generator_test.rb +0 -10
  71. data/test/generators/resource_generator_test.rb +30 -6
  72. data/test/helpers/shared_pages_helper_test.rb +22 -43
  73. data/test/models/adminpanel/image_test.rb +31 -0
  74. data/test/models/adminpanel/sortable_gallery_unit_test.rb +8 -8
  75. data/test/support/view_case.rb +2 -2
  76. metadata +53 -43
  77. data/app/assets/images/adminpanel/dialogs.png +0 -0
  78. data/app/assets/images/adminpanel/icons-big.png +0 -0
  79. data/app/assets/images/adminpanel/icons-small.png +0 -0
  80. data/app/assets/images/adminpanel/select2.png +0 -0
  81. data/app/assets/images/adminpanel/select2x2.png +0 -0
  82. data/app/assets/images/adminpanel/toolbar.png +0 -0
  83. data/app/assets/javascripts/adminpanel/jquery.knob.js +0 -652
  84. data/app/assets/javascripts/adminpanel/jquery.masonry.min.js +0 -10
  85. data/app/assets/javascripts/adminpanel/jquery.slimscroll.min.js +0 -14
  86. data/app/views/adminpanel/analytics/_fb_statistic_widget.html.erb +0 -63
  87. data/app/views/adminpanel/analytics/fb.html.erb +0 -106
  88. data/test/dummy/config/carrierwave.rb +0 -6
  89. data/test/dummy/public/favicon.ico +0 -0
  90. data/test/dummy/test/fixtures/adminpanel/galleryfiles.yml +0 -42
  91. data/test/features/shared/ui/max_images_gallery_test.rb +0 -51
@@ -14,25 +14,25 @@ module Adminpanel
14
14
  true
15
15
  end
16
16
 
17
- def in_better_position(current_position, new_position, relation_id)
17
+ def in_better_position(current_position, new_position, record_id)
18
18
  where(
19
19
  'position >= ? AND position < ?',
20
20
  new_position,
21
21
  current_position
22
22
  ).where(
23
- relation_field => relation_id
24
- # => 'product_id' => member.product_id
23
+ model_id: record_id,
24
+ type: self.to_s
25
25
  )
26
26
  end
27
27
 
28
- def in_worst_position(current_position, new_position, relation_id)
28
+ def in_worst_position(current_position, new_position, record_id)
29
29
  where(
30
30
  'position > ? AND position <= ?',
31
31
  current_position,
32
32
  new_position
33
33
  ).where(
34
- relation_field => relation_id
35
- # => 'product_id' => member.product_id
34
+ model_id: record_id,
35
+ type: self.to_s
36
36
  )
37
37
  end
38
38
  end
@@ -43,14 +43,14 @@ module Adminpanel
43
43
  self.class.in_better_position(
44
44
  self.position,
45
45
  new_position,
46
- self.send(self.class.relation_field)
46
+ self.model_id
47
47
  ).update_all('position = position + 1')
48
48
  else
49
49
  # search for worster elements and upgrade them
50
50
  self.class.in_worst_position(
51
51
  self.position,
52
52
  new_position,
53
- self.send(self.class.relation_field)
53
+ self.model_id
54
54
  ).update_all('position = position - 1')
55
55
  end
56
56
  self.update(position: new_position)
@@ -65,21 +65,16 @@ module Adminpanel
65
65
 
66
66
  def rearrange_positions
67
67
  self.class.where(
68
- self.class.relation_field => self.send(
69
- self.class.relation_field
70
- )
71
- ).where(
72
68
  'position > ?',
73
69
  self.position
70
+ ).where(
71
+ model_id: self.model_id,
72
+ model_type: self.model_type
74
73
  ).update_all('position = position - 1')
75
74
  end
76
75
 
77
76
  def set_position
78
- last_record = self.class.where(
79
- self.class.relation_field => self.send(
80
- self.class.relation_field
81
- )
82
- ).ordered.last
77
+ last_record = self.class.ordered.last
83
78
  if last_record.nil?
84
79
  self.position = 1
85
80
  else
@@ -4,7 +4,7 @@
4
4
  <%= link_to google_analytics_path, class: 'spinner-link' do %>
5
5
  <i class="fa fa-google"></i>
6
6
  <% end %>
7
- <%= link_to fb_analytics_path, class: 'spinner-link' do %>
7
+ <%= link_to fb_insights(@fb_auth), target: '_blank' do %>
8
8
  <i class="fa fa-facebook"></i>
9
9
  <% end %>
10
10
  <%= link_to twitter_analytics_path, class: 'spinner-link' do %>
@@ -1,24 +1,28 @@
1
- <% if !is_modal %>
2
- <!-- if not making resource from other form -->
3
- <%= content_tag(
4
- :div,
5
- class: 'file-collection-container',
6
- data: {
7
- max: properties['max-files'].nil? ? 0 : properties['max-files']
8
- }
9
- ) do %>
10
- <%= f.fields_for(attribute) do |builder| %>
11
- <%= render 'adminpanel/shared/image_fields', f: builder %>
12
- <% end -%>
1
+ <div class="zone-container">
2
+ <div class="zone-label">
3
+ <%= properties['label'] %>
4
+ </div>
13
5
 
14
- <% if (
15
- properties['max-files'].to_i != 0 &&
16
- properties['max-files'].to_i <= f.object.send(@model.gallery_relationship).count.to_i
17
- ) %>
18
- <% hidden = 'hidden' %>
19
- <% else %>
20
- <% hidden = 'not-hidden' %>
21
- <% end %>
22
- <%= link_to_add_fields I18n.t('Add Image'), f, attribute, hidden %>
23
- <% end %>
24
- <% end %>
6
+ <div class="controls">
7
+ <div class="zone">
8
+ <div id='<%= "#{attribute.singularize}_dropzone" %>' data-max-files="<%= properties['max_files'] %>">
9
+ <i class="fa fa-cloud-upload"></i>
10
+ <div><%= I18n.t('dropzone.drag_here') %></div>
11
+ <span><%= I18n.t('dropzone.or') %></span>
12
+ <div class="selectFile">
13
+ <a href="#" class="btn"><%= I18n.t('dropzone.choose_files') %></a>
14
+ </div>
15
+ <p><%= I18n.t('dropzone.size_limit', file_size: '10 MB') %></p>
16
+ <% f.object.send(attribute).each do |attrib| %>
17
+ <%= hidden_field_tag "#{f.object.class.to_controller_name.singularize}[#{attribute.singularize}_ids][]",
18
+ attrib.id,
19
+ data: {
20
+ file_url: attrib.file_url(:thumb),
21
+ file_size: attrib.file_size,
22
+ file_name: attrib.file_identifier
23
+ } %>
24
+ <% end %>
25
+ </div>
26
+ </div>
27
+ </div>
28
+ </div>
@@ -10,6 +10,7 @@
10
10
  title: I18n.t('action.delete', resource: resource.name),
11
11
  id: 'resource-delete',
12
12
  method: :delete,
13
+ remote: true,
13
14
  data: {
14
15
  confirm: I18n.t('action.delete_confirmation', resource: resource.name)
15
16
  }
@@ -18,18 +18,7 @@
18
18
  <% end %>
19
19
 
20
20
  <% if @section.has_image %>
21
- <%= content_tag :div, class: 'file-collection-container', data: { max: @section.max_files } do %>
22
- <%= f.fields_for :sectionfiles do |builder| %>
23
- <%= render 'adminpanel/shared/image_fields', f: builder %>
24
- <% end -%>
25
-
26
- <% if @section.max_files != 0 && @section.max_files <= @section.sectionfiles.count %>
27
- <% visibility = 'hidden' %>
28
- <% else %>
29
- <% visibility = 'not-hidden' %>
30
- <% end %>
31
- <%= link_to_add_fields 'Agregar Imagen', f, :sectionfiles, visibility %>
32
- <% end %>
21
+ <%= render 'adminpanel/form/adminpanel_file_field', properties: { label: 'Imágenes', max_files: @section.max_files }, f: f, attribute: 'sectionfiles' %>
33
22
  <% end %>
34
23
  <% end %>
35
24
  <%= f.footer do %>
@@ -5,6 +5,7 @@
5
5
 
6
6
  <% properties = properties.except('type') %>
7
7
  <% if is_customized_field?(field_type) %><!-- SharedPagesHelper -->
8
+ <!-- Fields needing complex markups -->
8
9
  <%= render(
9
10
  "adminpanel/form/#{field_type}",
10
11
  f: f,
@@ -0,0 +1,3 @@
1
+ $row = $('tr[data-id="<%= @resource_instance.id -%>"]');
2
+ $row.fadeOut();
3
+ Turbolinks.cacheCurrentPage();
@@ -27,7 +27,7 @@
27
27
  </tr>
28
28
  </thead><!-- Ends model attributes -->
29
29
 
30
- <tbody id="<%= table_type(@model) %>">
30
+ <tbody id="<%= table_type(@model) %>" data-no-transition-cache>
31
31
  <% @collection = @collection.ordered if table_type(@model) == 'sortable' %>
32
32
  <% @collection.each do |member| %>
33
33
  <% cache ["#{member.class}-member", member] do %>
@@ -44,9 +44,9 @@
44
44
  <% end %>
45
45
  <% @model.display_attributes('index').each do |fields| %>
46
46
  <% fields.each do |attribute, properties| %>
47
- <td>
48
- <%= field_value(properties, attribute, member) %>
49
- </td>
47
+ <td>
48
+ <%= field_value(properties['type'], attribute, member) %><!-- SharedPagesHelper -->
49
+ </td>
50
50
  <% end %>
51
51
  <% end %>
52
52
  <td>
@@ -8,7 +8,7 @@
8
8
  ) %>
9
9
 
10
10
  <div class="row-fluid">
11
- <div class="widget span6">
11
+ <div class="widget span12">
12
12
  <div class="widget-header">
13
13
  <%= content_tag(:i, nil, class: "fa fa-#{@model.icon}") %>
14
14
  <h5>
@@ -34,7 +34,7 @@
34
34
  <h6><%= properties['label'] %></h6>
35
35
  </div>
36
36
  <div class="span8">
37
- <%= field_value(properties, attribute, @resource_instance) %>
37
+ <%= field_value(properties['type'], attribute, @resource_instance) %>
38
38
  </div>
39
39
  </li>
40
40
  <% end %>
@@ -43,57 +43,62 @@
43
43
  </div>
44
44
  </div>
45
45
  </div>
46
-
46
+ </div>
47
+ <div class="row-fluid">
47
48
  <% if @model.has_gallery? %>
48
- <div class="widget widget-padding span6">
49
- <div class="widget-header">
50
- <%= content_tag(:i, nil, class: "fa fa-#{@model.icon}") %>
51
- <h5><%= I18n.t('gallery.container') %>: <%= @model.display_name.humanize %>
52
- <%= render 'adminpanel/icons/edit', resource: @resource_instance %>
53
- </h5>
54
- </div>
55
- <% if @model.has_sortable_gallery? %>
56
- <div class="widget-body widget-tasks-assigned clearfix">
57
- <table class="table table-striped table-bordered">
58
- <thead>
59
- <tr>
60
- <td class="draggable-header"></td>
61
- <td><i class="fa fa-picture-o"></i></td>
62
- </tr>
63
- </thead>
64
- <tbody id="sortable">
65
- <% collection = @resource_instance.send(@model.gallery_relationship).ordered %>
66
- <% collection.each do |image| %>
67
- <tr
68
- data-id="<%= image.id %>"
69
- data-url="<%= url_for [:move_to_position, image] %>"
70
- >
71
- <td class="draggable img"><i class="fa fa-bars fa-2x"></i></td>
72
- <td>
73
- <%= link_to(
74
- image_tag(image.file_url(:thumb)),
75
- image.file.to_s,
76
- rel: "group",
77
- name: @model.display_name
78
- ) %>
79
- </td>
80
- </tr>
81
- <% end %>
82
- </tbody>
83
- </table>
49
+ <% @model.galleries.each do |gallery| %>
50
+ <% gallery_class = gallery.last.constantize %>
51
+ <% gallery_relationship = gallery.first.pluralize %>
52
+ <div class="gallery-widget widget widget-padding span6">
53
+ <div class="widget-header">
54
+ <%= content_tag(:i, nil, class: "fa fa-#{@model.icon}") %>
55
+ <h5><%= I18n.t('gallery.container') %>: <%= @model.display_name.humanize %>
56
+ <%= render 'adminpanel/icons/edit', resource: @resource_instance %>
57
+ </h5>
84
58
  </div>
85
- <% else %>
86
- <div class="widget-body row-fluid">
87
- <% @resource_instance.send(@model.gallery_relationship).each do |image| %>
88
- <%= link_to(
89
- image_tag( image.file_url(:thumb) ),
90
- image.file_url.to_s,
91
- rel: 'group',
92
- name: @model.display_name
93
- ) %>
94
- <% end %>
95
- </div>
96
- <% end %>
97
- </div>
59
+ <% if gallery_class.is_sortable? %>
60
+ <div class="widget-body widget-tasks-assigned clearfix">
61
+ <table class="table table-striped table-bordered">
62
+ <thead>
63
+ <tr>
64
+ <td class="draggable-header"></td>
65
+ <td><i class="fa fa-picture-o"></i></td>
66
+ </tr>
67
+ </thead>
68
+ <tbody id="sortable">
69
+ <% collection = @resource_instance.send(gallery_relationship).ordered %>
70
+ <% collection.each do |image| %>
71
+ <tr
72
+ data-id="<%= image.id %>"
73
+ data-url="<%= url_for [:move_to_position, image] %>"
74
+ >
75
+ <td class="draggable img"><i class="fa fa-bars fa-2x"></i></td>
76
+ <td>
77
+ <%= link_to(
78
+ image_tag(image.file_url(:thumb)),
79
+ image.file.to_s,
80
+ rel: "group",
81
+ name: gallery_class.display_name
82
+ ) %>
83
+ </td>
84
+ </tr>
85
+ <% end %>
86
+ </tbody>
87
+ </table>
88
+ </div>
89
+ <% else %>
90
+ <div class="widget-body row-fluid">
91
+ <% @resource_instance.send(gallery_relationship).each do |image| %>
92
+ <%= link_to(
93
+ image_tag( image.file_url(:thumb) ),
94
+ image.file_url.to_s,
95
+ rel: 'group',
96
+ name: @model.display_name
97
+ ) %>
98
+ <% end %>
99
+ </div>
100
+ <% end %>
101
+ </div>
102
+ <% end %>
98
103
  <% end %>
99
104
  </div>
@@ -10,11 +10,26 @@
10
10
  ) %>
11
11
  </div>
12
12
  <% end %>
13
- <div class="accordion">
13
+ <div class="accordion" id="search-modules">
14
+
15
+ <div class="accordion-group" data-no-filter="true">
16
+ <div class="accordion-heading">
17
+ <%= text_field_tag :text,
18
+ '',
19
+ class: 'search-input',
20
+ id: 'search-input',
21
+ placeholder: I18n.t('search.placeholder'),
22
+ autocomplete: :off,
23
+ autofocus: true
24
+ %>
25
+ </div>
26
+ </div>
27
+
14
28
  <% Adminpanel.displayable_resources.each do |resource| %>
15
29
  <% resource_class = symbol_class(resource) %>
16
- <% if can?(:read, resource_class) || can?( :publish, resource_class) %>
17
- <div class="accordion-group">
30
+ <% if resource_class.has_route?(:index) && (can?(:read, resource_class) || can?( :publish, resource_class)) %>
31
+
32
+ <div class="accordion-group" data-filter="<%= resource_class.collection_name -%>">
18
33
  <div class="accordion-heading">
19
34
  <%= link_to(
20
35
  [route_symbol(resource.to_s)],
@@ -0,0 +1,4 @@
1
+ Rails.application.config.assets.precompile += %w(
2
+ adminpanel/favicon.ico
3
+ adminpanel/codn.png
4
+ )
@@ -1,6 +1,6 @@
1
1
  en:
2
2
  model:
3
- Analytic: 'Google Analytics'
3
+ Analytic: 'Analytics'
4
4
  Categories: 'Categories'
5
5
  User: 'User'
6
6
  Role: 'Role'
@@ -41,7 +41,7 @@ en:
41
41
  Add Image: 'Add Image'
42
42
  wysiwyg:
43
43
  description: 'Write descrition here...'
44
- Panel title: 'Panel Administrativo'
44
+ panel-title: 'Admin Panel'
45
45
  permission:
46
46
  0: 'Read'
47
47
  to_read: 'To see'
@@ -62,18 +62,20 @@ en:
62
62
  position: 'Position'
63
63
  action:
64
64
  add: 'Add %{resource}'
65
- create: 'Create %{resource}'
65
+ cancel: Cancelar
66
66
  close: 'Close'
67
+ confirm: Confirmar
68
+ create: 'Create %{resource}'
69
+ delete_confirmation: "Are you sure you wan't to delete?"
70
+ delete: Delete
71
+ is_false: No
72
+ is_true: Yes
73
+ save_success: 'Has been saved successfully'
74
+ save: 'Save %{resource}'
67
75
  show: 'Show'
68
76
  submitting: 'Submitting...'
69
- save: 'Save %{resource}'
70
- save_success: 'Has been saved successfully'
71
77
  update: 'Update %{resource}'
72
- delete: 'Delete'
73
78
  view: 'View'
74
- delete_confirmation: "Are you sure you wan't to delete?"
75
- is_true: 'Yes'
76
- is_false: 'No'
77
79
  authentication:
78
80
  logout: 'Log out'
79
81
  login: 'Log in'
@@ -120,5 +122,18 @@ en:
120
122
  show: 'show'
121
123
  signout: 'signout'
122
124
  signin: 'signin'
125
+ add_to_gallery: 'add-to-galeria'
126
+ remove_image: 'delete-image'
123
127
  breadcrumb:
124
128
  index: 'Index'
129
+ dropzone:
130
+ drag_here: 'Drag here the files you wish to upload'
131
+ choose_files: 'Choose your files manually'
132
+ size_limit: 'File size limit: %{file_size}'
133
+ or: 'OR'
134
+ remove_file: 'Remove file'
135
+ cancel_upload: 'Cancela Upload'
136
+ cancel_upload_confirmation: 'Do you wish to cancel the upload?'
137
+ max_files_reached: 'You can not upload any more files'
138
+ search:
139
+ placeholder: Search
@@ -3,16 +3,14 @@ es:
3
3
  form:
4
4
  server_file: 'El archivo en el servidor es: %{file}'
5
5
  model:
6
- Analytic: 'Google Analytics'
6
+ Analytic: 'Analytics'
7
7
  Role: 'Rol'
8
8
  User: 'Usuario'
9
9
  Permission: 'Permisos'
10
10
  Section: 'Sección'
11
11
  attributes:
12
- adminproject_id: 'Proyecto'
13
12
  brief: 'Pequeña descripción'
14
13
  body: 'Contenido'
15
- client_id: 'Cliente'
16
14
  description: 'Descripción'
17
15
  email: 'Correo electrónico'
18
16
  file: 'Imagen'
@@ -44,7 +42,7 @@ es:
44
42
  Add Image: 'Agregar Imagen'
45
43
  wysiwyg:
46
44
  description: 'Escriba la descripción aquí'
47
- Panel title: 'Panel Administrativo'
45
+ panel-title: 'Panel Administrativo'
48
46
  permission:
49
47
  0: 'Ver'
50
48
  to_read: 'Ver'
@@ -65,7 +63,9 @@ es:
65
63
  position: 'Posición'
66
64
  action:
67
65
  add: 'Agregar %{resource}'
66
+ cancel: Cancelar
68
67
  close: 'Cerrar'
68
+ confirm: Confirmar
69
69
  create: 'Crear %{resource}'
70
70
  delete_confirmation: 'Estás seguro que desea eliminar %{resource}?'
71
71
  delete: 'Eliminar'
@@ -122,18 +122,16 @@ es:
122
122
  retweet: 'retweet'
123
123
  comment: 'comentar'
124
124
  publish: 'publicar-a-%{location}'
125
+ move_to_position: 'mover-posicion'
125
126
  facebook_page: 'pagina-en-facebook'
126
127
  new: 'nuevo'
127
128
  edit: 'editar'
128
129
  show: 'ver'
129
130
  signout: 'cerrar-sesion'
130
131
  signin: 'iniciar-sesion'
132
+ add_to_gallery: 'agregar-a-galeria'
133
+ remove_image: 'eliminar-image'
131
134
  analytics:
132
- day: 'Hoy'
133
- days_28: 'el mes'
134
- now: 'Ahora'
135
- week: 'Semana'
136
- month: 'Mes'
137
135
  search: 'Buscar'
138
136
  impressions: 'Impresiones'
139
137
  unique: 'Únicas'
@@ -143,30 +141,6 @@ es:
143
141
  twitter: 'Estadísticas de Twitter'
144
142
  said: 'dijo'
145
143
  explanation: 'Explicación de las métricas'
146
- description:
147
- page_stories: '(Periodo) El número de historias creadas acerca de tu página (Cuenta total)'
148
- page_consumptions: '(Periodo) El número de clicks en cualquiera de tus contenidos. Clicks generando historias están incluidos en otros clicks. Historias generadas sin clicks en la página (e.g., Darle like a la página en el `Timeline`) no son incluidos. (Cuenta total)'
149
- page_consumptions_unique: '(Periodo) El número de clicks de usuarios diferentes en cualquiera de tus contenidos. Clicks generando historias están incluidos en otros clicks. Historias generadas sin clicks en la página (e.g., Darle like a la página en el `Timeline`) no son incluidos. (Usuarios únicos)'
150
- page_views: '(Hoy) El total de vistas a la página (Cuenta total)'
151
- page_views_unique: '(Hoy) El total de vistas a la página de usuarios loggeados en Facebook (Usuarios únicos)'
152
- page_negative_feedback: '(Periodo) El número de veces que la gente te ha dado retroalimentación negativa (Unlike o Escoder página o post)(Cuenta total)'
153
- page_negative_feedback_unique: '(Periodo) El número de personas que te ha dado retroalimentación negativa (Unlike o Escoder página o post)(Usuarios únicos)'
154
- page_fans: '(Total) El número total de personas que ha dado like(me gusta) a la página (Usuarios únicos)'
155
- page_fan_adds: '(Hoy) El número total de personas nuevas que le ha gustado tu página (Cuenta total)'
156
- page_impressions_unique: '(Periodo) El número de personas que han visto cualquier contenido asociado con tu página (Usuarios únicos)'
157
- page_impressions: '(Período) El número de impresiones vistas de cualquier contenido asociado con la página. (Cuenta Total)'
158
- metrics:
159
- page_stories: 'Hablando de esto'
160
- page_consumptions: 'Clicks Totales'
161
- page_consumptions_unique: 'Clicks de usuarios únicos'
162
- page_views: 'Vistas a la página'
163
- page_views_unique: 'Vistas de usuarios únicos a la página'
164
- page_negative_feedback: 'Acciones negativas'
165
- page_negative_feedback_unique: 'Acciones negativas de personas diferentes'
166
- page_fans: 'Likes Totales'
167
- page_fan_adds: 'Likes Nuevos'
168
- page_impressions_unique: 'Impresiones de página de personas diferentes'
169
- page_impressions: 'Impresiones de página'
170
144
  fb:
171
145
  posted: 'Publicado en el muro de %{user}'
172
146
  confirm_page: 'Seleccionar Cuenta'
@@ -183,3 +157,14 @@ es:
183
157
  saved_token: 'Log in con Twitter exitoso, ya puedes publicar con la cuenta de Twitter'
184
158
  breadcrumb:
185
159
  index: 'Inicio'
160
+ dropzone:
161
+ drag_here: 'Arrastre aqui los archivos que desea cargar'
162
+ choose_files: 'Elija sus archivos manualmente'
163
+ size_limit: 'Tamaño máximo de archivo: %{file_size}'
164
+ or: 'O'
165
+ remove_file: 'Eliminar'
166
+ cancel_upload: 'Cancelar'
167
+ cancel_upload_confirmation: 'Deseas cancelar la carga?'
168
+ max_files_reached: 'Ha cargado el número máximo de archivos admitidos por esta sección'
169
+ search:
170
+ placeholder: Buscar