adminpanel 0.0.5 → 0.0.6

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 (54) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +7 -0
  3. data/Gemfile +16 -9
  4. data/README.md +12 -1
  5. data/Rakefile +3 -0
  6. data/adminpanel.gemspec +13 -9
  7. data/app/assets/stylesheets/adminpanel/theme.css +11 -3
  8. data/app/controllers/adminpanel/categories_controller.rb +1 -1
  9. data/app/controllers/adminpanel/products_controller.rb +1 -1
  10. data/app/controllers/adminpanel/sessions_controller.rb +5 -3
  11. data/app/helpers/adminpanel/application_helper.rb +1 -1
  12. data/app/models/adminpanel/section.rb +1 -0
  13. data/app/views/adminpanel/categories/index.html.erb +9 -9
  14. data/app/views/adminpanel/categories/new.html.erb +2 -2
  15. data/app/views/adminpanel/products/_image_fields.html.erb +1 -1
  16. data/app/views/adminpanel/products/_product_form.html.erb +4 -4
  17. data/app/views/adminpanel/products/edit.html.erb +1 -1
  18. data/app/views/adminpanel/products/index.html.erb +2 -6
  19. data/app/views/adminpanel/products/new.html.erb +1 -1
  20. data/app/views/adminpanel/sections/_image_fields.html.erb +1 -1
  21. data/app/views/adminpanel/sessions/new.html.erb +4 -4
  22. data/app/views/adminpanel/users/_user_form.html.erb +21 -0
  23. data/app/views/adminpanel/users/edit.html.erb +1 -17
  24. data/app/views/adminpanel/users/new.html.erb +1 -17
  25. data/app/views/layouts/_side_menu.html.erb +10 -11
  26. data/app/views/layouts/_top_bar.html.erb +2 -3
  27. data/app/views/layouts/admin-login.html.erb +27 -0
  28. data/app/views/layouts/admin.html.erb +2 -7
  29. data/app/views/shared/_error_messages.html.erb +2 -2
  30. data/config/database.yml +24 -0
  31. data/config/locales/es.yml +81 -181
  32. data/lib/adminpanel/version.rb +1 -1
  33. data/spec/dummy/.gitignore +0 -2
  34. data/spec/dummy/config/application.rb +2 -1
  35. data/spec/dummy/config/database.yml +24 -0
  36. data/spec/dummy/config/routes.rb +1 -1
  37. data/spec/features/authentication_pages_spec.rb +44 -0
  38. data/spec/features/categories_pages_spec.rb +44 -0
  39. data/spec/features/product_pages_spec.rb +53 -0
  40. data/spec/models/{adminpanel/category_spec.rb → category_spec.rb} +0 -1
  41. data/spec/models/{adminpanel/gallery_spec.rb → gallery_spec.rb} +0 -1
  42. data/spec/models/{adminpanel/image_uploader.rb → image_uploader.rb} +0 -1
  43. data/spec/models/{adminpanel/product_spec.rb → product_spec.rb} +0 -1
  44. data/spec/models/{adminpanel/section_spec.rb → section_spec.rb} +0 -1
  45. data/spec/models/{adminpanel/user_spec.rb → user_spec.rb} +0 -1
  46. data/spec/spec_helper.rb +7 -4
  47. data/spec/support/define_factory_models.rb +17 -0
  48. data/spec/support/helper_methods.rb +11 -0
  49. data/spec/support/submit_forms_without_button.rb +17 -0
  50. data/spec/uploaders/{adminpanel/gallery_uploader_spec.rb → gallery_uploader_spec.rb} +0 -0
  51. data/spec/uploaders/{adminpanel/image_uploader_spec.rb → image_uploader_spec.rb} +0 -0
  52. data/spec/uploaders/{adminpanel/section_uploader_spec.rb → section_uploader_spec.rb} +0 -0
  53. metadata +119 -149
  54. data/app/views/adminpanel/users/_form.html.erb +0 -33
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA512:
3
+ data.tar.gz: da08a9e643114230cacbf2c777edb198ef0fcdabaa5715e8f867931f513a909658cc5ccc7c46a835edc20370929d9ab442c7959edf03369f1809ad15c2dfccf7
4
+ metadata.gz: 0bd2c489b74f7d28e3984a248efd018dec4279e28d5ed84a801edfb647bf239509eacf0b403a8aea20e794aaad2f9dd0a1131437981ea42eac5582d784124059
5
+ SHA1:
6
+ data.tar.gz: 3a587ada3b82f1222a7d88520cbceed119383e9b
7
+ metadata.gz: 23cb1d56c4ade057b41987c51f3e862dbe874bbd
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ notifications:
3
+ email: false
4
+ rvm:
5
+ - "1.8.7"
6
+ env:
7
+ - RAILS=3.2.12
data/Gemfile CHANGED
@@ -3,15 +3,22 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in adminpanel.gemspec
4
4
  # gemspec
5
5
 
6
- gem "rails", "3.2.12"
7
- gem "carrierwave", "0.9.0"
8
- gem "rmagick", "2.13.2"
9
- gem "ckeditor", "4.0.6"
10
- gem "jquery-rails", "3.0.4"
11
- gem "bcrypt-ruby", "3.0.0"
12
- gem "rails-i18n", "3.0.0"
6
+ gem "rails", "~> 3.2.12"
7
+ gem "carrierwave", "~> 0.9.0"
8
+ gem "rmagick", "~> 2.13.2"
9
+ gem "jquery-rails", "~> 3.0.4"
10
+ gem "bcrypt-ruby", "~> 3.0.0"
11
+ gem "rails-i18n", "~> 3.0.0"
13
12
 
14
13
  group :test do
15
- gem "rspec", "2.11.0"
16
- gem "sqlite3"
14
+ gem "bundler", "~> 1.3"
15
+ gem "activerecord", "3.2.12"
16
+ gem "rspec", "2.14.0"
17
+ gem "rspec-rails"
18
+ gem "sqlite3", :platform => [:ruby, :mswin, :mingw]
19
+ gem "rake"
20
+ gem "factory_girl", "2.6.4"
21
+ gem "capybara", "1.1.4"
22
+ gem "nokogiri", "1.5.9"
23
+ gem "rubyzip", "0.9.9"
17
24
  end
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  This gem is developed to be a CMS for Ruby 1.8.7 and Rails 3.2.12
4
4
 
5
+ [![Travis CI ](https://api.travis-ci.org/joseramonc/adminpanel.png) ](https://travis-ci.org/joseramonc/adminpanel)
6
+
5
7
  ## Installation
6
8
 
7
9
  Add this line to your application's Gemfile:
@@ -29,7 +31,11 @@ Then run:
29
31
  rake db:migrate
30
32
  to create the database that the adminpanel it's expecting.
31
33
 
32
- Any doubt feel free to ask me!
34
+ Then, mount the gem wherever you like!
35
+
36
+ mount Adminpanel::Engine => "/admin"
37
+
38
+ Any doubts or errors feel free to ask me!
33
39
 
34
40
  ## Contributing
35
41
 
@@ -38,3 +44,8 @@ Any doubt feel free to ask me!
38
44
  3. Commit your changes (`git commit -am 'Add some feature'`)
39
45
  4. Push to the branch (`git push origin my-new-feature`)
40
46
  5. Create new Pull Request
47
+
48
+ ## To Do:
49
+
50
+ 1. Add english support
51
+ 2. Add the medium editor to the custom builder so it inits itself
data/Rakefile CHANGED
@@ -1 +1,4 @@
1
1
  require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+ task :default => :spec
4
+ RSpec::Core::RakeTask.new
data/adminpanel.gemspec CHANGED
@@ -19,17 +19,21 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ["lib", "app/assets"]
20
20
 
21
21
 
22
- spec.add_dependency "rails", "3.2.12"
23
- spec.add_dependency "carrierwave", "0.9.0"
24
- spec.add_dependency "rmagick", "2.13.2"
25
- spec.add_dependency "ckeditor", "4.0.6"
26
- spec.add_dependency "jquery-rails", "3.0.4"
27
- spec.add_dependency "bcrypt-ruby", "3.0.0"
28
- spec.add_dependency "rails-i18n", "3.0.0"
22
+ spec.add_dependency "rails", "~> 3.2.12"
23
+ spec.add_dependency "carrierwave", "~> 0.9.0"
24
+ spec.add_dependency "rmagick", "~> 2.13.2"
25
+ spec.add_dependency "jquery-rails", "~> 3.0.4"
26
+ spec.add_dependency "bcrypt-ruby", "~> 3.0.0"
27
+ spec.add_dependency "rails-i18n", "~> 3.0.0"
29
28
 
30
29
  spec.add_development_dependency "bundler", "~> 1.3"
31
- spec.add_development_dependency "activerecord", "3.2.12"
30
+ spec.add_development_dependency "activerecord", "~> 3.2.12"
32
31
  spec.add_development_dependency "rake"
33
32
  spec.add_development_dependency "sqlite3"
34
- spec.add_development_dependency "rspec", "2.11.0"
33
+ spec.add_development_dependency "factory_girl_rails", "2.6.4"
34
+ spec.add_development_dependency "rspec", "~> 2.14.0"
35
+ spec.add_development_dependency "rspec-rails", "~> 2.14.0"
36
+ spec.add_development_dependency "capybara", "1.1.4"
37
+ spec.add_development_dependency "nokogiri", "1.5.9"
38
+ spec.add_development_dependency "rubyzip", "0.9.9"
35
39
  end
@@ -34,13 +34,20 @@ input.focused{
34
34
  position: relative;
35
35
  z-index: 2;
36
36
  }
37
- input.error, input.error:focus{
37
+
38
+ .field_with_errors > input {
38
39
  border-color: rgba(226, 119, 90, 0.6);
39
40
  outline: 0 none;
40
41
  position: relative;
41
42
  z-index: 2;
43
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset, 0 0 8px rgba(226, 119, 90, 0.6);
42
44
  }
43
- input.error:focus{
45
+
46
+ .field_with_errors > select {
47
+ border-color: rgba(226, 119, 90, 0.6);
48
+ outline: 0 none;
49
+ position: relative;
50
+ z-index: 2;
44
51
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset, 0 0 8px rgba(226, 119, 90, 0.6);
45
52
  }
46
53
  input.warning, input.warning:focus{
@@ -1560,4 +1567,5 @@ table.table thead .sorting_desc_disabled { background: url('sort_desc_disabled.p
1560
1567
  .logo {
1561
1568
  margin: 0 90px 0 15px;
1562
1569
  }
1563
- }
1570
+ }
1571
+
@@ -11,7 +11,7 @@ module Adminpanel
11
11
  def create
12
12
  @category = Category.new(params[:category])
13
13
  if @category.save
14
- redirect_to categories_path, :notice => "La categoria ha sido guardada"
14
+ redirect_to categories_path, :notice => t("category.success")
15
15
  else
16
16
  render "new"
17
17
  end
@@ -47,7 +47,7 @@ module Adminpanel
47
47
 
48
48
  respond_to do |format|
49
49
  if @product.save
50
- format.html { redirect_to product_path(@product), :notice => 'Product was successfully created.' }
50
+ format.html { redirect_to product_path(@product), :notice => t("product.success") }
51
51
  format.json { render :json => product_path(@product), :status => :created, :location => @product }
52
52
  else
53
53
  @categories = Category.all.collect{|c| [ c.name, c.id ] }
@@ -1,5 +1,7 @@
1
1
  module Adminpanel
2
2
  class SessionsController < Adminpanel::ApplicationController
3
+
4
+ layout "login"
3
5
  layout 'sessions'
4
6
  skip_before_filter :signed_in_user
5
7
 
@@ -10,17 +12,17 @@ module Adminpanel
10
12
  user = User.find_by_email(params[:session][:email].downcase)
11
13
  if user && user.authenticate(params[:session][:password])
12
14
  sign_in user
13
- flash[:success] = "Bienvenido!"
15
+ flash[:success] = t("authentication.signin success")
14
16
  redirect_to root_url
15
17
  else
16
- flash.now[:error] = "Password Incorrecto"
18
+ flash.now[:error] = t("authentication.signin error")
17
19
  render 'new'
18
20
  end
19
21
  end
20
22
 
21
23
  def destroy
22
24
  sign_out
23
- redirect_to root_url
25
+ redirect_to signin_path
24
26
  end
25
27
  end
26
28
  end
@@ -9,7 +9,7 @@ module Adminpanel
9
9
  end
10
10
 
11
11
  def full_title(page_title)
12
- base_title = "Super admin"
12
+ base_title = t("Panel title")
13
13
  if page_title.empty?
14
14
  base_title
15
15
  else
@@ -8,6 +8,7 @@ module Adminpanel
8
8
  mount_uploader :file, Adminpanel::SectionUploader
9
9
  validates_length_of :description, :minimum => 10, :maximum => 10, :on => :update, :if => lambda{|section| section.key == "telephone"}
10
10
  validates_presence_of :description, :minimum => 9, :on => :update, :if => lambda{|section| section.has_description == true}
11
+ validates :description, :numericality => { :only_integer => true }, :on => :update, :if => lambda{|section| section.key == "telephone"}
11
12
  validates_presence_of :key
12
13
  validates_presence_of :name
13
14
 
@@ -4,9 +4,10 @@
4
4
  <%=
5
5
  link_to(
6
6
  content_tag(:div,
7
- content_tag(:i, nil, :class => 'icon-plus-sign icon-2x') + content_tag(:span, 'Agregar Categoria', nil),
7
+ content_tag(:i, nil, :class => 'icon-plus-sign icon-2x') + content_tag(:span, t("category.new"), nil),
8
8
  :class => "btn btn-box span2"),
9
- new_category_path
9
+ new_category_path,
10
+ :id => "new-category-button"
10
11
  )
11
12
  %>
12
13
  </div>
@@ -24,23 +25,22 @@
24
25
  <thead>
25
26
  <tr>
26
27
  <th>Nombre</th>
27
- <% #if can? :manage, Client %>
28
28
  <th>Acción</th>
29
- <% #end %>
30
29
  </tr>
31
30
  </thead>
32
31
  <tbody>
33
32
  <% @categories.each do |category| %>
34
33
  <tr>
35
34
  <td><%= category.name %></td>
36
- <% #if can? :manage, category %>
37
35
  <td>
38
- <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_category_path(category), :title => "Editar"%>
39
- <%= link_to content_tag(:i, nil, :class => 'icon-remove'), category_path(category), :title => "Borrar", :method => :delete,
40
- :data => { :confirm => "Seguro?" }
36
+ <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_category_path(category), :title => t("action.edit") %>
37
+ <%= link_to content_tag(:i, nil, :class => 'icon-remove'), category_path(category),
38
+ :title => t("action.delete"),
39
+ :id => "category-delete",
40
+ :method => :delete,
41
+ :data => { :confirm => "Seguro?" }
41
42
  %>
42
43
  </td>
43
- <% #end %>
44
44
  </tr>
45
45
  <% end %>
46
46
  </tbody>
@@ -1,4 +1,4 @@
1
- <% provide(:page_title, "Nueva") %>
1
+ <% provide(:page_title, t("category.new")) %>
2
2
  <% breadcrumb_add('Categorias', products_path) %>
3
3
  <div class="row-fluid">
4
4
  <div class = "widget widget-padding span12">
@@ -11,7 +11,7 @@
11
11
  </div>
12
12
  </div>
13
13
  <div class = "widget-footer">
14
- <%= f.submit "Agregar", :disable_with => 'Submiting...' %>
14
+ <%= f.submit "Agregar", :disable_with => 'Submiting...', :id =>"new-category-button" %>
15
15
  </div>
16
16
  <% end -%>
17
17
  </div>
@@ -15,7 +15,7 @@
15
15
  <%=
16
16
  content_tag(
17
17
  :button,
18
- t("Delete"),
18
+ t("action.delete"),
19
19
  :class => "btn btn-danger remove_fields"
20
20
  )
21
21
  %>
@@ -2,11 +2,11 @@
2
2
  <div class = "widget-forms clearfix">
3
3
  <%= custom_form_for(@product, {:class => "form-horizontal"}) do |f| %>
4
4
  <%= render 'shared/error_messages', :object => @product %>
5
- <%= f.text_field :name, :label => t("model.attributes.product.Name"), :placeholder => t("Name of product") %>
6
- <%= f.text_field :brief, :label => t("Short description"), :placeholder => t("Short description of product") %>
5
+ <%= f.text_field :name, :label => t("model.attributes.Adminpanel::Product.name"), :placeholder => t("model.attributes.Adminpanel::Product.name") %>
6
+ <%= f.text_field :brief, :label => t("model.attributes.Adminpanel::Product.brief"), :placeholder => t("model.attributes.Adminpanel::Product.brief") %>
7
7
 
8
8
  <div class="control-group">
9
- <label class="control-label"><%= t "Description" %></label>
9
+ <label class="control-label"><%= t("Description") %></label>
10
10
  <div class="controls">
11
11
  <%= f.hidden_field :description, :id => "description-field" %>
12
12
  <% if @product.description.nil? %>
@@ -26,6 +26,6 @@
26
26
  </div>
27
27
  </div>
28
28
  <div class = "widget-footer">
29
- <%= f.submit t("Save"), :disable_with => 'Submiting...', :id => "save-button" %>
29
+ <%= f.submit t("action.save"), :disable_with => 'Submiting...', :id => "save-button" %>
30
30
  </div>
31
31
  <% end -%>
@@ -1,4 +1,4 @@
1
- <% provide(:page_title, t("Edit")) %>
1
+ <% provide(:page_title, t("action.edit")) %>
2
2
  <% breadcrumb_add(t("model.Products"), products_path) %>
3
3
  <% breadcrumb_add(@product.name, product_path(@product)) %>
4
4
  <div class="row-fluid">
@@ -1,16 +1,14 @@
1
1
  <%= provide(:page_title, "Productos") %>
2
- <% #if can? :create, Client %>
3
2
  <div class="row-fluid">
4
3
  <%=
5
4
  link_to(
6
5
  content_tag(:div,
7
- content_tag(:i, nil, :class => 'icon-plus-sign icon-2x') + content_tag(:span, 'Agregar Producto', nil),
6
+ content_tag(:i, nil, :class => 'icon-plus-sign icon-2x') + content_tag(:span, t("product.new"), nil),
8
7
  :class => "btn btn-box span2"),
9
8
  new_product_path
10
9
  )
11
10
  %>
12
11
  </div>
13
- <% #end %>
14
12
 
15
13
  <div class="row-fluid">
16
14
  <div class="widget widget-padding span12">
@@ -25,9 +23,7 @@
25
23
  <tr>
26
24
  <th>Nombre</th>
27
25
  <th>Descripción</th>
28
- <% #if can? :manage, Client %>
29
- <th>Acción</th>
30
- <% #end %>
26
+ <th>Acción</th>
31
27
  </tr>
32
28
  </thead>
33
29
  <tbody>
@@ -1,4 +1,4 @@
1
- <% provide(:page_title, t("New")) %>
1
+ <% provide(:page_title, t("product.new")) %>
2
2
  <% breadcrumb_add(t("model.Products"), products_path) %>
3
3
  <div class="row-fluid">
4
4
  <div class = "widget widget-padding span12">
@@ -15,7 +15,7 @@
15
15
  <%=
16
16
  content_tag(
17
17
  :button,
18
- t("Delete"),
18
+ t("action.delete"),
19
19
  :class => "btn btn-danger remove_fields"
20
20
  )
21
21
  %>
@@ -3,7 +3,7 @@
3
3
  <div class="widget container-narrow">
4
4
  <div class="widget-header">
5
5
  <i class="icon-user"></i>
6
- <h5>Bienvenido! Inicia Sesion</h5>
6
+ <h5><%= t("authentication.welcome") %></h5>
7
7
  </div>
8
8
  <div class="widget-body clearfix" style="padding:25px;">
9
9
  <% flash.each do |key, value| %>
@@ -12,15 +12,15 @@
12
12
  <%= form_for(:session, :url => sessions_path) do |f| %>
13
13
  <div class="control-group">
14
14
  <div class="controls">
15
- <%= f.email_field :email, :class => "btn-block", :id => "inputEmail" , :placeholder => "Correo" %>
15
+ <%= f.text_field :email, :class => "btn-block", :id => "inputEmail" , :placeholder => "Correo" %>
16
16
  </div>
17
17
  </div>
18
18
  <div class="control-group">
19
19
  <div class="controls">
20
- <%= f.password_field :password, :class => "btn-block", :id => "inputPassword", :placeholder => "Contrasena" %>
20
+ <%= f.password_field :password, :class => "btn-block", :id => "inputPassword", :placeholder => t("Password") %>
21
21
  </div>
22
22
  </div>
23
- <%= f.submit "Iniciar Sesión", :class => "btn pull-right" %>
23
+ <%= f.submit "Iniciar Sesión", :class => "btn pull-right", :id => "signin-button" %>
24
24
  <% end %>
25
25
  </div>
26
26
  </div>
@@ -0,0 +1,21 @@
1
+ <div class = "widget widget-padding span12">
2
+ <div class = "widget-header"><i class = "icon-user"></i><h5>Usuario</h5></div>
3
+ <div class = "widget-body">
4
+ <div class = "widget-forms clearfix">
5
+ <%= custom_form_for(@user) do |f| %>
6
+ <%= render 'shared/error_messages', :object => @user %>
7
+
8
+ <%= f.text_field :name, :label => "Nombre", :placeholder => "Nombre del usuario" %>
9
+
10
+ <%= f.text_field :email, :label => t("model.attributes.Adminpanel::User.email"), :placeholder => t("model.attributes.Adminpanel::User.email") %>
11
+
12
+ <%= f.password_field :password, :label => t("model.attributes.Adminpanel::User.password"), :placeholder => t("model.attributes.Adminpanel::User.password") %>
13
+
14
+ <%= f.password_field :password_confirmation, :label => t("model.attributes.Adminpanel::User.password_confirmation"), :placeholder => t("model.attributes.Adminpanel::User.password_confirmation") %>
15
+ </div>
16
+ </div>
17
+ <div class = "widget-footer">
18
+ <%= f.submit "Agregar", :disable_with => 'Submiting...' %>
19
+ </div>
20
+ <% end -%>
21
+ </div>
@@ -2,21 +2,5 @@
2
2
  <% breadcrumb_add('Usuarios', users_path) %>
3
3
  <% breadcrumb_add(@user.name, user_path(@user)) %>
4
4
  <div class="row-fluid">
5
- <div class = "widget widget-padding span12">
6
- <div class = "widget-header"><i class = "icon-user"></i><h5>Usuario</h5></div>
7
- <div class = "widget-body">
8
- <div class = "widget-forms clearfix">
9
- <%= custom_form_for(@user, :url => user_path(@user)) do |f| %>
10
- <%= render 'shared/error_messages', :object => @user %>
11
- <%= f.text_field :name, :label => "Nombre", :placeholder => "Nombre del usuario" %>
12
- <%= f.text_field :email, :label => t("Email"), :placeholder => t("Email") %>
13
- <%= f.password_field :password, :label => t("Password"), :placeholder => t("Password") %>
14
- <%= f.password_field :password_confirmation, :label => "Confirmar", :placeholder => "Confirmar" %>
15
- </div>
16
- </div>
17
- <div class = "widget-footer">
18
- <%= f.submit "Agregar", :disable_with => 'Submiting...' %>
19
- </div>
20
- <% end -%>
21
- </div>
5
+ <%= render 'user_form' %>
22
6
  </div>
@@ -2,21 +2,5 @@
2
2
  <% breadcrumb_add('Usuarios', users_path) %>
3
3
 
4
4
  <div class="row-fluid">
5
- <div class = "widget widget-padding span12">
6
- <div class = "widget-header"><i class = "icon-user"></i><h5>Usuario</h5></div>
7
- <div class = "widget-body">
8
- <div class = "widget-forms clearfix">
9
- <%= custom_form_for(@user, :url => users_path) do |f| %>
10
- <%= render 'shared/error_messages', :object => @user %>
11
- <%= f.text_field :name, :label => "Nombre", :placeholder => "Nombre del usuario" %>
12
- <%= f.text_field :email, :label => t("Email"), :placeholder => t("Email") %>
13
- <%= f.password_field :password, :label => t("Password"), :placeholder => t("Password") %>
14
- <%= f.password_field :password_confirmation, :label => "Confirmar", :placeholder => "Confirmar" %>
15
- </div>
16
- </div>
17
- <div class = "widget-footer">
18
- <%= f.submit "Agregar", :disable_with => 'Submiting...' %>
19
- </div>
20
- <% end -%>
21
- </div>
5
+ <%= render 'user_form' %>
22
6
  </div>