phcpress 50.0.0 → 51.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -1
  3. data/app/assets/javascripts/phcpress/application.js +4 -1
  4. data/app/assets/javascripts/phcpress/article/categories.js +0 -0
  5. data/app/assets/javascripts/phcpress/article/posts.js +0 -0
  6. data/app/assets/javascripts/phcpress/blog/articles.js +0 -0
  7. data/app/assets/javascripts/phcpress/custom/custom.js +0 -0
  8. data/app/assets/stylesheets/phcpress/application.scss +3 -1
  9. data/app/assets/stylesheets/phcpress/article/categories.scss +0 -0
  10. data/app/assets/stylesheets/phcpress/article/posts.scss +0 -0
  11. data/app/assets/stylesheets/phcpress/blog/articles.scss +0 -0
  12. data/app/controllers/phcpress/api/v1/post_index.json.rabl +2 -0
  13. data/app/controllers/phcpress/api/v1/post_single.json.rabl +2 -0
  14. data/app/controllers/phcpress/application_controller.rb +20 -10
  15. data/app/controllers/phcpress/article/categories_controller.rb +72 -0
  16. data/app/controllers/phcpress/article/posts_controller.rb +17 -13
  17. data/app/controllers/phcpress/blog/articles_controller.rb +20 -0
  18. data/app/helpers/phcpress/application_helper.rb +2 -12
  19. data/app/helpers/phcpress/article/categories_helper.rb +4 -0
  20. data/app/helpers/phcpress/article/posts_helper.rb +4 -0
  21. data/app/jobs/phcpress/application_job.rb +2 -2
  22. data/app/mailers/phcpress/application_mailer.rb +4 -4
  23. data/app/models/phcpress/{modules → article}/category.rb +4 -3
  24. data/app/models/phcpress/article/post.rb +4 -4
  25. data/app/views/layouts/phcpress/application.html.erb +16 -19
  26. data/app/views/layouts/phcpress/components/backend/footer/_footer.html.erb +9 -1
  27. data/app/views/layouts/phcpress/components/backend/navigation/_top_menu.html.erb +3 -68
  28. data/app/views/layouts/phcpress/components/backend/sidebars/_side_menu.html.erb +98 -60
  29. data/app/views/layouts/phcpress/frontend.html.erb +5 -24
  30. data/app/views/phcpress/article/categories/_form.html.erb +13 -0
  31. data/app/views/phcpress/{modules → article}/categories/edit.html.erb +5 -4
  32. data/app/views/phcpress/{modules → article}/categories/index.html.erb +18 -5
  33. data/app/views/phcpress/{modules → article}/categories/new.html.erb +8 -5
  34. data/app/views/phcpress/article/categories/show.html.erb +9 -0
  35. data/app/views/phcpress/article/posts/_form.html.erb +17 -24
  36. data/app/views/phcpress/article/posts/edit.html.erb +14 -24
  37. data/app/views/phcpress/article/posts/index.html.erb +13 -2
  38. data/app/views/phcpress/article/posts/new.html.erb +16 -5
  39. data/app/views/phcpress/blog/articles/index.html.erb +69 -0
  40. data/app/views/phcpress/blog/articles/show.html.erb +1 -0
  41. data/config/routes.rb +12 -20
  42. data/db/migrate/20170517064030_create_phcpress_post_versions.rb +17 -0
  43. data/db/migrate/20170517064427_create_phcpress_category_versions.rb +17 -0
  44. data/db/migrate/{20160718204718_create_phcpress_article_posts.rb → 20190315010932_create_phcpress_article_posts.rb} +2 -3
  45. data/db/migrate/{20160716182936_create_phcpress_modules_categories.rb → 20190315040834_create_phcpress_article_categories.rb} +2 -3
  46. data/db/migrate/20190315173237_create_join_table_categories_posts.rb +8 -0
  47. data/lib/phcpress/engine.rb +66 -60
  48. data/lib/phcpress/version.rb +1 -1
  49. metadata +111 -130
  50. data/app/controllers/phcpress/api/v1/categories_controller.rb +0 -15
  51. data/app/controllers/phcpress/api/v1/posts_controller.rb +0 -20
  52. data/app/controllers/phcpress/frontend/articles_controller.rb +0 -21
  53. data/app/controllers/phcpress/modules/categories_controller.rb +0 -65
  54. data/app/controllers/phcpress/modules/connections_controller.rb +0 -65
  55. data/app/models/phcpress/api/v1/category.rb +0 -4
  56. data/app/models/phcpress/api/v1/post.rb +0 -4
  57. data/app/models/phcpress/connection_versions.rb +0 -5
  58. data/app/models/phcpress/frontend.rb +0 -7
  59. data/app/models/phcpress/frontend/article.rb +0 -4
  60. data/app/models/phcpress/modules.rb +0 -7
  61. data/app/models/phcpress/modules/connection.rb +0 -25
  62. data/app/views/phcpress/api/v1/categories/index.json.rabl +0 -2
  63. data/app/views/phcpress/api/v1/posts/index.json.rabl +0 -2
  64. data/app/views/phcpress/api/v1/posts/show.json.rabl +0 -2
  65. data/app/views/phcpress/frontend/articles/index.html.erb +0 -35
  66. data/app/views/phcpress/frontend/articles/show.html.erb +0 -35
  67. data/app/views/phcpress/modules/categories/_form.html.erb +0 -17
  68. data/app/views/phcpress/modules/categories/show.html.erb +0 -22
  69. data/app/views/phcpress/modules/connections/_form.html.erb +0 -24
  70. data/app/views/phcpress/modules/connections/edit.html.erb +0 -39
  71. data/app/views/phcpress/modules/connections/index.html.erb +0 -66
  72. data/app/views/phcpress/modules/connections/new.html.erb +0 -39
  73. data/app/views/phcpress/modules/connections/show.html.erb +0 -50
  74. data/db/migrate/20160719221205_create_phcpress_modules_connections.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 42cc184eb57d70ec4210c99ce87744cfbdc242fa6a3552d4f0d038ffd8c1842f
4
- data.tar.gz: b8757c7fbdac7092c85a87797fac8b55425c78965b1958f605a803de8264aa5a
3
+ metadata.gz: e1070dd44b5b298bbfc4eb7a31a340a8e5421299a8b305a4fc054c5775a709a8
4
+ data.tar.gz: 4a7a60ec096a23b1b17ddae135e627b9acc869968426184771ca08edb8eae211
5
5
  SHA512:
6
- metadata.gz: fcafa8b1a8c83ee0e03db5dbb89afdc384a35251aa902003b22ac79aef3e2044caa2dc497d0dabd6fcf4f358cae7c54d29d070d1b6d1ff7b2ed44a9128c490f4
7
- data.tar.gz: d006c815b3d2daced69207241c2160cb76876fb365d6f4d190e76bd0bdc0976be18b8f55c9dbaea8e910ff322905a88017586ad86c34116a271300dbcb9e279e
6
+ metadata.gz: cec17f084a06b3d7af9cbde652d597aac0ce39dbd8438eedfe33e8db23c0ad11ff3ef2eec89aec3cfc67ec0bf429c9706e3fcf7bfce9ec2a4897c651598def81
7
+ data.tar.gz: dc56c5f4954b21ed7a932cd48ce91c5c239fbd02434c725523c9340b5a310c7b03580ea330132f8d209fa2d2a7c25076435d8222811ae95adf7d3ef1e9d99406
data/README.md CHANGED
@@ -30,4 +30,5 @@ To properly function re-compile your application's assets to copy over required
30
30
  #### Step 5 - Generate Contact Form View (Customization)
31
31
  All PHCPress views and layouts can be overwritten by copying files to your application.
32
32
 
33
- rails generate phcpress:views
33
+ rails generate phcpress:views
34
+
@@ -1,2 +1,5 @@
1
1
  // Load Admin Theme
2
- //= require phc_admin_theme_scripts_four
2
+ //= require phc_admin_theme_scripts_four
3
+ //= require phcpress/custom/custom
4
+ //= require phcpress/article/posts
5
+ //= requrie phcpress/article/categories
@@ -1,2 +1,4 @@
1
1
  // Load Admin Theme
2
- @import "phc_admin_theme_styles_four";
2
+ @import "phc_admin_theme_styles_four";
3
+ @import "article/posts";
4
+ @import "article/categories";
@@ -0,0 +1,2 @@
1
+ object @phcpress_posts_index
2
+ attributes :id, :psttittle, :psttext, :pststatus, :pstimage
@@ -0,0 +1,2 @@
1
+ object @phcpress_posts_single
2
+ attributes :id, :psttittle, :psttext, :pststatus, :pstimage
@@ -1,12 +1,22 @@
1
1
  module Phcpress
2
- class ApplicationController < ActionController::Base
3
-
4
- # Security
5
- protect_from_forgery with: :exception
6
-
7
- # Load Helpers
8
- helper Phctitleseo::Engine.helpers
9
- helper Phcnotifi::Engine.helpers
10
-
11
- end
2
+ class ApplicationController < ActionController::Base
3
+
4
+ # Security Filters
5
+ protect_from_forgery with: :exception
6
+
7
+ # Load Requried Helper Files
8
+ helper Phccorehelpers::Engine.helpers
9
+ helper Phcmenus::Engine.helpers
10
+ helper Phctitleseo::Engine.helpers
11
+ helper Phcnotifi::Engine.helpers
12
+ helper Phcaccounts::Engine.helpers
13
+
14
+ # Papertrail Whodunnit Username
15
+ def user_for_paper_trail
16
+ current_user ? current_user.username : 'Public user'
17
+ end
18
+
19
+ private
20
+
21
+ end
12
22
  end
@@ -0,0 +1,72 @@
1
+ require_dependency "phcpress/application_controller"
2
+
3
+ module Phcpress
4
+ class Article::CategoriesController < ApplicationController
5
+
6
+ # Include Core Helpers, Security & Action Filters
7
+ include Phccorehelpers::PhcpluginsproHelper
8
+ before_action :authenticate_user!
9
+ before_action :set_paper_trail_whodunnit
10
+ before_action :set_article_category, only: [:show, :edit, :update, :destroy]
11
+
12
+ # Categories Index
13
+ def index
14
+ @article_categories = Phcpress::Article::Category.where(org_id: current_user.org_id)
15
+ end
16
+
17
+ # Categories Show
18
+ def show
19
+ @article_category = Phcpress::Article::Category.friendly.find(params[:id])
20
+ @versions = Phcpress::CategoryVersions.where(item_id: params[:id], item_type: 'Phcpress::Article::Category')
21
+ end
22
+
23
+ # Categories New
24
+ def new
25
+ @article_category = Phcpress::Article::Category.new
26
+ end
27
+
28
+ # Categories Edit
29
+ def edit
30
+ end
31
+
32
+ # POST
33
+ def create
34
+ @article_category = Phcpress::Article::Category.new(article_category_params)
35
+ @article_category.user_id = current_user.id
36
+ @article_category.org_id = current_user.org_id
37
+ if @article_category.save
38
+ redirect_to article_categories_url, notice: 'Category was successfully created.'
39
+ else
40
+ render :new
41
+ end
42
+ end
43
+
44
+ # PATCH/PUT
45
+ def update
46
+ if @article_category.update(article_category_params)
47
+ redirect_to article_categories_url, notice: 'Category was successfully updated.'
48
+ else
49
+ render :edit
50
+ end
51
+ end
52
+
53
+ # DELETE
54
+ def destroy
55
+ @article_category.destroy
56
+ redirect_to article_categories_url, notice: 'Category was successfully destroyed.'
57
+ end
58
+
59
+ private
60
+
61
+ # Use callbacks to share common setup or constraints between actions.
62
+ def set_article_category
63
+ @article_category = Phcpress::Article::Category.find(params[:id])
64
+ end
65
+
66
+ # Only allow a trusted parameter "white list" through.
67
+ def article_category_params
68
+ params.require(:article_category).permit(:catname, :slug, :user_id, :org_id)
69
+ end
70
+
71
+ end
72
+ end
@@ -3,22 +3,26 @@ require_dependency "phcpress/application_controller"
3
3
  module Phcpress
4
4
  class Article::PostsController < ApplicationController
5
5
 
6
- # Security & Action Filters
6
+ # Include Core Helpers, Security & Action Filters
7
+ include Phccorehelpers::PhcpluginsproHelper
7
8
  before_action :authenticate_user!
9
+ before_action :set_paper_trail_whodunnit
8
10
  before_action :set_article_post, only: [:show, :edit, :update, :destroy]
9
11
 
10
12
  # Article Index
11
13
  def index
12
- @article_posts = Article::Post.all
14
+ @article_posts = Phcpress::Article::Post.where(org_id: current_user.org_id)
13
15
  end
14
16
 
15
17
  # Article Show
16
18
  def show
19
+ @article_post = Phcpress::Article::Post.friendly.find(params[:id])
20
+ @versions = Phcpress::PostVersions.where(item_id: params[:id], item_type: 'Phcpress::Article::Post')
17
21
  end
18
22
 
19
23
  # Article New
20
24
  def new
21
- @article_post = Article::Post.new
25
+ @article_post = Phcpress::Article::Post.new
22
26
  end
23
27
 
24
28
  # Article Edit
@@ -27,9 +31,10 @@ module Phcpress
27
31
 
28
32
  # POST
29
33
  def create
30
- @article_post = Article::Post.new(article_post_params)
34
+ @article_post = Phcpress::Article::Post.new(article_post_params)
35
+ @article_post.user_id = current_user.id
36
+ @article_post.org_id = current_user.org_id
31
37
  if @article_post.save
32
- @article_post.connections.build
33
38
  redirect_to article_posts_url, notice: 'Post was successfully created.'
34
39
  else
35
40
  render :new
@@ -39,29 +44,28 @@ module Phcpress
39
44
  # PATCH/PUT
40
45
  def update
41
46
  if @article_post.update(article_post_params)
42
- @article_post.connections.build
43
47
  redirect_to article_posts_url, notice: 'Post was successfully updated.'
44
- else
45
- render :edit
48
+ else
49
+ render :edit
46
50
  end
47
51
  end
48
52
 
49
53
  # DELETE
50
54
  def destroy
51
- @article_post.destroy
55
+ @article_post.destroy
52
56
  redirect_to article_posts_url, notice: 'Post was successfully destroyed.'
53
57
  end
54
58
 
55
59
  private
56
60
 
57
- # Common Callbacks
61
+ # Use callbacks to share common setup or constraints between actions.
58
62
  def set_article_post
59
- @article_post = Article::Post.find(params[:id])
63
+ @article_post = Phcpress::Article::Post.find(params[:id])
60
64
  end
61
65
 
62
- # Params Whitelist
66
+ # Only allow a trusted parameter "white list" through.
63
67
  def article_post_params
64
- params.require(:article_post).permit(:psttitle, :psttext, :pststatus, :pstimage, :remove_pstimage, category_ids: [])
68
+ params.require(:article_post).permit(:psttittle, :psttext, :pststatus, :pstimage, :remove_pstimage, :slug, :user_id, :org_id, category_ids: [])
65
69
  end
66
70
 
67
71
  end
@@ -0,0 +1,20 @@
1
+ require_dependency "phcpress/application_controller"
2
+
3
+ module Phcpress
4
+ class Blog::ArticlesController < ApplicationController
5
+
6
+ # Security, Layouts & Action Filters
7
+ layout 'phcpress/frontend'
8
+
9
+ # Index for All Published Posts
10
+ def index
11
+ @phcpress_posts_index = Article::Post.where(pststatus: "published")
12
+ end
13
+
14
+ # Single Page for Published Post
15
+ def show
16
+ @phcpress_posts_single = Article::Post.friendly.find(params[:id])
17
+ end
18
+
19
+ end
20
+ end
@@ -1,14 +1,4 @@
1
1
  module Phcpress
2
- module ApplicationHelper
3
-
4
- # Add Active to Menu
5
- def is_active_controller(controller_name)
6
- params[:controller] == controller_name ? "active open selected" : nil
7
- end
8
-
9
- def is_active_action(action_name)
10
- params[:action] == action_name ? "active" : nil
11
- end
12
-
13
- end
2
+ module ApplicationHelper
3
+ end
14
4
  end
@@ -0,0 +1,4 @@
1
+ module Phcpress
2
+ module Article::CategoriesHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Phcpress
2
+ module Article::PostsHelper
3
+ end
4
+ end
@@ -1,4 +1,4 @@
1
1
  module Phcpress
2
- class ApplicationJob < ActiveJob::Base
3
- end
2
+ class ApplicationJob < ActiveJob::Base
3
+ end
4
4
  end
@@ -1,6 +1,6 @@
1
1
  module Phcpress
2
- class ApplicationMailer < ActionMailer::Base
3
- default from: 'info@example.com'
4
- layout 'mailer'
5
- end
2
+ class ApplicationMailer < ActionMailer::Base
3
+ default from: 'from@example.com'
4
+ layout 'mailer'
5
+ end
6
6
  end
@@ -1,5 +1,5 @@
1
1
  module Phcpress
2
- class Modules::Category < ApplicationRecord
2
+ class Article::Category < ApplicationRecord
3
3
 
4
4
  # Clean URL Initialize
5
5
  extend FriendlyId
@@ -8,12 +8,13 @@ module Phcpress
8
8
  has_paper_trail :class_name => 'Phcpress::CategoryVersions'
9
9
 
10
10
  # Relationships
11
- has_many :connections, class_name: 'Phcpress::Modules::Connection', dependent: :destroy
12
- has_many :posts, class_name: 'Phcpress::Modules::Category', :through => :connections
11
+ has_and_belongs_to_many :posts, class_name: 'Phcpress::Article::Post', :join_table => 'categories_posts'
12
+ belongs_to :user, class_name: 'Phcaccounts::User'
13
13
 
14
14
  # Validation for Form Fields
15
15
  validates :catname,
16
16
  presence: true,
17
+ uniqueness: true,
17
18
  length: { minimum: 3 }
18
19
 
19
20
  # Clean URL Define
@@ -11,11 +11,11 @@ module Phcpress
11
11
  has_one_attached :pstimage
12
12
 
13
13
  # Model Relationships
14
- has_many :connections, class_name: 'Phcpress::Modules::Connection', dependent: :destroy
15
- has_many :categories, class_name: 'Phcpress::Modules::Category', :through => :connections
14
+ has_and_belongs_to_many :categories, class_name: 'Phcpress::Article::Category', :join_table => 'categories_posts'
15
+ belongs_to :user, class_name: 'Phcaccounts::User'
16
16
 
17
17
  # Validation for Form Fields
18
- validates :psttitle,
18
+ validates :psttittle,
19
19
  presence: true,
20
20
  length: { minimum: 3 }
21
21
 
@@ -32,7 +32,7 @@ module Phcpress
32
32
  # Define for Multiple Records
33
33
  def phcpress_post_slug
34
34
  [
35
- [:psttitle]
35
+ [:psttittle]
36
36
  ]
37
37
  end
38
38
 
@@ -2,24 +2,29 @@
2
2
  <html>
3
3
  <head>
4
4
 
5
- <% phc_seo_title "PHCPress" %>
6
- <% phc_seo_description "Content Management Engine for Ruby on Rails" %>
5
+ <% phc_seo_title "PHCPress CMS" %>
6
+ <% phc_seo_description "Content Management System by PHCDevworks" %>
7
7
 
8
+ <!-- -PHC- SEO and Site Description -->
8
9
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
9
10
  <title><%= yield(:phc_seo_title) %></title>
10
11
  <meta name="description" content="<%= yield(:phc_seo_description) %>">
11
-
12
12
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
13
- <link rel="canonical" href="http://phcpress.com">
13
+ <link rel="canonical" href="http://phcmembers.com">
14
+ <!-- -PHC- SEO and Site Description -->
15
+
16
+ <!-- -PHC- Security -->
17
+ <%= csrf_meta_tags %>
18
+ <%= csp_meta_tag %>
19
+ <!-- -PHC- Security -->
20
+
21
+ <!-- -PHC- CSS -->
22
+ <%= stylesheet_link_tag 'phcpress/application', media: 'all', 'data-turbolinks-track': 'reload' %>
23
+ <!-- -PHC- CSS -->
14
24
 
15
25
  <!-- Font -->
16
26
  <link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans:300,400%7CRaleway:300,400,500,600,700%7CLato:300,400,400italic,600,700"/>
17
-
18
- <!-- Requried Style Sheets -->
19
- <%= stylesheet_link_tag "phcpress/application", media: "all", 'data-turbolinks-track': 'reload' %>
20
-
21
- <!-- Security -->
22
- <%= csrf_meta_tags %>
27
+ <!-- Font -->
23
28
 
24
29
  </head>
25
30
  <body>
@@ -62,15 +67,7 @@
62
67
 
63
68
  <!-- Requried JavaScripts -->
64
69
  <%= javascript_include_tag "phcpress/application", 'data-turbolinks-track': 'reload' %>
65
-
66
- <!-- WTF Slowing Down my Site. Nothing Nice to Say. Keep Bad Comments to Myself -->
67
- <!--[if lt IE 9]>
68
- <script src="https://frmwrks.phcnetworks.net/coloradmin/version-latest/admin/template/assets/crossbrowserjs/html5shiv.js"></script>
69
- <script src="https://frmwrks.phcnetworks.net/coloradmin/version-latest/admin/template/assets/crossbrowserjs/respond.min.js"></script>
70
- <script src="https://frmwrks.phcnetworks.net/coloradmin/version-latest/admin/template/assets/crossbrowserjs/excanvas.min.js"></script>
71
- <![endif]-->
72
- <!-- WTF Slowing Down my Site. Nothing Nice to Say. Keep Bad Comments to Myself -->
73
-
70
+ <script src="https://cdn.ckeditor.com/4.10.0/full/ckeditor.js"></script>
74
71
  <script>
75
72
  $(document).ready(function() {
76
73
  App.init();
@@ -1 +1,9 @@
1
- <span class="float-left">&copy; 2012-<%= Time.now.year %> - <strong>PHC</strong>Press Engine v<%= Gem.loaded_specs["phcpress"].version.to_s %></span> <span class="float-right">Developed with <i class="fas fa-heart hanna_hearts"></i> by <strong>PHC</strong>Networks</span>
1
+ <span class="float-left">
2
+ &copy; 2012-<%= Time.now.year %> -
3
+ <strong>PHC</strong><i>Press</i> -
4
+ Engine v<%= Gem.loaded_specs["phcpress"].version.to_s %>
5
+ </span>
6
+ <span class="float-right">
7
+ Developed with <i class="fas fa-heart hanna_hearts"></i> by
8
+ <a class="phcnet_copyright" href="https://phcdevworks.com/"><strong>PHC</strong>Devworks</a>
9
+ </span>
@@ -1,9 +1,7 @@
1
- <!-- Topbar - Navigation -->
2
1
  <!-- Topbar - Navigation Header -->
3
2
  <div class="navbar-header">
4
- <%= link_to phcpress.root_path, class: "navbar-brand" do %>
5
- <!--<span class="navbar-logo"></span>-->
6
- <strong>PHC</strong>Press
3
+ <%= link_to phcpress.article_posts_path, class: "navbar-brand" do %>
4
+ <strong>PHC</strong><i>Press</i>
7
5
  <% end %>
8
6
  <button type="button" class="navbar-toggle" data-click="sidebar-toggled">
9
7
  <span class="icon-bar"></span>
@@ -62,7 +60,7 @@
62
60
  <li class="dropdown navbar-user">
63
61
  <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown">
64
62
  <%= image_tag current_user.gravatar_url %>
65
- <span class="d-none d-md-inline"><%= current_user.firstname %> <%= current_user.lastname %></span> <b class="caret"></b>
63
+ <span class="d-none d-md-inline"><%= current_user.firstname + ' ' + current_user.lastname %></span> <b class="caret"></b>
66
64
  </a>
67
65
  <div class="dropdown-menu dropdown-menu-right">
68
66
  <%= link_to phcaccounts.edit_user_registration_path, class: "dropdown-item" do %>
@@ -77,67 +75,4 @@
77
75
 
78
76
  </ul>
79
77
  <% end %>
80
- <% if current_admin %>
81
- <ul class="navbar-nav navbar-right">
82
-
83
- <!-- Topbar - Navigation Main - Search
84
- <li>
85
- <form class="navbar-form">
86
- <div class="form-group">
87
- <input type="text" class="form-control" placeholder="Enter keyword" />
88
- <button type="submit" class="btn btn-search"><i class="fa fa-search"></i></button>
89
- </div>
90
- </form>
91
- </li>
92
- Topbar - Navigation Main - Search -->
93
-
94
- <!-- Topbar - Navigation Main - Notifications Menu
95
- <li class="dropdown">
96
- <a href="javascript:;" data-toggle="dropdown" class="dropdown-toggle f-s-14">
97
- <i class="fa fa-bell"></i>
98
- <span class="label">5</span>
99
- </a>
100
- <ul class="dropdown-menu media-list dropdown-menu-right">
101
- <li class="dropdown-header">NOTIFICATIONS (5)</li>
102
- <li class="media">
103
- <a href="javascript:;">
104
- <div class="media-left">
105
- <i class="fa fa-bug media-object bg-silver-darker"></i>
106
- </div>
107
- <div class="media-body">
108
- <h6 class="media-heading">
109
- Server Error Reports
110
- <i class="fa fa-exclamation-circle text-danger"></i>
111
- </h6>
112
- <div class="text-muted f-s-11">3 minutes ago</div>
113
- </div>
114
- </a>
115
- </li>
116
- ...
117
- <li class="dropdown-footer text-center">
118
- <a href="javascript:;">View more</a>
119
- </li>
120
- </ul>
121
- </li>
122
- Topbar - Navigation Main - Notifications Menu -->
123
-
124
- <!-- Topbar - Navigation Main - User Menu -->
125
- <li class="dropdown navbar-user">
126
- <a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown">
127
- <%= image_tag current_admin.gravatar_url %>
128
- <span class="d-none d-md-inline"><%= current_admin.firstname + ' ' + current_admin.lastname %></span> <b class="caret"></b>
129
- </a>
130
- <div class="dropdown-menu dropdown-menu-right">
131
- <%= link_to phcaccounts.edit_admin_registration_path, class: "dropdown-item" do %>
132
- <i class="fas fa-cogs"></i> Account Settings
133
- <% end %>
134
- <%= link_to phcaccounts.destroy_admin_session_path, method: :delete, class: "dropdown-item" do %>
135
- <i class="fas fa-sign-out-alt"></i> Logout
136
- <% end %>
137
- </div>
138
- </li>
139
- <!-- Topbar - Navigation Main - User Menu -->
140
-
141
- </ul>
142
- <% end %>
143
78
  <!-- Topbar - Navigation Main -->