adminpanel 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +13 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +34 -0
  5. data/Rakefile +1 -0
  6. data/adminpanel.gemspec +32 -0
  7. data/app/assets/fonts/.DS_Store +0 -0
  8. data/app/assets/fonts/FontAwesome.otf +0 -0
  9. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  10. data/app/assets/fonts/fontawesome-webfont.svg +255 -0
  11. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  12. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  13. data/app/assets/images/adminpanel/alpha.png +0 -0
  14. data/app/assets/images/adminpanel/arrows-active.png +0 -0
  15. data/app/assets/images/adminpanel/arrows-normal.png +0 -0
  16. data/app/assets/images/adminpanel/bgnoise.png +0 -0
  17. data/app/assets/images/adminpanel/crop.gif +0 -0
  18. data/app/assets/images/adminpanel/dialogs.png +0 -0
  19. data/app/assets/images/adminpanel/dotted.png +0 -0
  20. data/app/assets/images/adminpanel/favicon.ico +0 -0
  21. data/app/assets/images/adminpanel/glyphicons-halflings-white.png +0 -0
  22. data/app/assets/images/adminpanel/glyphicons-halflings.png +0 -0
  23. data/app/assets/images/adminpanel/gritter-light.png +0 -0
  24. data/app/assets/images/adminpanel/gritter-long.png +0 -0
  25. data/app/assets/images/adminpanel/gritter.png +0 -0
  26. data/app/assets/images/adminpanel/hue.png +0 -0
  27. data/app/assets/images/adminpanel/icons-big.png +0 -0
  28. data/app/assets/images/adminpanel/icons-small.png +0 -0
  29. data/app/assets/images/adminpanel/ie-spacer.gif +0 -0
  30. data/app/assets/images/adminpanel/odinn.jpg +0 -0
  31. data/app/assets/images/adminpanel/pattern.jpg +0 -0
  32. data/app/assets/images/adminpanel/pattern_transp.png +0 -0
  33. data/app/assets/images/adminpanel/progress.gif +0 -0
  34. data/app/assets/images/adminpanel/quicklook-bg.png +0 -0
  35. data/app/assets/images/adminpanel/quicklook-icons.png +0 -0
  36. data/app/assets/images/adminpanel/rails.png +0 -0
  37. data/app/assets/images/adminpanel/resize.png +0 -0
  38. data/app/assets/images/adminpanel/saturation.png +0 -0
  39. data/app/assets/images/adminpanel/select2.png +0 -0
  40. data/app/assets/images/adminpanel/select2x2.png +0 -0
  41. data/app/assets/images/adminpanel/sidebar.png +0 -0
  42. data/app/assets/images/adminpanel/sort_asc.png +0 -0
  43. data/app/assets/images/adminpanel/sort_asc_disabled.png +0 -0
  44. data/app/assets/images/adminpanel/sort_both.png +0 -0
  45. data/app/assets/images/adminpanel/sort_desc.png +0 -0
  46. data/app/assets/images/adminpanel/sort_desc_disabled.png +0 -0
  47. data/app/assets/images/adminpanel/spinner-mini.gif +0 -0
  48. data/app/assets/images/adminpanel/spinner.gif +0 -0
  49. data/app/assets/images/adminpanel/toolbar.png +0 -0
  50. data/app/assets/javascripts/adminpanel/bootstrap-datepicker.js +1159 -0
  51. data/app/assets/javascripts/adminpanel/bootstrap-timepicker.js +803 -0
  52. data/app/assets/javascripts/adminpanel/bootstrap.js +2170 -0
  53. data/app/assets/javascripts/adminpanel/imagesloaded.js +13 -0
  54. data/app/assets/javascripts/adminpanel/init_editor.js +28 -0
  55. data/app/assets/javascripts/adminpanel/jquery.dataTables.min.js +155 -0
  56. data/app/assets/javascripts/adminpanel/jquery.facybox.js +395 -0
  57. data/app/assets/javascripts/adminpanel/jquery.masonry.min.js +10 -0
  58. data/app/assets/javascripts/adminpanel/jquery.slimscroll.min.js +14 -0
  59. data/app/assets/javascripts/adminpanel/medium-editor.js +703 -0
  60. data/app/assets/javascripts/adminpanel/products.js +14 -0
  61. data/app/assets/javascripts/adminpanel/realm.js +90 -0
  62. data/app/assets/javascripts/adminpanel/tables.js +126 -0
  63. data/app/assets/javascripts/application-admin.js +16 -0
  64. data/app/assets/stylesheets/adminpanel/_clearfix.css.scss +8 -0
  65. data/app/assets/stylesheets/adminpanel/alertify.css +242 -0
  66. data/app/assets/stylesheets/adminpanel/bootstrap.css +6103 -0
  67. data/app/assets/stylesheets/adminpanel/colorpicker.css +7 -0
  68. data/app/assets/stylesheets/adminpanel/datepicker.css +9 -0
  69. data/app/assets/stylesheets/adminpanel/elfinder.min.css +59 -0
  70. data/app/assets/stylesheets/adminpanel/facybox.css +146 -0
  71. data/app/assets/stylesheets/adminpanel/font-awesome.min.css +34 -0
  72. data/app/assets/stylesheets/adminpanel/fullcalendar.css +618 -0
  73. data/app/assets/stylesheets/adminpanel/fullcalendar.print.css +61 -0
  74. data/app/assets/stylesheets/adminpanel/medium-editor.css.scss +1 -0
  75. data/app/assets/stylesheets/adminpanel/select2.css +524 -0
  76. data/app/assets/stylesheets/adminpanel/theme.css +1563 -0
  77. data/app/assets/stylesheets/adminpanel/timepicker.css +82 -0
  78. data/app/assets/stylesheets/application-admin.css +14 -0
  79. data/app/controllers/adminpanel/application_controller.rb +18 -0
  80. data/app/controllers/adminpanel/categories_controller.rb +41 -0
  81. data/app/controllers/adminpanel/galleries_controller.rb +45 -0
  82. data/app/controllers/adminpanel/products_controller.rb +87 -0
  83. data/app/controllers/adminpanel/sections_controller.rb +46 -0
  84. data/app/controllers/adminpanel/sessions_controller.rb +26 -0
  85. data/app/controllers/adminpanel/users_controller.rb +85 -0
  86. data/app/helpers/adminpanel/application_helper.rb +73 -0
  87. data/app/helpers/custom_form_builder.rb +219 -0
  88. data/app/models/adminpanel/category.rb +7 -0
  89. data/app/models/adminpanel/contact.rb +25 -0
  90. data/app/models/adminpanel/gallery.rb +10 -0
  91. data/app/models/adminpanel/image.rb +6 -0
  92. data/app/models/adminpanel/product.rb +24 -0
  93. data/app/models/adminpanel/section.rb +16 -0
  94. data/app/models/adminpanel/user.rb +35 -0
  95. data/app/uploaders/adminpanel/gallery_uploader.rb +56 -0
  96. data/app/uploaders/adminpanel/image_uploader.rb +63 -0
  97. data/app/uploaders/adminpanel/section_uploader.rb +56 -0
  98. data/app/views/adminpanel/.DS_Store +0 -0
  99. data/app/views/adminpanel/categories/edit.html.erb +18 -0
  100. data/app/views/adminpanel/categories/index.html.erb +55 -0
  101. data/app/views/adminpanel/categories/new.html.erb +18 -0
  102. data/app/views/adminpanel/categories/show.html.erb +0 -0
  103. data/app/views/adminpanel/galleries/create.html.erb +2 -0
  104. data/app/views/adminpanel/galleries/delete.html.erb +2 -0
  105. data/app/views/adminpanel/galleries/edit.html.erb +26 -0
  106. data/app/views/adminpanel/galleries/index.html.erb +60 -0
  107. data/app/views/adminpanel/galleries/new.html.erb +18 -0
  108. data/app/views/adminpanel/galleries/show.html.erb +18 -0
  109. data/app/views/adminpanel/galleries/update.html.erb +2 -0
  110. data/app/views/adminpanel/products/.DS_Store +0 -0
  111. data/app/views/adminpanel/products/_image_fields.html.erb +24 -0
  112. data/app/views/adminpanel/products/_product_form.html.erb +31 -0
  113. data/app/views/adminpanel/products/edit.html.erb +10 -0
  114. data/app/views/adminpanel/products/index.html.erb +57 -0
  115. data/app/views/adminpanel/products/new.html.erb +10 -0
  116. data/app/views/adminpanel/products/show.html.erb +61 -0
  117. data/app/views/adminpanel/sections/_image_fields.html.erb +24 -0
  118. data/app/views/adminpanel/sections/create.html.erb +2 -0
  119. data/app/views/adminpanel/sections/destroy.html.erb +2 -0
  120. data/app/views/adminpanel/sections/edit.html.erb +40 -0
  121. data/app/views/adminpanel/sections/index.html.erb +38 -0
  122. data/app/views/adminpanel/sections/new.html.erb +27 -0
  123. data/app/views/adminpanel/sections/show.html.erb +28 -0
  124. data/app/views/adminpanel/sections/update.html.erb +2 -0
  125. data/app/views/adminpanel/sessions/new.html.erb +26 -0
  126. data/app/views/adminpanel/users/_form.html.erb +33 -0
  127. data/app/views/adminpanel/users/edit.html.erb +22 -0
  128. data/app/views/adminpanel/users/index.html.erb +55 -0
  129. data/app/views/adminpanel/users/new.html.erb +22 -0
  130. data/app/views/adminpanel/users/show.html.erb +21 -0
  131. data/app/views/layouts/_shim.html.erb +4 -0
  132. data/app/views/layouts/_side_menu.html.erb +45 -0
  133. data/app/views/layouts/_top_bar.html.erb +43 -0
  134. data/app/views/layouts/admin.html.erb +45 -0
  135. data/app/views/shared/_breadcrumb.html.erb +6 -0
  136. data/app/views/shared/_error_messages.html.erb +17 -0
  137. data/config/locales/en.yml +5 -0
  138. data/config/locales/es.yml +202 -0
  139. data/config/routes.rb +11 -0
  140. data/lib/adminpanel.rb +8 -0
  141. data/lib/adminpanel/engine.rb +5 -0
  142. data/lib/adminpanel/version.rb +3 -0
  143. metadata +349 -0
@@ -0,0 +1,63 @@
1
+ # encoding: utf-8
2
+ module Adminpanel
3
+ class ImageUploader < CarrierWave::Uploader::Base
4
+
5
+ # Include RMagick or MiniMagick support:
6
+ include CarrierWave::RMagick
7
+ # include CarrierWave::MiniMagick
8
+
9
+ # Choose what kind of storage to use for this uploader:
10
+ storage :file
11
+ # storage :fog
12
+
13
+ def root
14
+ Rails.root.join 'public/'
15
+ end
16
+
17
+ # Override the directory where uploaded files will be stored.
18
+ # This is a sensible default for uploaders that are meant to be mounted:
19
+ def store_dir
20
+ "uploads/image/#{mounted_as}/#{model.id}"
21
+ end
22
+
23
+ # Provide a default URL as a default if there hasn't been a file uploaded:
24
+ # def default_url
25
+ # # For Rails 3.1+ asset pipeline compatibility:
26
+ # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
27
+ #
28
+ # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
29
+ # end
30
+
31
+ # Process files as they are uploaded:
32
+ process :resize_to_fill => [1366, 768]
33
+ #
34
+ # def scale(width, height)
35
+ # # do something
36
+ # end
37
+ version :portfolio do
38
+ process :resize_to_fill => [468, 312]
39
+ end
40
+
41
+ version :tiny do
42
+ process :resize_to_fill => [460, 307]
43
+ end
44
+
45
+ # Create different versions of your uploaded files:
46
+ version :thumb do
47
+ process :resize_to_limit => [220, 220]
48
+ end
49
+
50
+ # Add a white list of extensions which are allowed to be uploaded.
51
+ # For images you might use something like this:
52
+ def extension_white_list
53
+ %w(jpg jpeg png)
54
+ end
55
+
56
+ # Override the filename of the uploaded files:
57
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
58
+ # def filename
59
+ # "something.jpg" if original_filename
60
+ # end
61
+
62
+ end
63
+ end
@@ -0,0 +1,56 @@
1
+ # encoding: utf-8
2
+ module Adminpanel
3
+ class SectionUploader < CarrierWave::Uploader::Base
4
+
5
+ # Include RMagick or MiniMagick support:
6
+ include CarrierWave::RMagick
7
+ # include CarrierWave::MiniMagick
8
+
9
+ # Choose what kind of storage to use for this uploader:
10
+ storage :file
11
+ # storage :fog
12
+
13
+ def root
14
+ Rails.root.join 'public/'
15
+ end
16
+
17
+ # Override the directory where uploaded files will be stored.
18
+ # This is a sensible default for uploaders that are meant to be mounted:
19
+ def store_dir
20
+ "uploads/section/#{mounted_as}/#{model.id}"
21
+ end
22
+
23
+ # Provide a default URL as a default if there hasn't been a file uploaded:
24
+ # def default_url
25
+ # # For Rails 3.1+ asset pipeline compatibility:
26
+ # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_'))
27
+ #
28
+ # "/images/fallback/" + [version_name, "default.png"].compact.join('_')
29
+ # end
30
+
31
+ # Process files as they are uploaded:
32
+ # process :scale => [200, 300]
33
+ #
34
+ # def scale(width, height)
35
+ # # do something
36
+ # end
37
+
38
+ # Create different versions of your uploaded files:
39
+ version :thumb do
40
+ process :resize_to_limit => [460, 355]
41
+ end
42
+
43
+ # Add a white list of extensions which are allowed to be uploaded.
44
+ # For images you might use something like this:
45
+ def extension_white_list
46
+ %w(jpg jpeg png)
47
+ end
48
+
49
+ # Override the filename of the uploaded files:
50
+ # Avoid using model.id or version_name here, see uploader/store.rb for details.
51
+ # def filename
52
+ # "something.jpg" if original_filename
53
+ # end
54
+
55
+ end
56
+ end
Binary file
@@ -0,0 +1,18 @@
1
+ <% provide(:page_title, @category.name) %>
2
+ <% breadcrumb_add('Categorias', products_path) %>
3
+ <div class="row-fluid">
4
+ <div class = "widget widget-padding span12">
5
+ <div class = "widget-header"><i class = "icon-truck"></i><h5>Categoría</h5></div>
6
+ <div class = "widget-body">
7
+ <div class = "widget-forms clearfix">
8
+ <%= custom_form_for(@category, :url => category_path(@category), :html => {:class => "form-horizontal"}) do |f| %>
9
+ <%= render 'shared/error_messages', :object => @category %>
10
+ <%= f.text_field :name, :label => "Nombre", :placeholder => "Nombre de la categoria" %>
11
+ </div>
12
+ </div>
13
+ <div class = "widget-footer">
14
+ <%= f.submit "Agregar", :disable_with => 'Submiting...' %>
15
+ </div>
16
+ <% end -%>
17
+ </div>
18
+ </div>
@@ -0,0 +1,55 @@
1
+ <%= provide(:page_title, "Categorias") %>
2
+ <% #if can? :create, Client %>
3
+ <div class="row-fluid">
4
+ <%=
5
+ link_to(
6
+ content_tag(:div,
7
+ content_tag(:i, nil, :class => 'icon-plus-sign icon-2x') + content_tag(:span, 'Agregar Categoria', nil),
8
+ :class => "btn btn-box span2"),
9
+ new_category_path
10
+ )
11
+ %>
12
+ </div>
13
+ <% #end %>
14
+
15
+ <div class="row-fluid">
16
+ <div class="widget widget-padding span12">
17
+ <div class="widget-header">
18
+ <i class="icon-truck"></i>
19
+ <h5>Categorías</h5>
20
+ </div>
21
+ <div class="widget-body">
22
+ <div class="dataTables_wrapper form-inline">
23
+ <table id="information-table" class="table table-striped table-bordered dataTable">
24
+ <thead>
25
+ <tr>
26
+ <th>Nombre</th>
27
+ <% #if can? :manage, Client %>
28
+ <th>Acción</th>
29
+ <% #end %>
30
+ </tr>
31
+ </thead>
32
+ <tbody>
33
+ <% @categories.each do |category| %>
34
+ <tr>
35
+ <td><%= category.name %></td>
36
+ <% #if can? :manage, category %>
37
+ <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?" }
41
+ %>
42
+ </td>
43
+ <% #end %>
44
+ </tr>
45
+ <% end %>
46
+ </tbody>
47
+ </table>
48
+ <div class="row-fluid">
49
+ <div class="span6"></div>
50
+ <div class="span6"></div>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </div>
@@ -0,0 +1,18 @@
1
+ <% provide(:page_title, "Nueva") %>
2
+ <% breadcrumb_add('Categorias', products_path) %>
3
+ <div class="row-fluid">
4
+ <div class = "widget widget-padding span12">
5
+ <div class = "widget-header"><i class = "icon-truck"></i><h5>Categoría</h5></div>
6
+ <div class = "widget-body">
7
+ <div class = "widget-forms clearfix">
8
+ <%= custom_form_for(@category, :url => categories_path, :html => {:class => "form-horizontal"}) do |f| %>
9
+ <%= render 'shared/error_messages', :object => @category %>
10
+ <%= f.text_field :name, :label => "Nombre", :placeholder => "Nombre de la categoria" %>
11
+ </div>
12
+ </div>
13
+ <div class = "widget-footer">
14
+ <%= f.submit "Agregar", :disable_with => 'Submiting...' %>
15
+ </div>
16
+ <% end -%>
17
+ </div>
18
+ </div>
File without changes
@@ -0,0 +1,2 @@
1
+ <h1>Admin::Galleries#create</h1>
2
+ <p>Find me in app/views/admin/galleries/create.html.erb</p>
@@ -0,0 +1,2 @@
1
+ <h1>Admin::Galleries#delete</h1>
2
+ <p>Find me in app/views/admin/galleries/delete.html.erb</p>
@@ -0,0 +1,26 @@
1
+ <% provide(:page_title, "Editar") %>
2
+ <% breadcrumb_add(t("Gallery"), galleries_path) %>
3
+ <% breadcrumb_add('Imagen', gallery_path(@gallery)) %>
4
+ <div class="row-fluid">
5
+ <div class = "widget widget-padding span12">
6
+ <div class = "widget-header"><i class = "icon-picture"></i><h5>Imagen</h5></div>
7
+ <div class = "widget-body">
8
+ <div class = "widget-forms clearfix">
9
+ <%= custom_form_for(@gallery, :url => gallery_path(@gallery), :html => {:class => "form-horizontal"}) do |f| %>
10
+ <%= render 'shared/error_messages', :object => @gallery %>
11
+ <% if @gallery.file %>
12
+ <div class="controls">
13
+ <div class="control-group">
14
+ <%= image_tag @gallery.file_url(:thumb) %>
15
+ </div>
16
+ </div>
17
+ <% end %>
18
+ <%= f.custom_file_field :file, :label => "Imagen" -%>
19
+ </div>
20
+ </div>
21
+ <div class = "widget-footer">
22
+ <%= f.submit "Agregar", :disable_with => 'Submiting...' %>
23
+ </div>
24
+ <% end -%>
25
+ </div>
26
+ </div>
@@ -0,0 +1,60 @@
1
+ <%= provide(:page_title, t("Gallery")) %>
2
+ <div class="row-fluid">
3
+ <%=
4
+ link_to(
5
+ content_tag(
6
+ :div,
7
+ content_tag(
8
+ :i,
9
+ nil,
10
+ :class => 'icon-plus-sign icon-2x'
11
+ ) +
12
+ content_tag(
13
+ :span,
14
+ 'Agregar Imagen',
15
+ nil
16
+ ),
17
+ :class => "btn btn-box span2"
18
+ ),
19
+ new_gallery_path
20
+ )
21
+ %>
22
+ </div>
23
+
24
+ <div class="row-fluid">
25
+ <div class="widget widget-padding span12">
26
+ <div class="widget-header">
27
+ <i class="icon-picture"></i>
28
+ <h5>Galería de Inicio</h5>
29
+ </div>
30
+ <div class="widget-body">
31
+ <div class="dataTables_wrapper form-inline">
32
+ <table id="information-table" class="table table-striped table-bordered dataTable">
33
+ <thead>
34
+ <tr>
35
+ <th>Imagen</th>
36
+ <th>Acción</th>
37
+ </tr>
38
+ </thead>
39
+ <tbody>
40
+ <% @galleries.each do |gallery| %>
41
+ <tr>
42
+ <td><%= link_to image_tag(gallery.file_url(:thumb)), gallery_path(gallery) %></td>
43
+ <td>
44
+ <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_gallery_path(gallery), :title => "Editar"%>
45
+ <%= link_to content_tag(:i, nil, :class => 'icon-remove'), gallery_path(gallery), :title => "Borrar", :method => :delete,
46
+ :data => { :confirm => "Seguro?" }
47
+ %>
48
+ </td>
49
+ </tr>
50
+ <% end %>
51
+ </tbody>
52
+ </table>
53
+ <div class="row-fluid">
54
+ <div class="span6"></div>
55
+ <div class="span6"></div>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </div>
60
+ </div>
@@ -0,0 +1,18 @@
1
+ <% provide(:page_title, "Nueva Imagen") %>
2
+ <% breadcrumb_add(t("Gallery"), galleries_path) %>
3
+ <div class="row-fluid">
4
+ <div class = "widget widget-padding span12">
5
+ <div class = "widget-header"><i class = "icon-picture"></i><h5>Imagen</h5></div>
6
+ <div class = "widget-body">
7
+ <div class = "widget-forms clearfix">
8
+ <%= custom_form_for(@gallery, :url => galleries_path, :html => {:class => "form-horizontal"}) do |f| %>
9
+ <%= render 'shared/error_messages', :object => @gallery %>
10
+ <%= f.custom_file_field :file, :label => "Imagen" -%>
11
+ </div>
12
+ </div>
13
+ <div class = "widget-footer">
14
+ <%= f.submit "Agregar", :disable_with => 'Submiting...' %>
15
+ </div>
16
+ <% end -%>
17
+ </div>
18
+ </div>
@@ -0,0 +1,18 @@
1
+ <% provide(:page_title, 'Galeria de Inicio') %>
2
+ <% breadcrumb_add(t("Gallery"), galleries_path) %>
3
+
4
+ <div class="row-fluid">
5
+ <div class="widget widget-padding span12">
6
+ <div class="widget-header">
7
+ <i class="icon-picture"></i>
8
+ <h5>Galería de inicio
9
+ <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_gallery_path(@gallery), :title => "Editar Producto" %>
10
+ </h5>
11
+ </div>
12
+ <div class="widget-body row-fluid">
13
+ <div class="span12">
14
+ <%= image_tag @gallery.file_url %>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ </div>
@@ -0,0 +1,2 @@
1
+ <h1>Admin::Galleries#update</h1>
2
+ <p>Find me in app/views/admin/galleries/update.html.erb</p>
@@ -0,0 +1,24 @@
1
+ <div class="product-image">
2
+ <% unless f.object.new_record? %>
3
+ <div class="control-group">
4
+ <div class="controls">
5
+ <%= image_tag f.object.file_url(:thumb) %>
6
+ </div>
7
+ </div>
8
+ <% end %>
9
+ <div class="control-group">
10
+ <%= f.label t("model.Image"), :class => "control-label" %>
11
+ <div class="controls">
12
+ <%= f.file_field :file %>
13
+ <%= f.hidden_field :model, :value => model_name %>
14
+ <%= f.hidden_field :_destroy %>
15
+ <%=
16
+ content_tag(
17
+ :button,
18
+ t("Delete"),
19
+ :class => "btn btn-danger remove_fields"
20
+ )
21
+ %>
22
+ </div>
23
+ </div>
24
+ </div>
@@ -0,0 +1,31 @@
1
+ <div class = "widget-body">
2
+ <div class = "widget-forms clearfix">
3
+ <%= custom_form_for(@product, {:class => "form-horizontal"}) do |f| %>
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") %>
7
+
8
+ <div class="control-group">
9
+ <label class="control-label"><%= t "Description" %></label>
10
+ <div class="controls">
11
+ <%= f.hidden_field :description, :id => "description-field" %>
12
+ <% if @product.description.nil? %>
13
+ <%= content_tag(:div, @product.description, :class => "editable", "data-placeholder" => t("Write description here")) %>
14
+ <% else %>
15
+ <%= content_tag(:div, @product.description.html_safe, :class => "editable", "data-placeholder" => t("Write description here")) %>
16
+ <% end %>
17
+ </div>
18
+ </div>
19
+ <%= f.select :category_id, @categories, :label => t("model.Category") %>
20
+
21
+ <%= f.fields_for :images do |builder| %>
22
+ <%= render 'image_fields', :f => builder, :model_name => @product.simple_name %>
23
+ <% end -%>
24
+
25
+ <%= link_to_add_fields t("Add Image"), f, :images, @product.simple_name %>
26
+ </div>
27
+ </div>
28
+ <div class = "widget-footer">
29
+ <%= f.submit t("Save"), :disable_with => 'Submiting...', :id => "save-button" %>
30
+ </div>
31
+ <% end -%>
@@ -0,0 +1,10 @@
1
+ <% provide(:page_title, t("Edit")) %>
2
+ <% breadcrumb_add(t("model.Products"), products_path) %>
3
+ <% breadcrumb_add(@product.name, product_path(@product)) %>
4
+ <div class="row-fluid">
5
+ <div class = "widget widget-padding span12">
6
+ <div class = "widget-header"><i class = "icon-truck"></i><h5><%= t("model.Product") %></h5></div>
7
+
8
+ <%= render 'product_form' %>
9
+ </div>
10
+ </div>
@@ -0,0 +1,57 @@
1
+ <%= provide(:page_title, "Productos") %>
2
+ <% #if can? :create, Client %>
3
+ <div class="row-fluid">
4
+ <%=
5
+ link_to(
6
+ content_tag(:div,
7
+ content_tag(:i, nil, :class => 'icon-plus-sign icon-2x') + content_tag(:span, 'Agregar Producto', nil),
8
+ :class => "btn btn-box span2"),
9
+ new_product_path
10
+ )
11
+ %>
12
+ </div>
13
+ <% #end %>
14
+
15
+ <div class="row-fluid">
16
+ <div class="widget widget-padding span12">
17
+ <div class="widget-header">
18
+ <i class="icon-truck"></i>
19
+ <h5>Productos</h5>
20
+ </div>
21
+ <div class="widget-body">
22
+ <div class="dataTables_wrapper form-inline">
23
+ <table id="information-table" class="table table-striped table-bordered dataTable">
24
+ <thead>
25
+ <tr>
26
+ <th>Nombre</th>
27
+ <th>Descripción</th>
28
+ <% #if can? :manage, Client %>
29
+ <th>Acción</th>
30
+ <% #end %>
31
+ </tr>
32
+ </thead>
33
+ <tbody>
34
+ <% @products.each do |product| %>
35
+ <tr>
36
+ <td><%= link_to product.name, product_path(product) %></td>
37
+ <td><%= strip_tags product.description %></td>
38
+ <% #if can? :manage, product %>
39
+ <td>
40
+ <%= link_to content_tag(:i, nil, :class => 'icon-pencil'), edit_product_path(product), :title => "Editar"%>
41
+ <%= link_to content_tag(:i, nil, :class => 'icon-remove'), product_path(product), :title => "Borrar", :method => :delete,
42
+ :data => { :confirm => "Seguro?" }
43
+ %>
44
+ </td>
45
+ <% #end %>
46
+ </tr>
47
+ <% end %>
48
+ </tbody>
49
+ </table>
50
+ <div class="row-fluid">
51
+ <div class="span6"></div>
52
+ <div class="span6"></div>
53
+ </div>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>