mechanize-store 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (109) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +58 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/javascripts/mechanize_store/application.js +22 -0
  6. data/app/assets/javascripts/mechanize_store/sb-admin/bootstrap.js +1951 -0
  7. data/app/assets/javascripts/mechanize_store/sb-admin/custom.js +58 -0
  8. data/app/assets/javascripts/mechanize_store/sb-admin/flot/excanvas.min.js +1 -0
  9. data/app/assets/javascripts/mechanize_store/sb-admin/flot/jquery.flot.js +3137 -0
  10. data/app/assets/javascripts/mechanize_store/sb-admin/flot/jquery.flot.pie.js +817 -0
  11. data/app/assets/javascripts/mechanize_store/sb-admin/flot/main.js +20 -0
  12. data/app/assets/javascripts/mechanize_store/sb-admin/jquery-ui.js +2256 -0
  13. data/app/assets/javascripts/mechanize_store/sb-admin/jquery.activity-indicator-1.0.0.min.js +223 -0
  14. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/dataTables/dataTables.bootstrap.js +245 -0
  15. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/dataTables/jquery.dataTables.js +14013 -0
  16. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/excanvas.min.js +1 -0
  17. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/jquery.flot.js +2599 -0
  18. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/jquery.flot.pie.js +750 -0
  19. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/jquery.flot.resize.js +60 -0
  20. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/flot/jquery.flot.tooltip.min.js +12 -0
  21. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/metisMenu/jquery.metisMenu.js +45 -0
  22. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/morris/morris.js +1888 -0
  23. data/app/assets/javascripts/mechanize_store/sb-admin/plugins/morris/raphael-2.1.0.min.js +10 -0
  24. data/app/assets/javascripts/mechanize_store/sb-admin/sb-admin.js +18 -0
  25. data/app/assets/stylesheets/mechanize_store/application.css +199 -0
  26. data/app/assets/stylesheets/mechanize_store/sb-admin/bootstrap.css +5831 -0
  27. data/app/assets/stylesheets/mechanize_store/sb-admin/plugins/dataTables/dataTables.bootstrap.css +233 -0
  28. data/app/assets/stylesheets/mechanize_store/sb-admin/plugins/morris/morris-0.4.3.min.css +2 -0
  29. data/app/assets/stylesheets/mechanize_store/sb-admin/plugins/social-buttons/social-buttons.css +68 -0
  30. data/app/assets/stylesheets/mechanize_store/sb-admin/plugins/timeline/timeline.css +144 -0
  31. data/app/assets/stylesheets/mechanize_store/sb-admin/sb-admin.css +307 -0
  32. data/app/controllers/mechanize_store/application_controller.rb +4 -0
  33. data/app/controllers/mechanize_store/flags_controller.rb +77 -0
  34. data/app/controllers/mechanize_store/order_statuses_controller.rb +77 -0
  35. data/app/controllers/mechanize_store/orders_controller.rb +28 -0
  36. data/app/controllers/mechanize_store/payment_statuses_controller.rb +77 -0
  37. data/app/controllers/mechanize_store/payment_types_controller.rb +77 -0
  38. data/app/controllers/mechanize_store/product_categories_controller.rb +77 -0
  39. data/app/controllers/mechanize_store/products_controller.rb +77 -0
  40. data/app/helpers/mechanize_store/application_helper.rb +7 -0
  41. data/app/models/mechanize_store/flag.rb +4 -0
  42. data/app/models/mechanize_store/freight.rb +5 -0
  43. data/app/models/mechanize_store/order.rb +8 -0
  44. data/app/models/mechanize_store/order_status.rb +5 -0
  45. data/app/models/mechanize_store/payment.rb +6 -0
  46. data/app/models/mechanize_store/payment_status.rb +4 -0
  47. data/app/models/mechanize_store/payment_type.rb +4 -0
  48. data/app/models/mechanize_store/product.rb +5 -0
  49. data/app/models/mechanize_store/product_category.rb +5 -0
  50. data/app/models/mechanize_store/product_photo.rb +5 -0
  51. data/app/models/mechanize_store/store.rb +5 -0
  52. data/app/views/layouts/store/application.html.erb +93 -0
  53. data/app/views/mechanize_store/flags/_form.html.erb +11 -0
  54. data/app/views/mechanize_store/flags/edit.html.erb +12 -0
  55. data/app/views/mechanize_store/flags/index.html.erb +46 -0
  56. data/app/views/mechanize_store/flags/new.html.erb +9 -0
  57. data/app/views/mechanize_store/flags/show.html.erb +15 -0
  58. data/app/views/mechanize_store/order_statuses/_form.html.erb +11 -0
  59. data/app/views/mechanize_store/order_statuses/edit.html.erb +12 -0
  60. data/app/views/mechanize_store/order_statuses/index.html.erb +46 -0
  61. data/app/views/mechanize_store/order_statuses/new.html.erb +9 -0
  62. data/app/views/mechanize_store/order_statuses/show.html.erb +15 -0
  63. data/app/views/mechanize_store/orders/index.html.erb +84 -0
  64. data/app/views/mechanize_store/orders/show.html.erb +0 -0
  65. data/app/views/mechanize_store/payment_statuses/_form.html.erb +11 -0
  66. data/app/views/mechanize_store/payment_statuses/edit.html.erb +12 -0
  67. data/app/views/mechanize_store/payment_statuses/index.html.erb +46 -0
  68. data/app/views/mechanize_store/payment_statuses/new.html.erb +9 -0
  69. data/app/views/mechanize_store/payment_statuses/show.html.erb +15 -0
  70. data/app/views/mechanize_store/payment_types/_form.html.erb +11 -0
  71. data/app/views/mechanize_store/payment_types/edit.html.erb +12 -0
  72. data/app/views/mechanize_store/payment_types/index.html.erb +46 -0
  73. data/app/views/mechanize_store/payment_types/new.html.erb +9 -0
  74. data/app/views/mechanize_store/payment_types/show.html.erb +15 -0
  75. data/app/views/mechanize_store/product_categories/_form.html.erb +12 -0
  76. data/app/views/mechanize_store/product_categories/edit.html.erb +12 -0
  77. data/app/views/mechanize_store/product_categories/index.html.erb +48 -0
  78. data/app/views/mechanize_store/product_categories/new.html.erb +9 -0
  79. data/app/views/mechanize_store/product_categories/show.html.erb +19 -0
  80. data/app/views/mechanize_store/products/_form.html.erb +18 -0
  81. data/app/views/mechanize_store/products/edit.html.erb +12 -0
  82. data/app/views/mechanize_store/products/index.html.erb +50 -0
  83. data/app/views/mechanize_store/products/new.html.erb +9 -0
  84. data/app/views/mechanize_store/products/show.html.erb +43 -0
  85. data/app/views/shared/_flashes.html.erb +8 -0
  86. data/config/locales/store.pt-BR.yml +22 -0
  87. data/config/routes.rb +10 -0
  88. data/db/migrate/20140401203200_create_mechanize_store_freights.rb +12 -0
  89. data/db/migrate/20140401203246_create_mechanize_store_order_statuses.rb +9 -0
  90. data/db/migrate/20140402140318_create_mechanize_store_payment_statuses.rb +9 -0
  91. data/db/migrate/20140402140325_create_mechanize_store_payment_types.rb +9 -0
  92. data/db/migrate/20140402140539_create_mechanize_store_payments.rb +16 -0
  93. data/db/migrate/20140402140549_create_mechanize_store_flags.rb +9 -0
  94. data/db/migrate/20140402140832_create_mechanize_store_products.rb +16 -0
  95. data/db/migrate/20140402140942_create_mechanize_store_product_photos.rb +10 -0
  96. data/db/migrate/20140402141340_create_mechanize_store_stores.rb +12 -0
  97. data/db/migrate/20140402153139_create_mechanize_store_orders.rb +11 -0
  98. data/db/migrate/20140402192058_create_mechanize_store_product_categories.rb +10 -0
  99. data/lib/mechanize_store.rb +4 -0
  100. data/lib/mechanize_store/engine.rb +16 -0
  101. data/lib/mechanize_store/version.rb +3 -0
  102. data/lib/tasks/store_tasks.rake +4 -0
  103. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  104. data/lib/templates/erb/scaffold/edit.html.erb +12 -0
  105. data/lib/templates/erb/scaffold/index.html.erb +50 -0
  106. data/lib/templates/erb/scaffold/new.html.erb +9 -0
  107. data/lib/templates/erb/scaffold/show.html.erb +17 -0
  108. data/lib/templates/rails/scaffold_controller/controller.rb +79 -0
  109. 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,7 @@
1
+ module MechanizeStore
2
+ module ApplicationHelper
3
+ def title(text)
4
+ content_for(:title){text}
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ module MechanizeStore
2
+ class Flag < ActiveRecord::Base
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module MechanizeStore
2
+ class Freight < ActiveRecord::Base
3
+ belongs_to :order
4
+ end
5
+ end
@@ -0,0 +1,8 @@
1
+ module MechanizeStore
2
+ class Order < ActiveRecord::Base
3
+ belongs_to :order_status
4
+ belongs_to :mechanize_store
5
+
6
+ has_one :payment, as: :payable
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ module MechanizeStore
2
+ class OrderStatus < ActiveRecord::Base
3
+ validates :name, presence: true
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ module MechanizeStore
2
+ class Payment < ActiveRecord::Base
3
+ belongs_to :payment_status
4
+ belongs_to :flag
5
+ end
6
+ end
@@ -0,0 +1,4 @@
1
+ module MechanizeStore
2
+ class PaymentStatus < ActiveRecord::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module MechanizeStore
2
+ class PaymentType < ActiveRecord::Base
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module MechanizeStore
2
+ class Product < ActiveRecord::Base
3
+ belongs_to :product_category
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module MechanizeStore
2
+ class ProductCategory < ActiveRecord::Base
3
+ belongs_to :product_category
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module MechanizeStore
2
+ class ProductPhoto < ActiveRecord::Base
3
+ belongs_to :product
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module MechanizeStore
2
+ class Store < ActiveRecord::Base
3
+
4
+ end
5
+ 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>