adminpanel 1.2.12 → 2.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 (127) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +3 -4
  3. data/Gemfile +22 -20
  4. data/README.md +12 -9
  5. data/adminpanel.gemspec +29 -28
  6. data/app/assets/fonts/.keep +0 -0
  7. data/app/assets/javascripts/adminpanel/images_form.js +5 -2
  8. data/app/assets/javascripts/adminpanel/imagesloaded.js +5 -2
  9. data/app/assets/javascripts/adminpanel/tables.js +6 -3
  10. data/app/assets/javascripts/application-admin.js +2 -1
  11. data/app/assets/stylesheets/adminpanel/{_clearfix.css.scss → _clearfix.css} +0 -0
  12. data/app/assets/stylesheets/adminpanel/bootstrap.css +2 -2
  13. data/app/assets/stylesheets/adminpanel/medium-editor.css.scss +1 -1
  14. data/app/assets/stylesheets/application-admin.css +2 -1
  15. data/app/controllers/adminpanel/application_controller.rb +28 -21
  16. data/app/controllers/adminpanel/categories_controller.rb +16 -5
  17. data/app/controllers/adminpanel/galleries_controller.rb +11 -5
  18. data/app/controllers/adminpanel/sections_controller.rb +14 -0
  19. data/app/controllers/adminpanel/users_controller.rb +10 -80
  20. data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +33 -0
  21. data/app/controllers/concerns/adminpanel/rest_actions.rb +109 -0
  22. data/app/helpers/adminpanel/application_helper.rb +0 -1
  23. data/app/helpers/adminpanel/custom_form_builder.rb +12 -13
  24. data/app/helpers/adminpanel/router_helper.rb +11 -2
  25. data/app/helpers/adminpanel/shared_pages_helper.rb +0 -1
  26. data/app/models/adminpanel/analytic.rb +3 -2
  27. data/app/models/adminpanel/gallery.rb +8 -4
  28. data/app/models/adminpanel/group.rb +1 -1
  29. data/app/models/adminpanel/image.rb +1 -2
  30. data/app/models/adminpanel/section.rb +19 -10
  31. data/app/models/adminpanel/user.rb +11 -3
  32. data/app/models/concerns/adminpanel/base.rb +149 -0
  33. data/app/models/concerns/adminpanel/galleryzation.rb +66 -0
  34. data/app/models/contact.rb +16 -9
  35. data/app/views/adminpanel/analytics/index.html.erb +2 -1
  36. data/app/views/adminpanel/categories/_categories_table.html.erb +6 -7
  37. data/app/views/adminpanel/categories/_category_form.html.erb +2 -2
  38. data/app/views/adminpanel/categories/create.js.erb +2 -2
  39. data/app/views/adminpanel/categories/index.html.erb +1 -1
  40. data/app/views/adminpanel/galleries/_galleries_table.html.erb +7 -7
  41. data/app/views/adminpanel/galleries/index.html.erb +6 -5
  42. data/app/views/adminpanel/sections/_sections_table.html.erb +2 -2
  43. data/app/views/adminpanel/sections/edit.html.erb +5 -3
  44. data/app/views/adminpanel/sections/show.html.erb +3 -3
  45. data/app/views/adminpanel/sessions/new.html.erb +1 -1
  46. data/app/views/layouts/_side_menu.html.erb +2 -2
  47. data/app/views/layouts/_top_bar.html.erb +3 -3
  48. data/app/views/layouts/admin-login.html.erb +0 -1
  49. data/app/views/layouts/admin.html.erb +3 -3
  50. data/app/views/shared/_delete_icon_button.html.erb +16 -0
  51. data/app/views/shared/_edit_icon_button.html.erb +14 -0
  52. data/app/views/shared/_error_messages.html.erb +1 -1
  53. data/app/views/shared/_form_fields.html.erb +15 -13
  54. data/app/views/shared/_gallery_entries.html.erb +2 -2
  55. data/app/views/shared/_init_editor.html.erb +5 -2
  56. data/app/views/shared/_new_resource_button.html.erb +18 -0
  57. data/app/views/shared/_remote_form_fields.html.erb +1 -1
  58. data/app/views/shared/_show_icon_button.html.erb +14 -0
  59. data/app/views/shared/edit.html.erb +3 -3
  60. data/app/views/shared/index.html.erb +13 -48
  61. data/app/views/shared/new.html.erb +3 -3
  62. data/app/views/shared/show.html.erb +5 -5
  63. data/config/initializers/pluralization_es.rb +16 -0
  64. data/config/locales/en.yml +89 -0
  65. data/config/locales/es.yml +4 -4
  66. data/config/routes.rb +15 -16
  67. data/lib/adminpanel.rb +8 -8
  68. data/lib/adminpanel/version.rb +1 -1
  69. data/lib/generators/adminpanel/gallery/gallery_generator.rb +12 -8
  70. data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +2 -3
  71. data/lib/generators/adminpanel/initialize/templates/category_template.rb +2 -3
  72. data/lib/generators/adminpanel/resource/resource_generator.rb +24 -18
  73. data/lib/generators/adminpanel/resource/templates/controller.rb +5 -0
  74. data/lib/generators/adminpanel/resource/templates/resource.rb +3 -3
  75. data/lib/tasks/adminpanel/adminpanel.rake +43 -90
  76. data/spec/dummy/app/controllers/adminpanel/mugs_controller.rb +9 -0
  77. data/spec/dummy/app/controllers/adminpanel/products_controller.rb +12 -0
  78. data/spec/dummy/app/models/ability.rb +1 -1
  79. data/spec/dummy/app/models/adminpanel/categorization.rb +1 -2
  80. data/spec/dummy/app/models/adminpanel/category.rb +18 -19
  81. data/spec/dummy/app/models/adminpanel/mug.rb +37 -0
  82. data/spec/dummy/app/models/adminpanel/photo.rb +3 -3
  83. data/spec/dummy/app/models/adminpanel/product.rb +2 -2
  84. data/spec/dummy/config/application.rb +2 -11
  85. data/spec/dummy/config/database.yml +0 -6
  86. data/spec/dummy/config/environments/development.rb +11 -23
  87. data/spec/dummy/config/environments/production.rb +40 -32
  88. data/spec/dummy/config/environments/test.rb +13 -18
  89. data/spec/dummy/config/initializers/adminpanel_setup.rb +2 -1
  90. data/spec/dummy/config/locales/.keep +0 -0
  91. data/spec/dummy/db/schema.rb +68 -2
  92. data/spec/features/authentication_pages_spec.rb +15 -15
  93. data/spec/features/galleries_pages_spec.rb +30 -22
  94. data/spec/features/section_pages_spec.rb +15 -18
  95. data/spec/features/shared_pages_spec.rb +97 -127
  96. data/spec/generators/gallery_generator_spec.rb +2 -3
  97. data/spec/generators/resource_generator_spec.rb +20 -3
  98. data/spec/models/gallery_spec.rb +2 -2
  99. data/spec/models/section_spec.rb +8 -15
  100. data/spec/models/user_spec.rb +23 -39
  101. data/spec/spec_helper.rb +9 -1
  102. data/spec/support/factories.rb +52 -0
  103. data/spec/support/helper_methods.rb +25 -5
  104. data/spec/tasks/adminpanel_rake_spec.rb +11 -10
  105. metadata +361 -353
  106. data/app/assets/fonts/FontAwesome.otf +0 -0
  107. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  108. data/app/assets/fonts/fontawesome-webfont.svg +0 -255
  109. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  110. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  111. data/app/assets/stylesheets/adminpanel/colorpicker.css +0 -7
  112. data/app/assets/stylesheets/adminpanel/elfinder.min.css +0 -59
  113. data/app/assets/stylesheets/adminpanel/font-awesome.min.css +0 -34
  114. data/app/helpers/adminpanel/pluralizations_helper.rb +0 -25
  115. data/app/helpers/adminpanel/rest_actions_helper.rb +0 -128
  116. data/app/views/adminpanel/galleries/delete.html.erb +0 -2
  117. data/app/views/adminpanel/galleries/edit.html.erb +0 -19
  118. data/app/views/adminpanel/galleries/new.html.erb +0 -18
  119. data/app/views/adminpanel/galleries/show.html.erb +0 -18
  120. data/app/views/adminpanel/galleries/update.html.erb +0 -2
  121. data/lib/adminpanel/active_record/adminpanel_extension.rb +0 -187
  122. data/spec/dummy/config/locales/en.yml +0 -5
  123. data/spec/support/define_factory_models.rb +0 -45
  124. data/spec/support/submit_forms_without_button.rb +0 -17
  125. data/spec/support/test_database.rb +0 -76
  126. data/spec/uploaders/gallery_uploader_spec.rb +0 -37
  127. data/spec/uploaders/image_uploader_spec.rb +0 -31
@@ -1,6 +1,6 @@
1
1
  module Adminpanel
2
2
  class User < ActiveRecord::Base
3
- attr_accessible :email, :name, :password, :password_confirmation, :group_id
3
+ include Adminpanel::Base
4
4
  has_secure_password
5
5
  belongs_to :group
6
6
 
@@ -85,13 +85,21 @@ module Adminpanel
85
85
 
86
86
  end
87
87
 
88
+ def User.new_remember_token
89
+ SecureRandom.urlsafe_base64
90
+ end
91
+
92
+ def User.digest(token)
93
+ Digest::SHA1.hexdigest(token.to_s)
94
+ end
95
+
88
96
  def self.icon
89
- 'icon-user'
97
+ 'user'
90
98
  end
91
99
 
92
100
  private
93
101
  def create_remember_token
94
- self.remember_token = SecureRandom.base64.tr("+/", "-_")
102
+ self.remember_token = User.digest(User.new_remember_token)
95
103
  end
96
104
  end
97
105
  end
@@ -0,0 +1,149 @@
1
+ module Adminpanel
2
+ module Base
3
+ extend ActiveSupport::Concern
4
+ #instance methods
5
+ # static(class) methods
6
+ module ClassMethods
7
+
8
+ def mount_images(relation)
9
+ has_many relation, :dependent => :destroy
10
+ accepts_nested_attributes_for relation, :allow_destroy => true
11
+ end
12
+
13
+ def form_attributes
14
+ [{
15
+ 'name' => {
16
+ 'type' => 'text_field',
17
+ 'label' => 'name'
18
+ }
19
+ }]
20
+ end
21
+
22
+ def display_name
23
+ 'please overwrite self.display_name'
24
+ end
25
+
26
+ def get_attribute_label(field)
27
+ form_attributes.each do |attribute|
28
+ attribute.each do |name, properties|
29
+ if name == field
30
+ return properties["label"]
31
+ end
32
+ end
33
+ end
34
+ return "field #{field} 'label' property not found :("
35
+ end
36
+
37
+ def get_attribute_placeholder(field)
38
+ form_attributes.each do |attribute|
39
+ attribute.each do |name, properties|
40
+ if name == field
41
+ return properties['placeholder']
42
+ end
43
+ end
44
+ end
45
+ return "field #{field} 'placeholder' property not found :("
46
+ end
47
+
48
+ def display_attributes(type)
49
+ display_attributes = []
50
+ form_attributes.each do |attribute|
51
+ attribute.each do |name, properties|
52
+ if properties['show'].nil? ||
53
+ properties['show'] == 'true' ||
54
+ properties['show'] == type
55
+ display_attributes << attribute
56
+ end
57
+ end
58
+ end
59
+
60
+ return display_attributes
61
+ end
62
+
63
+ def has_images?
64
+ form_attributes.each do |fields|
65
+ fields.each do |attribute, properties|
66
+ if properties['type'] == 'adminpanel_file_field'
67
+ return true
68
+ end
69
+ end
70
+ end
71
+ return false
72
+ end
73
+
74
+ def get_image_relationship
75
+ form_attributes.each do |fields|
76
+ fields.each do |attribute, properties|
77
+ if properties['type'] == 'adminpanel_file_field'
78
+ return attribute
79
+ end
80
+ end
81
+ end
82
+ return false
83
+ end
84
+
85
+ def belongs_to_relationships
86
+ belongs_to_classes = []
87
+ form_attributes.each do |fields|
88
+ fields.each do |attribute, properties|
89
+ if properties['type'] == 'belongs_to'
90
+ belongs_to_classes << properties['model'].classify.constantize
91
+ end
92
+ end
93
+ end
94
+ return belongs_to_classes
95
+ end
96
+
97
+ def has_many_relationships
98
+ has_many_classes = []
99
+ form_attributes.each do |fields|
100
+ fields.each do |attribute, properties|
101
+ if properties['type'] == 'has_many'
102
+ has_many_classes << properties['model'].classify.constantize
103
+ end
104
+ end
105
+ end
106
+ return has_many_classes
107
+ end
108
+
109
+ def icon
110
+ 'truck'
111
+ end
112
+
113
+ def gallery_children
114
+ nil
115
+ end
116
+
117
+ def routes_options
118
+ { path: display_name.pluralize(I18n.default_locale).downcase }
119
+ end
120
+
121
+ def has_route?(route)
122
+ if (!exlude?(route)) && include_route(route)
123
+ true
124
+ else
125
+ false
126
+ end
127
+ end
128
+
129
+ private
130
+ def exlude?(route)
131
+ if routes_options[:except].nil?
132
+ false
133
+ elsif routes_options[:except].include?(route)
134
+ true
135
+ else
136
+ false
137
+ end
138
+ end
139
+
140
+ def include_route(route)
141
+ if routes_options[:only].nil? || routes_options[:only].include?(route)
142
+ true
143
+ else
144
+ false
145
+ end
146
+ end
147
+ end
148
+ end
149
+ end
@@ -0,0 +1,66 @@
1
+ module Adminpanel
2
+ module Galleryzation
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ before_create :set_position
7
+ before_destroy :rearrange_positions
8
+ default_scope { order("position ASC")}
9
+ end
10
+
11
+ def move_to_better_position
12
+ if self.position > 1
13
+ conflicting_gallery = get_conflicting_gallery(position - 1)
14
+
15
+ self.update_attribute(:position, self.position - 1)
16
+
17
+ conflicting_gallery.update_attribute(
18
+ :position, conflicting_gallery.position + 1
19
+ )
20
+ true
21
+ else
22
+ false
23
+ end
24
+ end
25
+
26
+ def move_to_worst_position
27
+ records = self.class.count
28
+ if self.position < records
29
+ conflicting_gallery = get_conflicting_gallery(position + 1)
30
+
31
+ update_attribute(:position, self.position + 1)
32
+
33
+ conflicting_gallery.update_attribute(
34
+ :position, conflicting_gallery.position - 1
35
+ )
36
+ true
37
+ else
38
+ false
39
+ end
40
+ end
41
+
42
+ private
43
+ def get_conflicting_gallery(conflicting_position)
44
+ self.class.where(
45
+ self.class.relation_field => self.send(self.class.relation_field)
46
+ ).find_by_position(conflicting_position)
47
+ end
48
+
49
+ def rearrange_positions
50
+ unarranged_galleries = self.class.where(self.class.relation_field => self.send(self.class.relation_field)).where("position > ?", self.position)
51
+ unarranged_galleries.each do |gallery|
52
+ gallery.update_attribute(:position, gallery.position - 1)
53
+ end
54
+
55
+ end
56
+
57
+ def set_position
58
+ last_record = self.class.where(self.class.relation_field => self.send(self.class.relation_field)).last
59
+ if last_record.nil?
60
+ self.position = 1
61
+ else
62
+ self.position = last_record.position + 1
63
+ end
64
+ end
65
+ end
66
+ end
@@ -2,22 +2,29 @@ class Contact
2
2
  include ActiveModel::Validations
3
3
  include ActiveModel::Conversion
4
4
  extend ActiveModel::Naming
5
-
5
+
6
6
  attr_accessor :name, :email, :subject, :body
7
-
8
- validates_presence_of :name
9
- validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
10
- validates_presence_of :email
11
- validates_presence_of :subject
12
- validates_presence_of :body
7
+
8
+ validates_presence_of :name, message: "#{I18n.t('model.attributes.name')} #{I18n.t('activerecord.errors.messages.blank')}"
9
+ VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
10
+ validates_format_of :email, :with => VALID_EMAIL_REGEX, message: "#{I18n.t('model.attributes.email')} #{I18n.t('activerecord.errors.messages.invalid')}"
11
+ validates_presence_of :body, message: "#{I18n.t('model.attributes.body')} #{I18n.t('activerecord.errors.messages.blank')}"
13
12
 
14
13
  def initialize(attributes = {})
15
14
  attributes.each do |name, value|
16
15
  send("#{name}=", value)
17
16
  end
18
17
  end
19
-
18
+
19
+ def self.display_name
20
+ 'Correo'
21
+ end
22
+
23
+ def self.get_attribute_label(label)
24
+ return label
25
+ end
26
+
20
27
  def persisted?
21
28
  false
22
29
  end
23
- end
30
+ end
@@ -1,10 +1,11 @@
1
+ <% provide(:page_title, "Google Analytics") -%>
1
2
  <% content_for :scripts do %>
2
3
  <%#= javascript_include_tag "adminpanel/analytics/analytics" %>
3
4
  <% end %>
4
5
  <div class="row-fluid">
5
6
  <div class="widget widget-padding span12">
6
7
  <div class="widget-header">
7
- <i class="icon-bar-chart"></i><h5>Estadísticas del Sitio</h5>
8
+ <i class="fa fa-dashboard"></i><h5>Estadísticas del Sitio</h5>
8
9
  </div>
9
10
  <%= content_tag "div", :id => "graphic-container", :class => "widget-body", :data => { :visits => @visits, :dates => @visitDates } do %>
10
11
  <% end %>
@@ -5,7 +5,7 @@
5
5
  content_tag(
6
6
  :i,
7
7
  nil,
8
- :class => 'icon-plus-sign icon-2x') +
8
+ :class => 'fa fa-plus-circle fa-2x') +
9
9
  content_tag(
10
10
  :span,
11
11
  I18n.t("action.create") + " #{@model.display_name} para #{model}",
@@ -36,12 +36,11 @@
36
36
  <tr>
37
37
  <td><%= link_to category.name, category_path(category) %></td>
38
38
  <td>
39
- <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_category_path(category), :title => "Editar" %>
40
- <%= link_to content_tag(:i, nil, :class => 'icon-remove'),
41
- [category],
42
- :title => "Editar",
43
- :method => :delete,
44
- :data => { :confirm => "Eliminar #{category.name}?"} %>
39
+ <%= render 'shared/show_icon_button', resource: category %>
40
+
41
+ <%= render 'shared/edit_icon_button', resource: category %>
42
+
43
+ <%= render 'shared/delete_icon_button', resource: category %>
45
44
  </td>
46
45
  </tr>
47
46
  <% end %>
@@ -1,4 +1,4 @@
1
- <%= custom_form_for(resource, :url => {:action => :create, :model => params[:model], :model_name => params[:model_name], :currentcontroller => params[:currentcontroller]}, :remote => true, :html => {:class => "form-horizontal", :id => "new-category-form"}) do |f| -%>
1
+ <%= custom_form_for(resource, :url => {:action => :create, :model => params[:model], :model_name => params[:model_name], :currentcontroller => params[:currentcontroller], :belongs_request => params[:belongs_request]}, :remote => true, :html => {:class => "form-horizontal", :id => "new-category-form"}) do |f| -%>
2
2
  <div class="row-fluid">
3
3
  <div class="modal-body">
4
4
  <%= render 'shared/error_messages', :object => resource %>
@@ -8,6 +8,6 @@
8
8
  </div>
9
9
  <div class="modal-footer">
10
10
  <button id="modal-button" class="btn" data-dismiss="modal" aria-hidden="true"><%= I18n.t('action.close') %></button>
11
- <%= f.submit t("action.add") + " " + @model.display_name, :disable_with => t("action.submitting"), :id =>"new-#{@model.name.demodulize}-button" %>
11
+ <%= f.submit t("action.add") + " " + @model.display_name, data:{:disable_with => t("action.submitting")}, :id =>"new-#{@model.name.demodulize}-button" %>
12
12
  </div>
13
13
  <% end -%>
@@ -1,7 +1,7 @@
1
1
  // $("#modal-button").trigger("click");
2
2
  $('#new-category').modal('toggle');
3
3
  row = "<tr><td><%= escape_javascript link_to resource.name, category_path(resource) %></td>";
4
- row = row + "<td><%= escape_javascript link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_category_path(category), :title => 'Editar' %> ";
5
- row = row + "<%= escape_javascript link_to content_tag(:i, nil, :class => 'icon-remove'),[category], :title => 'Editar', :method => :delete %></td>";
4
+ row = row + "<td><%= escape_javascript link_to content_tag(:i, nil, :class => 'fa fa-pencil'), edit_category_path(category), :title => 'Editar' %> ";
5
+ row = row + "<%= escape_javascript link_to content_tag(:i, nil, :class => 'fa fa-remove'),[category], :title => 'Editar', :method => :delete %></td>";
6
6
  row = row + "</tr>";
7
7
  $("#<%= resource.model %>-table").append(row);
@@ -10,7 +10,7 @@
10
10
  <li class = "<%= active_tab(index) %>">
11
11
  <%=
12
12
  link_to(
13
- (pluralize_es(category.model.capitalize)),
13
+ (category.model.capitalize.pluralize(I18n.default_locale)),
14
14
  "#tab#{index}",
15
15
  "data-toggle" => "tab"
16
16
  )
@@ -2,14 +2,14 @@
2
2
  <tr>
3
3
  <td><%= link_to image_tag(gallery.file_url(:thumb)), gallery_path(gallery) %></td>
4
4
  <td>
5
- <%= link_to content_tag(:i, nil, :class => "icon-chevron-up"), move_to_better_gallery_path(gallery), :method => :put, :remote => true %>
6
- <%= link_to content_tag(:i, nil, :class => "icon-chevron-down"), move_to_worst_gallery_path(gallery), :method => :put, :remote => true %>
5
+ <%= link_to content_tag(:i, nil, :class => "fa fa-chevron-up"), move_to_better_gallery_path(gallery), :method => :put, :remote => true %>
6
+ <%= link_to content_tag(:i, nil, :class => "fa fa-chevron-down"), move_to_worst_gallery_path(gallery), :method => :put, :remote => true %>
7
7
  </td>
8
8
  <td>
9
- <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_gallery_path(gallery), :title => t("action.update") %>
10
- <%= link_to content_tag(:i, nil, :class => 'icon-remove'), gallery_path(gallery), :title => t("action.delete"), :method => :delete,
11
- :data => { :confirm => t("action.delete confirmation") }
12
- %>
9
+ <%= render 'shared/show_icon_button', resource: gallery %>
10
+ <%= render 'shared/edit_icon_button', resource: gallery %>
11
+
12
+ <%= render 'shared/delete_icon_button', resource: gallery %>
13
13
  </td>
14
14
  </tr>
15
- <% end %>
15
+ <% end %>
@@ -1,4 +1,4 @@
1
- <%= provide(:page_title, t("model.Gallery")) %>
1
+ <%= provide(:page_title, @model.display_name.pluralize(I18n.default_locale)) %>
2
2
  <div class="row-fluid">
3
3
  <%=
4
4
  link_to(
@@ -7,7 +7,7 @@
7
7
  content_tag(
8
8
  :i,
9
9
  nil,
10
- :class => 'icon-plus-sign icon-2x'
10
+ :class => 'fa fa-plus-circle fa-2x'
11
11
  ) +
12
12
  content_tag(
13
13
  :span,
@@ -16,7 +16,8 @@
16
16
  ),
17
17
  :class => "btn btn-box span2"
18
18
  ),
19
- new_gallery_path
19
+ new_gallery_path,
20
+ data: { no_turbolink: true }
20
21
  )
21
22
  %>
22
23
  </div>
@@ -24,8 +25,8 @@
24
25
  <div class="row-fluid">
25
26
  <div class="widget widget-padding span12">
26
27
  <div class="widget-header">
27
- <i class="icon-picture"></i>
28
- <h5><%= t("model.Gallery") %></h5>
28
+ <%= content_tag :i, nil, class: "fa fa-#{@model.icon}" %>
29
+ <h5><%= @model.display_name.pluralize(I18n.default_locale) %></h5>
29
30
  </div>
30
31
  <div class="widget-body">
31
32
  <div class="dataTables_wrapper form-inline">
@@ -9,9 +9,9 @@
9
9
  <td><%= link_to section.name, section_path(section) %></td>
10
10
  <td><%= strip_tags section.description %></td>
11
11
  <td>
12
- <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_section_path(section), :title => "Editar" %>
12
+ <%= render 'shared/edit_icon_button', resource: section, resource_name: @model.display_name %>
13
13
  </td>
14
14
  </tr>
15
15
  <% end %>
16
16
 
17
- </table>
17
+ </table>
@@ -3,14 +3,16 @@
3
3
  <% breadcrumb_add(@section.name, section_path(@section)) %>
4
4
  <div class="row-fluid">
5
5
  <div class = "widget widget-padding span12">
6
- <div class = "widget-header"><i class = "icon-tasks"></i><h5><%= @section.name %></h5></div>
6
+ <div class = "widget-header"><i class = "fa fa-tasks"></i><h5><%= @section.name %></h5></div>
7
7
  <div class = "widget-body">
8
8
  <div class = "widget-forms clearfix">
9
9
  <%= custom_form_for(@section, :url => section_path(@section)) do |f| %>
10
10
  <%= render 'shared/error_messages', :object => @section %>
11
11
 
12
12
  <% if @section.has_description %>
13
- <%= f.hidden_field 'description', :id => "description-field", :value => @section.description %>
13
+ <div style="display:none;">
14
+ <%= f.hidden_field 'description', :id => "description-field", :value => @section.description %>
15
+ </div>
14
16
  <%= f.wysiwyg_field 'description', 'label' => I18n.t('section.description'), :name => 'description' %>
15
17
  <%= content_for :scripts do %>
16
18
  <script type="text/javascript">
@@ -33,7 +35,7 @@
33
35
  </div>
34
36
  </div>
35
37
  <div class = "widget-footer">
36
- <%= f.submit t("action.save"), :disable_with => t("action.submitting"), :id => "save-button" %>
38
+ <%= f.submit t("action.save"), data: {:disable_with => t("action.submitting")}, :id => "save-button" %>
37
39
  </div>
38
40
  <% end -%>
39
41
  </div>