adminpanel 0.0.1

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 (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>