adminpanel 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/Gemfile +13 -0
- data/LICENSE.txt +22 -0
- data/README.md +34 -0
- data/Rakefile +1 -0
- data/adminpanel.gemspec +32 -0
- data/app/assets/fonts/.DS_Store +0 -0
- data/app/assets/fonts/FontAwesome.otf +0 -0
- data/app/assets/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/fontawesome-webfont.svg +255 -0
- data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/images/adminpanel/alpha.png +0 -0
- data/app/assets/images/adminpanel/arrows-active.png +0 -0
- data/app/assets/images/adminpanel/arrows-normal.png +0 -0
- data/app/assets/images/adminpanel/bgnoise.png +0 -0
- data/app/assets/images/adminpanel/crop.gif +0 -0
- data/app/assets/images/adminpanel/dialogs.png +0 -0
- data/app/assets/images/adminpanel/dotted.png +0 -0
- data/app/assets/images/adminpanel/favicon.ico +0 -0
- data/app/assets/images/adminpanel/glyphicons-halflings-white.png +0 -0
- data/app/assets/images/adminpanel/glyphicons-halflings.png +0 -0
- data/app/assets/images/adminpanel/gritter-light.png +0 -0
- data/app/assets/images/adminpanel/gritter-long.png +0 -0
- data/app/assets/images/adminpanel/gritter.png +0 -0
- data/app/assets/images/adminpanel/hue.png +0 -0
- data/app/assets/images/adminpanel/icons-big.png +0 -0
- data/app/assets/images/adminpanel/icons-small.png +0 -0
- data/app/assets/images/adminpanel/ie-spacer.gif +0 -0
- data/app/assets/images/adminpanel/odinn.jpg +0 -0
- data/app/assets/images/adminpanel/pattern.jpg +0 -0
- data/app/assets/images/adminpanel/pattern_transp.png +0 -0
- data/app/assets/images/adminpanel/progress.gif +0 -0
- data/app/assets/images/adminpanel/quicklook-bg.png +0 -0
- data/app/assets/images/adminpanel/quicklook-icons.png +0 -0
- data/app/assets/images/adminpanel/rails.png +0 -0
- data/app/assets/images/adminpanel/resize.png +0 -0
- data/app/assets/images/adminpanel/saturation.png +0 -0
- data/app/assets/images/adminpanel/select2.png +0 -0
- data/app/assets/images/adminpanel/select2x2.png +0 -0
- data/app/assets/images/adminpanel/sidebar.png +0 -0
- data/app/assets/images/adminpanel/sort_asc.png +0 -0
- data/app/assets/images/adminpanel/sort_asc_disabled.png +0 -0
- data/app/assets/images/adminpanel/sort_both.png +0 -0
- data/app/assets/images/adminpanel/sort_desc.png +0 -0
- data/app/assets/images/adminpanel/sort_desc_disabled.png +0 -0
- data/app/assets/images/adminpanel/spinner-mini.gif +0 -0
- data/app/assets/images/adminpanel/spinner.gif +0 -0
- data/app/assets/images/adminpanel/toolbar.png +0 -0
- data/app/assets/javascripts/adminpanel/bootstrap-datepicker.js +1159 -0
- data/app/assets/javascripts/adminpanel/bootstrap-timepicker.js +803 -0
- data/app/assets/javascripts/adminpanel/bootstrap.js +2170 -0
- data/app/assets/javascripts/adminpanel/imagesloaded.js +13 -0
- data/app/assets/javascripts/adminpanel/init_editor.js +28 -0
- data/app/assets/javascripts/adminpanel/jquery.dataTables.min.js +155 -0
- data/app/assets/javascripts/adminpanel/jquery.facybox.js +395 -0
- data/app/assets/javascripts/adminpanel/jquery.masonry.min.js +10 -0
- data/app/assets/javascripts/adminpanel/jquery.slimscroll.min.js +14 -0
- data/app/assets/javascripts/adminpanel/medium-editor.js +703 -0
- data/app/assets/javascripts/adminpanel/products.js +14 -0
- data/app/assets/javascripts/adminpanel/realm.js +90 -0
- data/app/assets/javascripts/adminpanel/tables.js +126 -0
- data/app/assets/javascripts/application-admin.js +16 -0
- data/app/assets/stylesheets/adminpanel/_clearfix.css.scss +8 -0
- data/app/assets/stylesheets/adminpanel/alertify.css +242 -0
- data/app/assets/stylesheets/adminpanel/bootstrap.css +6103 -0
- data/app/assets/stylesheets/adminpanel/colorpicker.css +7 -0
- data/app/assets/stylesheets/adminpanel/datepicker.css +9 -0
- data/app/assets/stylesheets/adminpanel/elfinder.min.css +59 -0
- data/app/assets/stylesheets/adminpanel/facybox.css +146 -0
- data/app/assets/stylesheets/adminpanel/font-awesome.min.css +34 -0
- data/app/assets/stylesheets/adminpanel/fullcalendar.css +618 -0
- data/app/assets/stylesheets/adminpanel/fullcalendar.print.css +61 -0
- data/app/assets/stylesheets/adminpanel/medium-editor.css.scss +1 -0
- data/app/assets/stylesheets/adminpanel/select2.css +524 -0
- data/app/assets/stylesheets/adminpanel/theme.css +1563 -0
- data/app/assets/stylesheets/adminpanel/timepicker.css +82 -0
- data/app/assets/stylesheets/application-admin.css +14 -0
- data/app/controllers/adminpanel/application_controller.rb +18 -0
- data/app/controllers/adminpanel/categories_controller.rb +41 -0
- data/app/controllers/adminpanel/galleries_controller.rb +45 -0
- data/app/controllers/adminpanel/products_controller.rb +87 -0
- data/app/controllers/adminpanel/sections_controller.rb +46 -0
- data/app/controllers/adminpanel/sessions_controller.rb +26 -0
- data/app/controllers/adminpanel/users_controller.rb +85 -0
- data/app/helpers/adminpanel/application_helper.rb +73 -0
- data/app/helpers/custom_form_builder.rb +219 -0
- data/app/models/adminpanel/category.rb +7 -0
- data/app/models/adminpanel/contact.rb +25 -0
- data/app/models/adminpanel/gallery.rb +10 -0
- data/app/models/adminpanel/image.rb +6 -0
- data/app/models/adminpanel/product.rb +24 -0
- data/app/models/adminpanel/section.rb +16 -0
- data/app/models/adminpanel/user.rb +35 -0
- data/app/uploaders/adminpanel/gallery_uploader.rb +56 -0
- data/app/uploaders/adminpanel/image_uploader.rb +63 -0
- data/app/uploaders/adminpanel/section_uploader.rb +56 -0
- data/app/views/adminpanel/.DS_Store +0 -0
- data/app/views/adminpanel/categories/edit.html.erb +18 -0
- data/app/views/adminpanel/categories/index.html.erb +55 -0
- data/app/views/adminpanel/categories/new.html.erb +18 -0
- data/app/views/adminpanel/categories/show.html.erb +0 -0
- data/app/views/adminpanel/galleries/create.html.erb +2 -0
- data/app/views/adminpanel/galleries/delete.html.erb +2 -0
- data/app/views/adminpanel/galleries/edit.html.erb +26 -0
- data/app/views/adminpanel/galleries/index.html.erb +60 -0
- data/app/views/adminpanel/galleries/new.html.erb +18 -0
- data/app/views/adminpanel/galleries/show.html.erb +18 -0
- data/app/views/adminpanel/galleries/update.html.erb +2 -0
- data/app/views/adminpanel/products/.DS_Store +0 -0
- data/app/views/adminpanel/products/_image_fields.html.erb +24 -0
- data/app/views/adminpanel/products/_product_form.html.erb +31 -0
- data/app/views/adminpanel/products/edit.html.erb +10 -0
- data/app/views/adminpanel/products/index.html.erb +57 -0
- data/app/views/adminpanel/products/new.html.erb +10 -0
- data/app/views/adminpanel/products/show.html.erb +61 -0
- data/app/views/adminpanel/sections/_image_fields.html.erb +24 -0
- data/app/views/adminpanel/sections/create.html.erb +2 -0
- data/app/views/adminpanel/sections/destroy.html.erb +2 -0
- data/app/views/adminpanel/sections/edit.html.erb +40 -0
- data/app/views/adminpanel/sections/index.html.erb +38 -0
- data/app/views/adminpanel/sections/new.html.erb +27 -0
- data/app/views/adminpanel/sections/show.html.erb +28 -0
- data/app/views/adminpanel/sections/update.html.erb +2 -0
- data/app/views/adminpanel/sessions/new.html.erb +26 -0
- data/app/views/adminpanel/users/_form.html.erb +33 -0
- data/app/views/adminpanel/users/edit.html.erb +22 -0
- data/app/views/adminpanel/users/index.html.erb +55 -0
- data/app/views/adminpanel/users/new.html.erb +22 -0
- data/app/views/adminpanel/users/show.html.erb +21 -0
- data/app/views/layouts/_shim.html.erb +4 -0
- data/app/views/layouts/_side_menu.html.erb +45 -0
- data/app/views/layouts/_top_bar.html.erb +43 -0
- data/app/views/layouts/admin.html.erb +45 -0
- data/app/views/shared/_breadcrumb.html.erb +6 -0
- data/app/views/shared/_error_messages.html.erb +17 -0
- data/config/locales/en.yml +5 -0
- data/config/locales/es.yml +202 -0
- data/config/routes.rb +11 -0
- data/lib/adminpanel.rb +8 -0
- data/lib/adminpanel/engine.rb +5 -0
- data/lib/adminpanel/version.rb +3 -0
- 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,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>
|
Binary file
|
@@ -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>
|