From 66b14fc0bf2f8edb772b9704e38b4beb9f78c29d Mon Sep 17 00:00:00 2001 From: Ridhwana Date: Mon, 12 Oct 2020 22:05:47 +0200 Subject: [PATCH] [deploy] Dynamic frontend for the sidebar navigation Items (#10754) * feat: configure the frontend for sidebar nav links * chore: add a comment * changes to the admin interface * feat: move the temporary task to be in the rake tasks and use it in the dev seeds * feat: use the task in the rake seeds * refactor: reuse the form across two modals * refactor: use the form partial * feat: change the modal to be large * fix: naming * Update db/seeds.rb Co-authored-by: Michael Kohl * chore: make the file readable * chore: removed the if else as the rake task was run on all forems + i sent out a message to new communities * oops * refactor: add a scope * chore: oops removed this * feat: add navigation links specs * spec: fix two failing ones Co-authored-by: Michael Kohl --- app/assets/stylesheets/admin.scss | 5 + app/assets/stylesheets/articles.scss | 5 + .../admin/navigation_links_controller.rb | 2 +- app/models/navigation_link.rb | 2 + .../_add_navigation_link_modal.html.erb | 26 +---- .../_edit_navigation_link_modal.html.erb | 23 +--- .../admin/navigation_links/_form.html.erb | 25 +++++ .../admin/navigation_links/index.html.erb | 42 +++---- app/views/articles/_sidebar_nav.html.erb | 75 +++---------- app/views/articles/_sidebar_nav_link.html.erb | 11 ++ db/seeds.rb | 6 + lib/tasks/add_navigation_links.rake | 105 ++++++++++++++++++ .../temporary/add_dev_navigation_links.rake | 58 ---------- spec/factories/navigation_links.rb | 4 +- spec/requests/admin/navigation_link_spec.rb | 2 +- .../homepage/user_visits_homepage_spec.rb | 99 +++++++++++++++-- 16 files changed, 294 insertions(+), 196 deletions(-) create mode 100644 app/views/admin/navigation_links/_form.html.erb create mode 100644 app/views/articles/_sidebar_nav_link.html.erb create mode 100644 lib/tasks/add_navigation_links.rake delete mode 100644 lib/tasks/temporary/add_dev_navigation_links.rake diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss index 4c6938080..95c4754a0 100644 --- a/app/assets/stylesheets/admin.scss +++ b/app/assets/stylesheets/admin.scss @@ -96,3 +96,8 @@ .admin-navigation-links { width: 240px; } + +.admin-navigation-links .crayons-icon svg { + width: 24px; + height: 24px; +} diff --git a/app/assets/stylesheets/articles.scss b/app/assets/stylesheets/articles.scss index 277186a2b..65ab6c563 100644 --- a/app/assets/stylesheets/articles.scss +++ b/app/assets/stylesheets/articles.scss @@ -115,6 +115,11 @@ max-height: 420px; } +.sidebar-navigation-links .crayons-icon svg { + height: 24px; + weight: 24px; +} + @keyframes fade-in { 0% { opacity: 0; diff --git a/app/controllers/admin/navigation_links_controller.rb b/app/controllers/admin/navigation_links_controller.rb index 7fd9a5d71..e2b5edcb5 100644 --- a/app/controllers/admin/navigation_links_controller.rb +++ b/app/controllers/admin/navigation_links_controller.rb @@ -6,7 +6,7 @@ module Admin layout "admin" def index - @navigation_links = NavigationLink.order(position: :asc, name: :asc) + @navigation_links = NavigationLink.ordered end def create diff --git a/app/models/navigation_link.rb b/app/models/navigation_link.rb index 6bbd5e26f..ea41d9911 100644 --- a/app/models/navigation_link.rb +++ b/app/models/navigation_link.rb @@ -5,4 +5,6 @@ class NavigationLink < ApplicationRecord validates :url, url: { schemes: %w[https http] }, uniqueness: { scope: :name } validates :icon, format: SVG_REGEXP validates :display_only_when_signed_in, inclusion: { in: [true, false] } + + scope :ordered, -> { order(position: :asc, name: :asc) } end diff --git a/app/views/admin/navigation_links/_add_navigation_link_modal.html.erb b/app/views/admin/navigation_links/_add_navigation_link_modal.html.erb index 68a68b4c0..7a4bd233b 100644 --- a/app/views/admin/navigation_links/_add_navigation_link_modal.html.erb +++ b/app/views/admin/navigation_links/_add_navigation_link_modal.html.erb @@ -1,9 +1,9 @@ -