mechanize-store 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +58 -0
- data/Rakefile +32 -0
- data/app/assets/javascripts/mechanize_store/application.js +22 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/bootstrap.js +1951 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/custom.js +58 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/flot/excanvas.min.js +1 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/flot/jquery.flot.js +3137 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/flot/jquery.flot.pie.js +817 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/flot/main.js +20 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/jquery-ui.js +2256 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/jquery.activity-indicator-1.0.0.min.js +223 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/dataTables/dataTables.bootstrap.js +245 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/dataTables/jquery.dataTables.js +14013 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/excanvas.min.js +1 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/jquery.flot.js +2599 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/jquery.flot.pie.js +750 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/jquery.flot.resize.js +60 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/jquery.flot.tooltip.min.js +12 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/metisMenu/jquery.metisMenu.js +45 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/morris/morris.js +1888 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/plugins/morris/raphael-2.1.0.min.js +10 -0
- data/app/assets/javascripts/mechanize_store/sb-admin/sb-admin.js +18 -0
- data/app/assets/stylesheets/mechanize_store/application.css +199 -0
- data/app/assets/stylesheets/mechanize_store/sb-admin/bootstrap.css +5831 -0
- data/app/assets/stylesheets/mechanize_store/sb-admin/plugins/dataTables/dataTables.bootstrap.css +233 -0
- data/app/assets/stylesheets/mechanize_store/sb-admin/plugins/morris/morris-0.4.3.min.css +2 -0
- data/app/assets/stylesheets/mechanize_store/sb-admin/plugins/social-buttons/social-buttons.css +68 -0
- data/app/assets/stylesheets/mechanize_store/sb-admin/plugins/timeline/timeline.css +144 -0
- data/app/assets/stylesheets/mechanize_store/sb-admin/sb-admin.css +307 -0
- data/app/controllers/mechanize_store/application_controller.rb +4 -0
- data/app/controllers/mechanize_store/flags_controller.rb +77 -0
- data/app/controllers/mechanize_store/order_statuses_controller.rb +77 -0
- data/app/controllers/mechanize_store/orders_controller.rb +28 -0
- data/app/controllers/mechanize_store/payment_statuses_controller.rb +77 -0
- data/app/controllers/mechanize_store/payment_types_controller.rb +77 -0
- data/app/controllers/mechanize_store/product_categories_controller.rb +77 -0
- data/app/controllers/mechanize_store/products_controller.rb +77 -0
- data/app/helpers/mechanize_store/application_helper.rb +7 -0
- data/app/models/mechanize_store/flag.rb +4 -0
- data/app/models/mechanize_store/freight.rb +5 -0
- data/app/models/mechanize_store/order.rb +8 -0
- data/app/models/mechanize_store/order_status.rb +5 -0
- data/app/models/mechanize_store/payment.rb +6 -0
- data/app/models/mechanize_store/payment_status.rb +4 -0
- data/app/models/mechanize_store/payment_type.rb +4 -0
- data/app/models/mechanize_store/product.rb +5 -0
- data/app/models/mechanize_store/product_category.rb +5 -0
- data/app/models/mechanize_store/product_photo.rb +5 -0
- data/app/models/mechanize_store/store.rb +5 -0
- data/app/views/layouts/store/application.html.erb +93 -0
- data/app/views/mechanize_store/flags/_form.html.erb +11 -0
- data/app/views/mechanize_store/flags/edit.html.erb +12 -0
- data/app/views/mechanize_store/flags/index.html.erb +46 -0
- data/app/views/mechanize_store/flags/new.html.erb +9 -0
- data/app/views/mechanize_store/flags/show.html.erb +15 -0
- data/app/views/mechanize_store/order_statuses/_form.html.erb +11 -0
- data/app/views/mechanize_store/order_statuses/edit.html.erb +12 -0
- data/app/views/mechanize_store/order_statuses/index.html.erb +46 -0
- data/app/views/mechanize_store/order_statuses/new.html.erb +9 -0
- data/app/views/mechanize_store/order_statuses/show.html.erb +15 -0
- data/app/views/mechanize_store/orders/index.html.erb +84 -0
- data/app/views/mechanize_store/orders/show.html.erb +0 -0
- data/app/views/mechanize_store/payment_statuses/_form.html.erb +11 -0
- data/app/views/mechanize_store/payment_statuses/edit.html.erb +12 -0
- data/app/views/mechanize_store/payment_statuses/index.html.erb +46 -0
- data/app/views/mechanize_store/payment_statuses/new.html.erb +9 -0
- data/app/views/mechanize_store/payment_statuses/show.html.erb +15 -0
- data/app/views/mechanize_store/payment_types/_form.html.erb +11 -0
- data/app/views/mechanize_store/payment_types/edit.html.erb +12 -0
- data/app/views/mechanize_store/payment_types/index.html.erb +46 -0
- data/app/views/mechanize_store/payment_types/new.html.erb +9 -0
- data/app/views/mechanize_store/payment_types/show.html.erb +15 -0
- data/app/views/mechanize_store/product_categories/_form.html.erb +12 -0
- data/app/views/mechanize_store/product_categories/edit.html.erb +12 -0
- data/app/views/mechanize_store/product_categories/index.html.erb +48 -0
- data/app/views/mechanize_store/product_categories/new.html.erb +9 -0
- data/app/views/mechanize_store/product_categories/show.html.erb +19 -0
- data/app/views/mechanize_store/products/_form.html.erb +18 -0
- data/app/views/mechanize_store/products/edit.html.erb +12 -0
- data/app/views/mechanize_store/products/index.html.erb +50 -0
- data/app/views/mechanize_store/products/new.html.erb +9 -0
- data/app/views/mechanize_store/products/show.html.erb +43 -0
- data/app/views/shared/_flashes.html.erb +8 -0
- data/config/locales/store.pt-BR.yml +22 -0
- data/config/routes.rb +10 -0
- data/db/migrate/20140401203200_create_mechanize_store_freights.rb +12 -0
- data/db/migrate/20140401203246_create_mechanize_store_order_statuses.rb +9 -0
- data/db/migrate/20140402140318_create_mechanize_store_payment_statuses.rb +9 -0
- data/db/migrate/20140402140325_create_mechanize_store_payment_types.rb +9 -0
- data/db/migrate/20140402140539_create_mechanize_store_payments.rb +16 -0
- data/db/migrate/20140402140549_create_mechanize_store_flags.rb +9 -0
- data/db/migrate/20140402140832_create_mechanize_store_products.rb +16 -0
- data/db/migrate/20140402140942_create_mechanize_store_product_photos.rb +10 -0
- data/db/migrate/20140402141340_create_mechanize_store_stores.rb +12 -0
- data/db/migrate/20140402153139_create_mechanize_store_orders.rb +11 -0
- data/db/migrate/20140402192058_create_mechanize_store_product_categories.rb +10 -0
- data/lib/mechanize_store.rb +4 -0
- data/lib/mechanize_store/engine.rb +16 -0
- data/lib/mechanize_store/version.rb +3 -0
- data/lib/tasks/store_tasks.rake +4 -0
- data/lib/templates/erb/scaffold/_form.html.erb +13 -0
- data/lib/templates/erb/scaffold/edit.html.erb +12 -0
- data/lib/templates/erb/scaffold/index.html.erb +50 -0
- data/lib/templates/erb/scaffold/new.html.erb +9 -0
- data/lib/templates/erb/scaffold/show.html.erb +17 -0
- data/lib/templates/rails/scaffold_controller/controller.rb +79 -0
- metadata +265 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
require_dependency "mechanize_store/application_controller"
|
2
|
+
|
3
|
+
module MechanizeStore
|
4
|
+
class OrdersController < ApplicationController
|
5
|
+
respond_to :html, :json
|
6
|
+
|
7
|
+
before_action :fetch_collections, only: [:index]
|
8
|
+
|
9
|
+
def fetch_collections
|
10
|
+
@order_statuses = OrderStatus.all
|
11
|
+
@payment_statuses = PaymentStatus.all
|
12
|
+
end
|
13
|
+
|
14
|
+
def index
|
15
|
+
params[:q] ||= {}
|
16
|
+
|
17
|
+
@search = Order.search(params[:q])
|
18
|
+
@orders = @search.result.paginate(page: params[:page])
|
19
|
+
|
20
|
+
respond_with @orders
|
21
|
+
end
|
22
|
+
|
23
|
+
def show
|
24
|
+
@order = Order.find(params[:id])
|
25
|
+
respond_with @order
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module MechanizeStore
|
2
|
+
class PaymentStatusesController < ApplicationController
|
3
|
+
before_action :set_payment_status, only: [:show, :edit, :update, :destroy]
|
4
|
+
|
5
|
+
respond_to :html, :json, :xml
|
6
|
+
|
7
|
+
def index
|
8
|
+
@search = PaymentStatus.search(params[:q])
|
9
|
+
|
10
|
+
@payment_statuses = @search.result.paginate(page: params[:page])
|
11
|
+
|
12
|
+
respond_with @payment_statuses
|
13
|
+
end
|
14
|
+
|
15
|
+
def show
|
16
|
+
respond_with @payment_status
|
17
|
+
end
|
18
|
+
|
19
|
+
def new
|
20
|
+
@payment_status = PaymentStatus.new
|
21
|
+
respond_with @payment_status
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit
|
25
|
+
respond_with @payment_status
|
26
|
+
end
|
27
|
+
|
28
|
+
def create
|
29
|
+
@payment_status = PaymentStatus.new(payment_status_params)
|
30
|
+
|
31
|
+
respond_with @payment_status do |format|
|
32
|
+
if @payment_status.save
|
33
|
+
format.html do
|
34
|
+
flash[:notice] = I18n.t(:created, model: I18n.t(:payment_status, scope: "activerecord.models"))
|
35
|
+
redirect_to @payment_status
|
36
|
+
end
|
37
|
+
else
|
38
|
+
format.html { render action: "new" }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def update
|
44
|
+
@payment_status = PaymentStatus.find(params[:id])
|
45
|
+
|
46
|
+
respond_with @payment_status do |format|
|
47
|
+
if @payment_status.update(payment_status_params)
|
48
|
+
format.html do
|
49
|
+
flash[:notice] = I18n.t(:updated, model: I18n.t(:payment_status, scope: "activerecord.models"))
|
50
|
+
redirect_to @payment_status
|
51
|
+
end
|
52
|
+
else
|
53
|
+
format.html { render action: "edit" }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def destroy
|
59
|
+
@payment_status = PaymentStatus.find(params[:id])
|
60
|
+
|
61
|
+
flash[:alert] = I18n.t(:deleted, model: I18n.t(:payment_status, scope: "activerecord.models")) if @payment_status.destroy
|
62
|
+
|
63
|
+
respond_with @payment_status, :location => payment_statuses_url
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
# Use callbacks to share common setup or constraints between actions.
|
68
|
+
def set_payment_status
|
69
|
+
@payment_status = PaymentStatus.find(params[:id])
|
70
|
+
end
|
71
|
+
|
72
|
+
# Only allow a trusted parameter "white list" through.
|
73
|
+
def payment_status_params
|
74
|
+
params.require(:payment_status).permit(:name)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module MechanizeStore
|
2
|
+
class PaymentTypesController < ApplicationController
|
3
|
+
before_action :set_payment_type, only: [:show, :edit, :update, :destroy]
|
4
|
+
|
5
|
+
respond_to :html, :json, :xml
|
6
|
+
|
7
|
+
def index
|
8
|
+
@search = PaymentType.search(params[:q])
|
9
|
+
|
10
|
+
@payment_types = @search.result.paginate(page: params[:page])
|
11
|
+
|
12
|
+
respond_with @payment_types
|
13
|
+
end
|
14
|
+
|
15
|
+
def show
|
16
|
+
respond_with @payment_type
|
17
|
+
end
|
18
|
+
|
19
|
+
def new
|
20
|
+
@payment_type = PaymentType.new
|
21
|
+
respond_with @payment_type
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit
|
25
|
+
respond_with @payment_type
|
26
|
+
end
|
27
|
+
|
28
|
+
def create
|
29
|
+
@payment_type = PaymentType.new(payment_type_params)
|
30
|
+
|
31
|
+
respond_with @payment_type do |format|
|
32
|
+
if @payment_type.save
|
33
|
+
format.html do
|
34
|
+
flash[:notice] = I18n.t(:created, model: I18n.t(:payment_type, scope: "activerecord.models"))
|
35
|
+
redirect_to @payment_type
|
36
|
+
end
|
37
|
+
else
|
38
|
+
format.html { render action: "new" }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def update
|
44
|
+
@payment_type = PaymentType.find(params[:id])
|
45
|
+
|
46
|
+
respond_with @payment_type do |format|
|
47
|
+
if @payment_type.update(payment_type_params)
|
48
|
+
format.html do
|
49
|
+
flash[:notice] = I18n.t(:updated, model: I18n.t(:payment_type, scope: "activerecord.models"))
|
50
|
+
redirect_to @payment_type
|
51
|
+
end
|
52
|
+
else
|
53
|
+
format.html { render action: "edit" }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def destroy
|
59
|
+
@payment_type = PaymentType.find(params[:id])
|
60
|
+
|
61
|
+
flash[:alert] = I18n.t(:deleted, model: I18n.t(:payment_type, scope: "activerecord.models")) if @payment_type.destroy
|
62
|
+
|
63
|
+
respond_with @payment_type, :location => payment_types_url
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
# Use callbacks to share common setup or constraints between actions.
|
68
|
+
def set_payment_type
|
69
|
+
@payment_type = PaymentType.find(params[:id])
|
70
|
+
end
|
71
|
+
|
72
|
+
# Only allow a trusted parameter "white list" through.
|
73
|
+
def payment_type_params
|
74
|
+
params.require(:payment_type).permit(:name)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module MechanizeStore
|
2
|
+
class ProductCategoriesController < ApplicationController
|
3
|
+
before_action :set_product_category, only: [:show, :edit, :update, :destroy]
|
4
|
+
|
5
|
+
respond_to :html, :json, :xml
|
6
|
+
|
7
|
+
def index
|
8
|
+
@search = ProductCategory.search(params[:q])
|
9
|
+
|
10
|
+
@product_categories = @search.result.paginate(page: params[:page])
|
11
|
+
|
12
|
+
respond_with @product_categories
|
13
|
+
end
|
14
|
+
|
15
|
+
def show
|
16
|
+
respond_with @product_category
|
17
|
+
end
|
18
|
+
|
19
|
+
def new
|
20
|
+
@product_category = ProductCategory.new
|
21
|
+
respond_with @product_category
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit
|
25
|
+
respond_with @product_category
|
26
|
+
end
|
27
|
+
|
28
|
+
def create
|
29
|
+
@product_category = ProductCategory.new(product_category_params)
|
30
|
+
|
31
|
+
respond_with @product_category do |format|
|
32
|
+
if @product_category.save
|
33
|
+
format.html do
|
34
|
+
flash[:notice] = I18n.t(:created, model: I18n.t(:product_category, scope: "activerecord.models"))
|
35
|
+
redirect_to @product_category
|
36
|
+
end
|
37
|
+
else
|
38
|
+
format.html { render action: "new" }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def update
|
44
|
+
@product_category = ProductCategory.find(params[:id])
|
45
|
+
|
46
|
+
respond_with @product_category do |format|
|
47
|
+
if @product_category.update(product_category_params)
|
48
|
+
format.html do
|
49
|
+
flash[:notice] = I18n.t(:updated, model: I18n.t(:product_category, scope: "activerecord.models"))
|
50
|
+
redirect_to @product_category
|
51
|
+
end
|
52
|
+
else
|
53
|
+
format.html { render action: "edit" }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def destroy
|
59
|
+
@product_category = ProductCategory.find(params[:id])
|
60
|
+
|
61
|
+
flash[:alert] = I18n.t(:removed, model: I18n.t(:product_category, scope: "activerecord.models")) if @product_category.destroy
|
62
|
+
|
63
|
+
respond_with @product_category, :location => product_categories_url
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
# Use callbacks to share common setup or constraints between actions.
|
68
|
+
def set_product_category
|
69
|
+
@product_category = ProductCategory.find(params[:id])
|
70
|
+
end
|
71
|
+
|
72
|
+
# Only allow a trusted parameter "white list" through.
|
73
|
+
def product_category_params
|
74
|
+
params.require(:product_category).permit(:name, :product_category_id)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
module MechanizeStore
|
2
|
+
class ProductsController < ApplicationController
|
3
|
+
before_action :set_product, only: [:show, :edit, :update, :destroy]
|
4
|
+
|
5
|
+
respond_to :html, :json, :xml
|
6
|
+
|
7
|
+
def index
|
8
|
+
@search = Product.search(params[:q])
|
9
|
+
|
10
|
+
@products = @search.result.paginate(page: params[:page])
|
11
|
+
|
12
|
+
respond_with @products
|
13
|
+
end
|
14
|
+
|
15
|
+
def show
|
16
|
+
respond_with @product
|
17
|
+
end
|
18
|
+
|
19
|
+
def new
|
20
|
+
@product = Product.new
|
21
|
+
respond_with @product
|
22
|
+
end
|
23
|
+
|
24
|
+
def edit
|
25
|
+
respond_with @product
|
26
|
+
end
|
27
|
+
|
28
|
+
def create
|
29
|
+
@product = Product.new(product_params)
|
30
|
+
|
31
|
+
respond_with @product do |format|
|
32
|
+
if @product.save
|
33
|
+
format.html do
|
34
|
+
flash[:notice] = I18n.t(:created, model: I18n.t(:product, scope: "activerecord.models"))
|
35
|
+
redirect_to @product
|
36
|
+
end
|
37
|
+
else
|
38
|
+
format.html { render action: "new" }
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def update
|
44
|
+
@product = Product.find(params[:id])
|
45
|
+
|
46
|
+
respond_with @product do |format|
|
47
|
+
if @product.update(product_params)
|
48
|
+
format.html do
|
49
|
+
flash[:notice] = I18n.t(:updated, model: I18n.t(:product, scope: "activerecord.models"))
|
50
|
+
redirect_to @product
|
51
|
+
end
|
52
|
+
else
|
53
|
+
format.html { render action: "edit" }
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def destroy
|
59
|
+
@product = Product.find(params[:id])
|
60
|
+
|
61
|
+
flash[:alert] = I18n.t(:deleted, model: I18n.t(:product, scope: "activerecord.models")) if @product.destroy
|
62
|
+
|
63
|
+
respond_with @product, :location => products_url
|
64
|
+
end
|
65
|
+
|
66
|
+
private
|
67
|
+
# Use callbacks to share common setup or constraints between actions.
|
68
|
+
def set_product
|
69
|
+
@product = Product.find(params[:id])
|
70
|
+
end
|
71
|
+
|
72
|
+
# Only allow a trusted parameter "white list" through.
|
73
|
+
def product_params
|
74
|
+
params.require(:product).permit(:name, :description, :short_description, :price, :weight, :lenght, :height, :product_category_id)
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<%= csrf_meta_tags %>
|
5
|
+
<meta charset="utf-8">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
|
+
<title>
|
8
|
+
Dummy
|
9
|
+
</title>
|
10
|
+
<%= stylesheet_link_tag "mechanize_store/application" %>
|
11
|
+
|
12
|
+
<%= javascript_include_tag "mechanize_store/application" %>
|
13
|
+
|
14
|
+
<%= yield :head %>
|
15
|
+
</head>
|
16
|
+
|
17
|
+
<body>
|
18
|
+
<div id="wrapper">
|
19
|
+
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
|
20
|
+
<div class="navbar-header">
|
21
|
+
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".sidebar-collapse">
|
22
|
+
<span class="sr-only">Toggle navigation</span>
|
23
|
+
<span class="icon-bar"></span>
|
24
|
+
<span class="icon-bar"></span>
|
25
|
+
<span class="icon-bar"></span>
|
26
|
+
</button>
|
27
|
+
<%= link_to "Dummy App", orders_path, class: "navbar-brand" %>
|
28
|
+
</div>
|
29
|
+
|
30
|
+
<!-- /.navbar-header -->
|
31
|
+
|
32
|
+
<ul class="nav navbar-top-links navbar-right">
|
33
|
+
<!-- /.dropdown -->
|
34
|
+
<li class="dropdown">
|
35
|
+
|
36
|
+
<!-- /.dropdown-user -->
|
37
|
+
</li>
|
38
|
+
<!-- /.dropdown -->
|
39
|
+
</ul>
|
40
|
+
<!-- /.navbar-top-links -->
|
41
|
+
|
42
|
+
</nav>
|
43
|
+
<!-- /.navbar-static-top -->
|
44
|
+
|
45
|
+
<nav class="navbar-static-side" role="navigation">
|
46
|
+
<div class="sidebar-collapse">
|
47
|
+
<ul class="nav" id="side-menu">
|
48
|
+
<li>
|
49
|
+
<%= link_to orders_path do %>
|
50
|
+
<i class="fa fa-search"></i> <%= t(:order, scope: "activerecord.models.mechanize_store").pluralize %>
|
51
|
+
<% end -%>
|
52
|
+
</li>
|
53
|
+
<li>
|
54
|
+
<%= link_to products_path do %>
|
55
|
+
<i class="fa fa-square"></i> <%= t(:product, scope: "activerecord.models.mechanize_store").pluralize %>
|
56
|
+
<% end -%>
|
57
|
+
</li>
|
58
|
+
</ul>
|
59
|
+
<!-- /#side-menu -->
|
60
|
+
</div>
|
61
|
+
<!-- /.sidebar-collapse -->
|
62
|
+
</nav>
|
63
|
+
<!-- /.navbar-static-side -->
|
64
|
+
|
65
|
+
<div id="page-wrapper">
|
66
|
+
<br/>
|
67
|
+
<div class="row">
|
68
|
+
<div class="col-lg-12">
|
69
|
+
<%= render partial: "shared/flashes" %>
|
70
|
+
|
71
|
+
<ul class="nav nav-pills pull-right">
|
72
|
+
<%= yield :right %>
|
73
|
+
</ul>
|
74
|
+
|
75
|
+
<div class="page-header">
|
76
|
+
<h1>
|
77
|
+
<%= yield :title %> <% if content_for?(:subtitle) %> <small><%= yield :subtitle %></small> <% end %>
|
78
|
+
</h1>
|
79
|
+
</div>
|
80
|
+
|
81
|
+
<%= yield %>
|
82
|
+
</div>
|
83
|
+
<!-- /.col-lg-12 -->
|
84
|
+
</div>
|
85
|
+
<!-- /.row -->
|
86
|
+
</div>
|
87
|
+
<!-- /#page-wrapper -->
|
88
|
+
|
89
|
+
</div>
|
90
|
+
<!-- /#wrapper -->
|
91
|
+
</body>
|
92
|
+
|
93
|
+
</html>
|