phcmembers 2.2.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +4 -4
  4. data/Rakefile +15 -5
  5. data/app/assets/config/phcmembers_manifest.js +2 -0
  6. data/app/assets/stylesheets/phcmembers/_custom.scss +0 -9
  7. data/app/assets/stylesheets/phcmembers/application.scss +23 -0
  8. data/app/controllers/phcmembers/api/directories_controller.rb +18 -0
  9. data/app/controllers/phcmembers/application_controller.rb +4 -1
  10. data/app/controllers/phcmembers/dashboard/mains_controller.rb +19 -0
  11. data/app/controllers/phcmembers/directory/categories_controller.rb +6 -4
  12. data/app/controllers/phcmembers/directory/listings_controller.rb +71 -0
  13. data/app/controllers/phcmembers/members/businesses_controller.rb +83 -0
  14. data/app/controllers/phcmembers/members/contacts_controller.rb +13 -17
  15. data/app/controllers/phcmembers/members/mains_controller.rb +10 -7
  16. data/app/helpers/phcmembers/application_helper.rb +0 -1
  17. data/app/jobs/phcmembers/application_job.rb +4 -0
  18. data/app/mailers/phcmembers/application_mailer.rb +6 -0
  19. data/app/models/phcmembers/api.rb +7 -0
  20. data/app/models/phcmembers/application_record.rb +5 -0
  21. data/app/models/phcmembers/directory.rb +0 -3
  22. data/app/models/phcmembers/directory/category.rb +6 -3
  23. data/app/models/phcmembers/directory/listing.rb +20 -0
  24. data/app/models/phcmembers/members.rb +0 -3
  25. data/app/models/phcmembers/members/business.rb +44 -0
  26. data/app/models/phcmembers/members/contact.rb +10 -9
  27. data/app/models/phcmembers/members/main.rb +4 -3
  28. data/app/views/layouts/phcmembers/application.html.erb +12 -8
  29. data/app/views/layouts/phcmembers/directory/directory_all.html.erb +12 -8
  30. data/app/views/layouts/phcmembers/members/members_all.html.erb +12 -8
  31. data/app/views/phcmembers/directory/categories/_form.html.erb +2 -1
  32. data/app/views/phcmembers/directory/categories/components/_category_audits.html.erb +25 -0
  33. data/app/views/phcmembers/directory/categories/components/_category_list.html.erb +7 -0
  34. data/app/views/phcmembers/directory/categories/components/_category_main.html.erb +24 -0
  35. data/app/views/phcmembers/directory/categories/edit.html.erb +30 -11
  36. data/app/views/phcmembers/directory/categories/index.html.erb +37 -37
  37. data/app/views/phcmembers/directory/categories/new.html.erb +28 -9
  38. data/app/views/phcmembers/directory/categories/show.html.erb +34 -0
  39. data/app/views/phcmembers/directory/listings/_form.html.erb +15 -0
  40. data/app/views/phcmembers/directory/listings/_formpatch.html.erb +15 -0
  41. data/app/views/phcmembers/directory/listings/components/_listing_audits.html.erb +25 -0
  42. data/app/views/phcmembers/directory/listings/components/_listing_list.html.erb +48 -0
  43. data/app/views/phcmembers/directory/listings/components/_listing_main.html.erb +21 -0
  44. data/app/views/phcmembers/directory/listings/edit.html.erb +45 -0
  45. data/app/views/phcmembers/directory/listings/index.html.erb +73 -0
  46. data/app/views/phcmembers/directory/listings/new.html.erb +45 -0
  47. data/app/views/phcmembers/directory/listings/show.html.erb +34 -0
  48. data/app/views/phcmembers/members/businesses/_form.html.erb +65 -0
  49. data/app/views/phcmembers/members/businesses/_formpatch.html.erb +65 -0
  50. data/app/views/phcmembers/members/businesses/components/_business_address.html.erb +48 -0
  51. data/app/views/phcmembers/members/businesses/components/_business_audits.html.erb +25 -0
  52. data/app/views/phcmembers/members/businesses/components/_business_main.html.erb +21 -0
  53. data/app/views/phcmembers/members/businesses/edit.html.erb +46 -0
  54. data/app/views/phcmembers/members/businesses/index.html.erb +76 -0
  55. data/app/views/phcmembers/members/businesses/new.html.erb +47 -0
  56. data/app/views/phcmembers/members/businesses/show.html.erb +35 -0
  57. data/app/views/phcmembers/members/contacts/_form.html.erb +14 -26
  58. data/app/views/phcmembers/members/contacts/_formpatch.html.erb +14 -26
  59. data/app/views/phcmembers/members/contacts/components/_contact_address.html.erb +29 -0
  60. data/app/views/phcmembers/members/contacts/components/_contact_audits.html.erb +25 -0
  61. data/app/views/phcmembers/members/contacts/components/_contact_main.html.erb +21 -0
  62. data/app/views/phcmembers/members/contacts/edit.html.erb +30 -11
  63. data/app/views/phcmembers/members/contacts/index.html.erb +57 -37
  64. data/app/views/phcmembers/members/contacts/new.html.erb +30 -11
  65. data/app/views/phcmembers/members/contacts/show.html.erb +35 -51
  66. data/app/views/phcmembers/members/mains/_form.html.erb +14 -15
  67. data/app/views/phcmembers/members/mains/components/_profile_main.html.erb +48 -0
  68. data/app/views/phcmembers/members/mains/components/_profile_sidebar.html.erb +67 -0
  69. data/app/views/phcmembers/members/mains/edit.html.erb +28 -9
  70. data/app/views/phcmembers/members/mains/index.html.erb +53 -43
  71. data/app/views/phcmembers/members/mains/new.html.erb +27 -8
  72. data/app/views/phcmembers/members/mains/show.html.erb +31 -53
  73. data/config/routes.rb +22 -10
  74. data/db/migrate/20160706184011_create_phcmembers_members_businesses.rb +27 -0
  75. data/db/migrate/{20160227194651_create_phcmembers_members_contacts.rb → 20160706184249_create_phcmembers_members_contacts.rb} +3 -6
  76. data/db/migrate/{20160227150117_create_phcmembers_members_mains.rb → 20160706184353_create_phcmembers_members_mains.rb} +8 -2
  77. data/db/migrate/20160706184527_create_phcmembers_directory_listings.rb +15 -0
  78. data/db/migrate/{20160227205022_create_phcmembers_directory_categories.rb → 20160706184708_create_phcmembers_directory_categories.rb} +4 -2
  79. data/db/migrate/20160707154842_create_versions.rb +80 -0
  80. data/lib/phcmembers/engine.rb +11 -8
  81. data/lib/phcmembers/version.rb +2 -2
  82. metadata +132 -155
  83. data/LICENSE +0 -238
  84. data/app/assets/stylesheets/adminlte_overrides.scss +0 -56
  85. data/app/assets/stylesheets/phcmembers/_variables.scss +0 -0
  86. data/app/assets/stylesheets/phcmembers/application.css.scss +0 -12
  87. data/app/assets/stylesheets/phcmembers/dashboard.scss +0 -3
  88. data/app/assets/stylesheets/scaffolds.scss +0 -73
  89. data/app/controllers/phcmembers/api/catsapi_controller.rb +0 -15
  90. data/app/controllers/phcmembers/api/listapi_controller.rb +0 -16
  91. data/app/controllers/phcmembers/dashboard/indices_controller.rb +0 -20
  92. data/app/controllers/phcmembers/directory/catlists_controller.rb +0 -98
  93. data/app/controllers/phcmembers/members/listings_controller.rb +0 -87
  94. data/app/helpers/nav_helper.rb +0 -29
  95. data/app/helpers/phcmembers/dashboard_helper.rb +0 -4
  96. data/app/helpers/phcmembers/directory/categories_helper.rb +0 -4
  97. data/app/helpers/phcmembers/directory/catlists_helper.rb +0 -4
  98. data/app/helpers/phcmembers/members/contacts_helper.rb +0 -4
  99. data/app/helpers/phcmembers/members/listings_helper.rb +0 -4
  100. data/app/helpers/phcmembers/members/mains_helper.rb +0 -4
  101. data/app/models/phcmembers/api/category.rb +0 -8
  102. data/app/models/phcmembers/api/catlist.rb +0 -9
  103. data/app/models/phcmembers/directory/catlist.rb +0 -17
  104. data/app/models/phcmembers/members/listing.rb +0 -42
  105. data/app/views/layouts/_application_header.html.erb +0 -133
  106. data/app/views/layouts/_application_sidebar.html.erb +0 -39
  107. data/app/views/layouts/application.html.erb +0 -19
  108. data/app/views/phcmembers/api/catsapi/index.json.rabl +0 -2
  109. data/app/views/phcmembers/api/listapi/index.json.rabl +0 -6
  110. data/app/views/phcmembers/dashboard/indices/index.html.erb +0 -51
  111. data/app/views/phcmembers/directory/catlists/_form.html.erb +0 -15
  112. data/app/views/phcmembers/directory/catlists/index.html.erb +0 -37
  113. data/app/views/phcmembers/directory/catlists/new.html.erb +0 -26
  114. data/app/views/phcmembers/members/listings/_form.html.erb +0 -54
  115. data/app/views/phcmembers/members/listings/_formpatch.html.erb +0 -54
  116. data/app/views/phcmembers/members/listings/edit.html.erb +0 -27
  117. data/app/views/phcmembers/members/listings/index.html.erb +0 -58
  118. data/app/views/phcmembers/members/listings/new.html.erb +0 -25
  119. data/app/views/phcmembers/members/listings/show.html.erb +0 -56
  120. data/db/migrate/20160227160416_create_phcmembers_members_listings.rb +0 -23
  121. data/db/migrate/20160227212144_create_phcmembers_directory_catlists.rb +0 -13
  122. data/lib/generators/phcmembers/views_generator.rb +0 -53
  123. data/lib/templates/erb/controller/view.html.erb +0 -9
  124. data/lib/templates/erb/scaffold/_form.html.erb +0 -30
  125. data/lib/templates/erb/scaffold/edit.html.erb +0 -15
  126. data/lib/templates/erb/scaffold/index.html.erb +0 -52
  127. data/lib/templates/erb/scaffold/new.html.erb +0 -13
  128. data/lib/templates/erb/scaffold/show.html.erb +0 -38
@@ -1,98 +0,0 @@
1
- require_dependency "phcmembers/application_controller"
2
-
3
- module Phcmembers
4
- class Directory::CatlistsController < ApplicationController
5
-
6
- # Filters
7
- layout 'layouts/phcmembers/directory/directory_all.html.erb'
8
- before_filter :authenticate_user!, if: -> { defined?(Devise) }
9
- before_action :set_directory_catlist, only: [:show, :edit, :update, :destroy]
10
-
11
- # Add Directory Category Information
12
- before_action :directorycategory
13
-
14
- def directorycategory
15
- @category = Directory::Category.find(params[:category_id])
16
- end
17
-
18
- # Directory Listing Index
19
- def index
20
- category = Directory::Category.find(params[:category_id])
21
- @directory_catlists = category.catlists
22
- end
23
-
24
- # Show Directory Listing
25
- def show
26
- category = Directory::Category.find(params[:category_id])
27
- @directory_catlist = category.catlists.find(params[:id])
28
- end
29
-
30
- # New Directory Listing
31
- def new
32
- category = Directory::Category.find(params[:category_id])
33
- @directory_catlist = category.catlists.build
34
- end
35
-
36
- # Edit Directory Listing Action
37
- def edit
38
- category = Directory::Category.find(params[:category_id])
39
- @directory_catlist = category.catlists.find(params[:id])
40
- respond_to do |format|
41
- format.html # new.html.erb
42
- format.xml { render :xml => @directory_catlist }
43
- end
44
- end
45
-
46
- # Create Directory Listing Action
47
- def create
48
- @category = Directory::Category.find(params[:category_id])
49
- @directory_catlist = @category.catlists.create(directory_catlist_params)
50
- respond_to do |format|
51
- if @directory_catlist.save
52
- format.html { redirect_to directory_category_catlists_path, notice: 'Comment for Directorycategory was Successfully Created.' }
53
- format.json { render action: 'show', status: :created, location: @directory_catlist }
54
- else
55
- format.html { render action: 'new' }
56
- format.json { render json: @directory_catlist.errors, status: :unprocessable_entity }
57
- end
58
- end
59
- end
60
-
61
- # Update Directory Listing Action
62
- def update
63
- respond_to do |format|
64
- if @directory_catlist.update(directory_catlist_params)
65
- format.html { redirect_to directory_category_catlists_path, notice: 'Comment for Directorycategory was Successfully Updated.' }
66
- format.json { head :no_content }
67
- else
68
- format.html { render action: 'edit' }
69
- format.json { render json: @directory_catlist.errors, status: :unprocessable_entity }
70
- end
71
- end
72
- end
73
-
74
- # Delete Directory Listing
75
- def destroy
76
- @category = Directory::Category.find(params[:category_id])
77
- @directory_catlist = @category.catlists.find(params[:id])
78
- @directory_catlist.destroy
79
- respond_to do |format|
80
- format.html { redirect_to directory_category_catlists_path, notice: 'Comment for Directorycategory was Successfully Deleted.' }
81
- format.json { head :no_content }
82
- end
83
- end
84
-
85
- private
86
-
87
- # Common Callbacks
88
- def set_directory_catlist
89
- @directory_catlist = Directory::Catlist.find(params[:id])
90
- end
91
-
92
- # Whitelists
93
- def directory_catlist_params
94
- params.require(:directory_catlist).permit(:listing_id, :category_id)
95
- end
96
-
97
- end
98
- end
@@ -1,87 +0,0 @@
1
- require_dependency "phcmembers/application_controller"
2
-
3
- module Phcmembers
4
- class Members::ListingsController < ApplicationController
5
-
6
- # Filters
7
- layout 'layouts/phcmembers/members/members_all.html.erb'
8
- before_filter :authenticate_user!, if: -> { defined?(Devise) }
9
- before_action :set_members_listing, only: [:show, :edit, :update, :destroy]
10
-
11
- # Add Member Contact Information
12
- before_action :phc_member_mains_info
13
-
14
- def phc_member_mains_info
15
- @members_main = Members::Main.find(params[:main_id])
16
- end
17
-
18
- # Member Listing Index
19
- def index
20
- main = Members::Main.find(params[:main_id])
21
- @members_listings = main.listings.order('mlcontactname ASC')
22
- end
23
-
24
- # Detailed Member Listing
25
- def show
26
- main = Members::Main.find(params[:main_id])
27
- @members_listing = main.listings.find(params[:id])
28
- end
29
-
30
- # New Member Listing
31
- def new
32
- main = Members::Main.find(params[:main_id])
33
- @members_listing = main.listings.build
34
- respond_to do |format|
35
- format.html # new.html.erb
36
- format.xml { render :xml => @members_listing }
37
- end
38
- end
39
-
40
- # Edit Member Listing
41
- def edit
42
- main = Members::Main.find(params[:main_id])
43
- @members_listing = main.listings.find(params[:id])
44
- end
45
-
46
- # Create Action
47
- def create
48
- @main = Members::Main.find(params[:main_id])
49
- @members_listing = @main.listings.create(members_listing_params)
50
- if @members_listing.save
51
- redirect_to members_main_listings_path, notice: 'Listing was successfully created.'
52
- else
53
- render :new
54
- end
55
- end
56
-
57
- # Update Action
58
- def update
59
- if @members_listing.update(members_listing_params)
60
- redirect_to members_main_listings_path, notice: 'Listing was successfully updated.'
61
- else
62
- render :edit
63
- end
64
- end
65
-
66
- # Delete Action
67
- def destroy
68
- @main = Members::Main.find(params[:main_id])
69
- @members_listing = @main.listings.find(params[:id])
70
- @members_listing.destroy
71
- redirect_to members_main_listings_path, notice: 'Listing was successfully destroyed.'
72
- end
73
-
74
- private
75
-
76
- # Common Callbacks
77
- def set_members_listing
78
- @members_listing = Members::Listing.find(params[:id])
79
- end
80
-
81
- # White List
82
- def members_listing_params
83
- params.require(:members_listing).permit(:mlcontactname, :mlcompanyname, :mladdressl1, :mladdressl2, :mlcity, :mlprovince, :mlcountry, :mlpostalcode, :mlphone, :mlwebsite, :mlemail, :main_id)
84
- end
85
-
86
- end
87
- end
@@ -1,29 +0,0 @@
1
- module NavHelper
2
-
3
- def nav_link(page, &link_text)
4
- class_name = request.env['PATH_INFO'].match(page) ? 'active' : nil
5
-
6
- content_tag(:li, class: class_name) do
7
- link_to page do
8
- link_text.call
9
- end
10
- end
11
-
12
- end
13
-
14
- def treeview_link(text, &links)
15
- content = link_to('#') do
16
- content_tag(:span, text) <<
17
- content_tag(:i, '', class: "fa pull-right fa-angle-left")
18
- end
19
-
20
- content << content_tag(:ul, class: 'treeview-menu') do
21
- links.call
22
- end
23
-
24
- content_tag :li, class: 'treeview' do
25
- content
26
- end
27
- end
28
-
29
- end
@@ -1,4 +0,0 @@
1
- module Phcmembers
2
- module DashboardHelper
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module Phcmembers
2
- module Directory::CategoriesHelper
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module Phcmembers
2
- module Directory::CatlistsHelper
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module Phcmembers
2
- module Members::ContactsHelper
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module Phcmembers
2
- module Members::ListingsHelper
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module Phcmembers
2
- module Members::MainsHelper
3
- end
4
- end
@@ -1,8 +0,0 @@
1
- module Phcmembers
2
- class Api::Category < ActiveRecord::Base
3
-
4
- # Model Relationship
5
- has_many :catlists, class_name: 'Directory::Catlist'
6
-
7
- end
8
- end
@@ -1,9 +0,0 @@
1
- module Phcmembers
2
- class Api::Catlist < ActiveRecord::Base
3
-
4
- # Model Relationship
5
- belongs_to :category, class_name: 'Directory::Category'
6
- belongs_to :listing, class_name: 'Members::Listing'
7
-
8
- end
9
- end
@@ -1,17 +0,0 @@
1
- module Phcmembers
2
- class Directory::Catlist < ActiveRecord::Base
3
-
4
- # Model Relationship
5
- belongs_to :category, class_name: 'Directory::Category'
6
- belongs_to :listing, class_name: 'Members::Listing'
7
-
8
- # Validation for Form Fields (More of a Self-Check)
9
- validates :listing_id,
10
- presence: true
11
-
12
- # Validation for Form Fields (More of a Self-Check)
13
- validates :category_id,
14
- presence: true
15
-
16
- end
17
- end
@@ -1,42 +0,0 @@
1
- module Phcmembers
2
- class Members::Listing < ActiveRecord::Base
3
-
4
- # Model Relationships
5
- belongs_to :main, class_name: 'Members::Main'
6
- has_many :catlists, class_name: 'Directory::Catlist', dependent: :destroy
7
-
8
- # Validation for Form Fields
9
- validates :mlcontactname,
10
- presence: true,
11
- length: { minimum: 3 }
12
-
13
- validates :mlcompanyname,
14
- presence: true,
15
- length: { minimum: 2 }
16
-
17
- validates :mlcity,
18
- presence: true,
19
- length: { minimum: 3 }
20
-
21
- validates :mlprovince,
22
- presence: true,
23
- length: { minimum: 2 }
24
-
25
- validates :mlpostalcode,
26
- presence: true,
27
- length: { minimum: 6 }
28
-
29
- validates :mlcountry,
30
- presence: true,
31
- length: { minimum: 2 }
32
-
33
- validates :mlphone,
34
- presence: true,
35
- format: { with: /\A(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}\z/, message: "Please Follow this Phone Number Format: xxx-xxx-xxxx" }
36
-
37
- validates :mlwebsite,
38
- presence: true,
39
- length: { minimum: 3 }
40
-
41
- end
42
- end
@@ -1,133 +0,0 @@
1
- <header class="header">
2
- <a href="#" class="logo">
3
- <!-- Add the class icon to your logo image or logo icon to add the margining -->
4
- AdminLTE
5
- </a>
6
- <!-- Header Navbar: style can be found in header.less -->
7
- <nav class="navbar navbar-static-top" role="navigation">
8
- <!-- Sidebar toggle button-->
9
- <a href="#" class="navbar-btn sidebar-toggle" data-toggle="offcanvas" role="button">
10
- <span class="sr-only">Toggle navigation</span>
11
- <span class="icon-bar"></span>
12
- <span class="icon-bar"></span>
13
- <span class="icon-bar"></span>
14
- </a>
15
- <div class="navbar-right">
16
- <ul class="nav navbar-nav">
17
- <li class="dropdown messages-menu">
18
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">
19
- <i class="fa fa-envelope"></i>
20
- <span class="label label-success">4</span>
21
- </a>
22
- <ul class="dropdown-menu">
23
- <li class="header">You have 4 messages</li>
24
- <li>
25
- <!-- inner menu: contains the actual data -->
26
- <ul class="menu">
27
- <li><!-- start message -->
28
- <a href="#">
29
- <div class="pull-left">
30
- <img src="/img/avatar3.png" class="img-circle" alt="User Image"/>
31
- </div>
32
- <h4>
33
- Support Team
34
- <small><i class="fa fa-clock-o"></i> 5 mins</small>
35
- </h4>
36
- <p>Why not buy a new awesome theme?</p>
37
- </a>
38
- </li><!-- end message -->
39
- <li>
40
- <a href="#">
41
- <div class="pull-left">
42
- <img src="/img/avatar2.png" class="img-circle" alt="user image"/>
43
- </div>
44
- <h4>
45
- AdminLTE Design Team
46
- <small><i class="fa fa-clock-o"></i> 2 hours</small>
47
- </h4>
48
- <p>Why not buy a new awesome theme?</p>
49
- </a>
50
- </li>
51
- <li>
52
- <a href="#">
53
- <div class="pull-left">
54
- <img src="/img/avatar.png" class="img-circle" alt="user image"/>
55
- </div>
56
- <h4>
57
- Developers
58
- <small><i class="fa fa-clock-o"></i> Today</small>
59
- </h4>
60
- <p>Why not buy a new awesome theme?</p>
61
- </a>
62
- </li>
63
- <li>
64
- <a href="#">
65
- <div class="pull-left">
66
- <img src="/img/avatar2.png" class="img-circle" alt="user image"/>
67
- </div>
68
- <h4>
69
- Sales Department
70
- <small><i class="fa fa-clock-o"></i> Yesterday</small>
71
- </h4>
72
- <p>Why not buy a new awesome theme?</p>
73
- </a>
74
- </li>
75
- <li>
76
- <a href="#">
77
- <div class="pull-left">
78
- <img src="/img/avatar.png" class="img-circle" alt="user image"/>
79
- </div>
80
- <h4>
81
- Reviewers
82
- <small><i class="fa fa-clock-o"></i> 2 days</small>
83
- </h4>
84
- <p>Why not buy a new awesome theme?</p>
85
- </a>
86
- </li>
87
- </ul>
88
- </li>
89
- <li class="footer"><a href="#">See All Messages</a></li>
90
- </ul>
91
- </li>
92
- <!-- User Account: style can be found in dropdown.less -->
93
- <li class="dropdown user user-menu">
94
- <a href="#" class="dropdown-toggle" data-toggle="dropdown">
95
- <i class="glyphicon glyphicon-user"></i>
96
- <span>Jane Doe <i class="caret"></i></span>
97
- </a>
98
- <ul class="dropdown-menu">
99
- <!-- User image -->
100
- <li class="user-header bg-light-blue">
101
- <img src="/img/avatar3.png" class="img-circle" alt="User Image" />
102
- <p>
103
- Jane Doe - Web Developer
104
- <small>Member since Nov. 2012</small>
105
- </p>
106
- </li>
107
- <!-- Menu Body -->
108
- <li class="user-body">
109
- <div class="col-xs-4 text-center">
110
- <a href="#">Followers</a>
111
- </div>
112
- <div class="col-xs-4 text-center">
113
- <a href="#">Sales</a>
114
- </div>
115
- <div class="col-xs-4 text-center">
116
- <a href="#">Friends</a>
117
- </div>
118
- </li>
119
- <!-- Menu Footer-->
120
- <li class="user-footer">
121
- <div class="pull-left">
122
- <a href="#" class="btn btn-default btn-flat">Profile</a>
123
- </div>
124
- <div class="pull-right">
125
- <a href="#" class="btn btn-default btn-flat">Sign out</a>
126
- </div>
127
- </li>
128
- </ul>
129
- </li>
130
- </ul>
131
- </div>
132
- </nav>
133
- </header>