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