From ecb5c669475d278ff4d3d2a28611581d4ce7f2a8 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Fri, 26 Aug 2022 11:06:27 +0200 Subject: [PATCH] menu --- .../extranet/_default/layouts/_nav.sass | 16 ++++++- .../extranet/_default/pages/_person.sass | 3 +- .../simple_navigation/bootstrap_renderer.rb | 43 +++++++++++-------- app/views/extranet/account/show.html.erb | 14 ++++++ .../extranet/persons/_experience.html.erb | 24 +++++++++++ app/views/extranet/persons/show.html.erb | 33 ++------------ config/navigation.rb | 12 +----- 7 files changed, 84 insertions(+), 61 deletions(-) create mode 100644 app/views/extranet/persons/_experience.html.erb diff --git a/app/assets/stylesheets/extranet/_default/layouts/_nav.sass b/app/assets/stylesheets/extranet/_default/layouts/_nav.sass index e7b67e6af..680d799a3 100644 --- a/app/assets/stylesheets/extranet/_default/layouts/_nav.sass +++ b/app/assets/stylesheets/extranet/_default/layouts/_nav.sass @@ -3,22 +3,34 @@ .navbar-brand img max-width: 100px + .nav-link + color: black .active .nav-link color: $navbar-link-active-color .navbar-collapse flex-grow: 0 + + .dropdown-menu + border: 0 + padding: 0 .navbar-toggler border: 0 font-size: px2rem(14) line-height: px2rem(28) + padding-right: 0 text-transform: uppercase @include media-breakpoint-up(md) margin-bottom: 100px - .nav + .navbar-nav li:last-child .nav-link padding-right: 0 @include media-breakpoint-down(md) - .nav + .navbar-nav + background: white display: block + left: 0 + position: fixed + right: 0 text-align: right + padding: 1rem diff --git a/app/assets/stylesheets/extranet/_default/pages/_person.sass b/app/assets/stylesheets/extranet/_default/pages/_person.sass index 457d66a45..503783c9a 100644 --- a/app/assets/stylesheets/extranet/_default/pages/_person.sass +++ b/app/assets/stylesheets/extranet/_default/pages/_person.sass @@ -1,4 +1,5 @@ -.persons-show +.persons-show, +.account-show .top h1 font-weight: normal diff --git a/app/services/simple_navigation/bootstrap_renderer.rb b/app/services/simple_navigation/bootstrap_renderer.rb index 21646e9f9..185db87e1 100644 --- a/app/services/simple_navigation/bootstrap_renderer.rb +++ b/app/services/simple_navigation/bootstrap_renderer.rb @@ -1,6 +1,6 @@ class SimpleNavigation::BootstrapRenderer < SimpleNavigation::Renderer::Base def render(item_container) - content = '<ul class="nav">' + content = '<ul class="navbar-nav">' item_container.items.each do |item| content << make(item) end @@ -11,34 +11,39 @@ class SimpleNavigation::BootstrapRenderer < SimpleNavigation::Renderer::Base protected def make(item) - li = "<li class=\"sidebar-item #{ item.html_options[:class] } #{ ' disabled' unless item.url }\">" + has_sub_navigation = consider_sub_navigation?(item) + li = "<li class=\"nav-item" + li += " active" if item.selected? + li += " dropdown" if has_sub_navigation + li += "\">" li += make_a(item) - li += make_subnavigation(item) if consider_sub_navigation?(item) - li += '</li>' - li - end - - def make_item(item) - li = "<li class=\"nav-item #{ item.html_options[:class] } #{ ' disabled' unless item.url }\">" - li += make_a(item) - li += make_subnavigation(item) if consider_sub_navigation?(item) + li += make_subnavigation(item) if has_sub_navigation li += '</li>' li end def make_a(item) - icon = item.send(:options)[:icon] - a = "<a href=\"#{ item.url }\" class=\"nav-link#{ item.selected? ? '' : ' collapsed' }\"" - a += " data-bs-target=\"##{ item.key }\" data-bs-toggle=\"collapse\"" if consider_sub_navigation?(item) + has_sub_navigation = consider_sub_navigation?(item) + a = "<a href=\"#{ item.url }\" class=\"nav-link" + a += " dropdown-toggle" if has_sub_navigation + a += "\"" + a += " data-bs-toggle=\"dropdown\" aria-expanded=\"false\"" if has_sub_navigation a += ">" - a += "<i class=\"fas fa-#{ icon }\"></i>" if icon - a += "<span class=\"align-middle\">#{ item.name }</span></a>" + a += item.name + a += "</a>" a end def make_subnavigation(item) - "<ul id=\"#{ item.key }\" class=\"sidebar-dropdown list-unstyled #{ item.selected? ? 'show' : 'collapse' }\"> - #{ render_sub_navigation_for item } - </ul>" + ul = "<ul class=\"dropdown-menu\">" + item.sub_navigation.items.each do |i| + ul += "<li>" + ul += "<a href=\"#{ i.url }\" class=\"dropdown-item\">" + ul += i.name + ul += "</a>" + ul += "</li>" + end + ul += "</ul>" + ul end end diff --git a/app/views/extranet/account/show.html.erb b/app/views/extranet/account/show.html.erb index a0b28a37e..dde3ac4d0 100644 --- a/app/views/extranet/account/show.html.erb +++ b/app/views/extranet/account/show.html.erb @@ -3,9 +3,23 @@ <%= render 'extranet/persons/header', person: @person unless @person.nil? %> <%= link_to t('extranet.account.edit'), edit_account_path, class: 'btn btn-primary' %> +<%= link_to t('extranet.account.logout'), destroy_user_session_path, method: :delete, class: 'btn text-danger' %> <div class="row"> <div class="col-md-9"> + <div class="biography"> + <p><%= @person.biography %></p> + </div> + <% if @person.experiences.any? %> + <div class="experiences"> + <p class="mb-4">Parcours professionel</p> + <ul> + <% @person.experiences.ordered.each do |experience| %> + <li><%= render 'extranet/persons/experience', experience: experience %></li> + <% end %> + </ul> + </div> + <% end %> </div> <div class="col-md-3"> <%= render 'extranet/persons/details', person: @person unless @person.nil? %> diff --git a/app/views/extranet/persons/_experience.html.erb b/app/views/extranet/persons/_experience.html.erb new file mode 100644 index 000000000..4b8839d94 --- /dev/null +++ b/app/views/extranet/persons/_experience.html.erb @@ -0,0 +1,24 @@ +<div> + <p><b><%= experience.description %></b></p> + <p class="mb-0"> + <%= "#{experience.from_year} —" if experience.from_year %> + <%= experience.to_year || t('today') %> + </p> +</div> +<div> + <% if experience.organization.present? %> + <p><%= link_to experience.organization, experience.organization %></p> + <% if experience.organization.url %> + <p class="mb-0"><small><%= link_to experience.organization.url, experience.organization.url %></small></p> + <% end %> + <% end %> +</div> +<div> + <% if experience.organization.present? %> + <% if experience.organization.logo.attached? %> + <%= link_to experience.organization do %> + <%= kamifusen_tag experience.organization.logo, height: 80, class: 'img-fluid' %> + <% end %> + <% end %> + <% end %> +</div> diff --git a/app/views/extranet/persons/show.html.erb b/app/views/extranet/persons/show.html.erb index 6ae31ae89..46d6642a6 100644 --- a/app/views/extranet/persons/show.html.erb +++ b/app/views/extranet/persons/show.html.erb @@ -5,43 +5,18 @@ <div class="row"> <div class="col-md-9"> <div class="biography"> - <p><%= @person.biography %></p> + <p><%= @person&.biography %></p> </div> - <% if @person.experiences.any? %> + <% if @person&.experiences.any? %> <div class="experiences"> <p class="mb-4">Parcours professionel</p> <ul> <% @person.experiences.ordered.each do |experience| %> - <li> - <div> - <p><b><%= experience.description %></b></p> - <p class="mb-0"> - <%= "#{experience.from_year} —" if experience.from_year %> - <%= experience.to_year || t('today') %> - </p> - </div> - <div> - <% if experience.organization.present? %> - <p><%= link_to experience.organization, experience.organization %></p> - <% if experience.organization.url %> - <p class="mb-0"><small><%= link_to experience.organization.url, experience.organization.url %></small></p> - <% end %> - <% end %> - </div> - <div> - <% if experience.organization.present? %> - <% if experience.organization.logo.attached? %> - <%= link_to experience.organization do %> - <%= kamifusen_tag experience.organization.logo, height: 80, class: 'img-fluid' %> - <% end %> - <% end %> - <% end %> - </div> - </li> + <li><%= render 'extranet/persons/experience', experience: experience %></li> <% end %> </ul> </div> - <% end %> + <% end %> </div> <div class="col-md-3"> <%= render 'extranet/persons/details', person: @person %> diff --git a/config/navigation.rb b/config/navigation.rb index 098c9bb14..c3f27ac3c 100644 --- a/config/navigation.rb +++ b/config/navigation.rb @@ -17,15 +17,7 @@ SimpleNavigation::Configuration.run do |navigation| University::Organization.model_name.human(count: 2), university_organizations_path primary.item :account, - current_user, - nil do |secondary| - secondary.item :edit, - t('extranet.account.my'), - account_path - secondary.item :logout, - t('extranet.account.logout'), - destroy_user_session_path, - method: :delete - end + t('extranet.account.my'), + account_path end end -- GitLab