extract navbar + auto dropdown
This commit is contained in:
parent
26755a6ab4
commit
f27cf5378d
@ -9,6 +9,7 @@ class ApplicationController < ActionController::Base
|
||||
before_action :init_admin_menu
|
||||
|
||||
before_action :qi_menu
|
||||
before_action :set_navbar_dropdown
|
||||
|
||||
def qi_menu(sym=nil)
|
||||
|
||||
@ -499,7 +500,10 @@ class ApplicationController < ActionController::Base
|
||||
|
||||
end
|
||||
|
||||
|
||||
def set_navbar_dropdown
|
||||
@dropdown_elements = [:p_product_cats, :s_brands, :p_product_colors, :p_article_serial_nums, :p_serial_num_types, :p_product_ref_specs, :p_spec_values, :p_grades, :p_product_powers, :p_product_zones]
|
||||
@dropdown_title = "Parametrage"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
77
app/views/layouts/_navbar.haml
Normal file
77
app/views/layouts/_navbar.haml
Normal file
@ -0,0 +1,77 @@
|
||||
#qi_header_wrapper.fh-fixedHeader
|
||||
%nav#admin_nav.navbar.navbar-expand-lg.navbar-dark.bg-light
|
||||
%button.navbar-toggler{"type" => "button", "data-toggle" => "collapse", "data-target" => "#navbarSupportedContent", "aria-controls" => "navbarSupportedContent", "aria-expanded" => "false", "aria-label" => "Toggle navigation"}
|
||||
%span.navbar-toggler-icon
|
||||
#navbarSupportedContent.collapse.navbar-collapse
|
||||
%ul.navbar-nav.mr-auto
|
||||
-if @qi_menu_active
|
||||
-qi_menu_active = @qi_menus[@qi_menu_active]
|
||||
|
||||
-if qi_menu_active[:elements]
|
||||
-qi_menu_active[:elements].each do |k,v|
|
||||
-if !@dropdown_elements.include?(k)
|
||||
%li.nav-item{class: ("active" if @qi_menu_sub_menu_active and @qi_menu_sub_menu_active == k)}
|
||||
=link_to v[:name], v[:link], :class => "nav-link"
|
||||
-intersect = @dropdown_elements.&(qi_menu_active[:elements].keys)
|
||||
-if intersect.any?
|
||||
%li.nav-item.dropdown
|
||||
=link_to @dropdown_title, '#', class: "nav-link dropdown-toggle", id: "navbarDropdown", "role" => "button", "data-toggle" => "dropdown", "aria-haspopup" => "true", "aria-expanded" => "false"
|
||||
%ul.dropdown-menu{"aria-labelledby" => "navbarDropdown"}
|
||||
-qi_menu_active[:elements].each do |k,v|
|
||||
-if @dropdown_elements.include?(k)
|
||||
%li=link_to v[:name], v[:link], :class => "dropdown-item"+(" active" if (@qi_menu_sub_menu_active and @qi_menu_sub_menu_active == k)).to_s
|
||||
|
||||
|
||||
|
||||
|
||||
/ =qi_menu_active[:elements].each do |k,v|
|
||||
/ %li.dropdown-item=link_to v[:name], v[:link], :class => "nav-link "+("active" if (@qi_menu_sub_menu_active and @qi_menu_sub_menu_active == k)).to_s
|
||||
/ %li.nav-item= link_to v[:name], v[:link], :class => "nav-link "+("active" if (@qi_menu_sub_menu_active and @qi_menu_sub_menu_active == k)).to_s
|
||||
|
||||
|
||||
|
||||
%ul.nav.navbar-nav.navbar-right.ml-auto
|
||||
%li.nav-item.qi_help_remove{:style => ("display:none" if !session[:qi_helps] )}
|
||||
|
||||
=link_to ic(:"question-circle"), admin_qi_helps_path(), :onclick => '$(".qi_help").hide();$(".qi_help_add").show();$(".qi_help_remove").hide();', :remote => true, :class => "nav-link"
|
||||
|
||||
|
||||
%li.nav-item.qi_help_add{:style => ("display:none" if session[:qi_helps] )}
|
||||
=link_to ic(:"question-circle-o"), admin_qi_helps_path(:enabled => true), :onclick => '$(".qi_help").show();$(".qi_help_add").hide();$(".qi_help_remove").show();', :remote => true, :class => "nav-link"
|
||||
|
||||
|
||||
|
||||
-if session[:qi_helps]
|
||||
:scss
|
||||
.qi_help{
|
||||
display:inherit;
|
||||
|
||||
}
|
||||
-else
|
||||
:scss
|
||||
.qi_help{
|
||||
display:none;
|
||||
|
||||
}
|
||||
|
||||
|
||||
%li.nav-item.dropdown
|
||||
%a#navbarDropdown.nav-link.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :href => "#", :role => "button"}
|
||||
=current_admin.firstname
|
||||
=current_admin.name
|
||||
|
||||
|
||||
.dropdown-menu{"aria-labelledby" => "navbarDropdown"}
|
||||
= link_to "Gestion des admins", admin_admins_path, :class => "dropdown-item" if current_admin.super_admin
|
||||
.dropdown-divider
|
||||
=link_to "Se déconnecter", admin_admin_auth_path(1), method: :delete, :class => "dropdown-item"
|
||||
|
||||
|
||||
|
||||
|
||||
%li.nav-item
|
||||
=link_to ic(:refresh), "#", :onclick => "location.reload();", :class => "nav-link"
|
||||
|
||||
|
||||
|
||||
= yield :header
|
@ -86,104 +86,9 @@
|
||||
|
||||
|
||||
|
||||
#qi_header_wrapper.fh-fixedHeader
|
||||
|
||||
%nav#admin_nav.navbar.navbar-expand-lg.navbar-dark.bg-light
|
||||
%button.navbar-toggler{"aria-controls" => "navbarSupportedContent", "aria-expanded" => "false", "aria-label" => "Toggle navigation", "data-target" => "#navbarSupportedContent", "data-toggle" => "collapse", :type => "button"}
|
||||
%span.navbar-toggler-icon
|
||||
-if current_admin
|
||||
#navbarSupportedContent.collapse.navbar-collapse
|
||||
%ul.navbar-nav.mr-auto
|
||||
-if @qi_menu_active
|
||||
-qi_menu_active = @qi_menus[@qi_menu_active]
|
||||
|
||||
-if qi_menu_active[:elements]
|
||||
-qi_menu_active[:elements].each do |k,v|
|
||||
%li.nav-item= link_to v[:name], v[:link], :class => "nav-link "+("active" if (@qi_menu_sub_menu_active and @qi_menu_sub_menu_active == k)).to_s
|
||||
|
||||
%script
|
||||
=raw '$("#big_cat_'+@qi_menu_active.to_s+'").addClass("active");'
|
||||
|
||||
|
||||
|
||||
%form.form-inline.my-2.my-lg-0
|
||||
%ul.nav.navbar-nav.navbar-right
|
||||
%li.nav-item.qi_help_remove{:style => ("display:none" if !session[:qi_helps] )}
|
||||
|
||||
=link_to ic(:"question-circle"), admin_qi_helps_path(), :onclick => '$(".qi_help").hide();$(".qi_help_add").show();$(".qi_help_remove").hide();', :remote => true, :class => "nav-link"
|
||||
|
||||
|
||||
%li.nav-item.qi_help_add{:style => ("display:none" if session[:qi_helps] )}
|
||||
=link_to ic(:"question-circle-o"), admin_qi_helps_path(:enabled => true), :onclick => '$(".qi_help").show();$(".qi_help_add").hide();$(".qi_help_remove").show();', :remote => true, :class => "nav-link"
|
||||
|
||||
=render partial: "layouts/navbar"
|
||||
|
||||
|
||||
-if session[:qi_helps]
|
||||
:scss
|
||||
.qi_help{
|
||||
display:inherit;
|
||||
|
||||
}
|
||||
-else
|
||||
:scss
|
||||
.qi_help{
|
||||
display:none;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
%li.nav-item.qi_stat_remove{:style => ("display:none" if !session[:qi_stats] )}
|
||||
|
||||
=link_to raw("<span class='qi_stat_active'>"+ic(:"pie-chart")+"</span>"), admin_qi_stats_path(), :onclick => '$(".qi_stat, .qi_kpi").show();$(".qi_stat_add").show();$(".qi_stat_remove").hide();', :remote => true, :class => "nav-link"
|
||||
|
||||
|
||||
%li.nav-item.qi_stat_add{:style => ("display:none" if session[:qi_stats] )}
|
||||
=link_to ic(:"pie-chart"), admin_qi_stats_path(:enabled => true), :onclick => '$(".qi_stat, .qi_kpi").hide();$(".qi_stat_add").hide();$(".qi_stat_remove").show();', :remote => true, :class => "nav-link"
|
||||
|
||||
|
||||
|
||||
-if session[:qi_stats]
|
||||
:scss
|
||||
.qi_stat, .qi_kpi{
|
||||
display:none;
|
||||
|
||||
}
|
||||
|
||||
-else
|
||||
:scss
|
||||
.qi_stat, .qi_kpi{
|
||||
display:inherit;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
%li.nav-item.dropdown
|
||||
%a#navbarDropdown.nav-link.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :href => "#", :role => "button"}
|
||||
=current_admin.firstname
|
||||
=current_admin.name
|
||||
|
||||
|
||||
.dropdown-menu{"aria-labelledby" => "navbarDropdown"}
|
||||
= link_to "Gestion des admins", admin_admins_path, :class => "dropdown-item" if current_admin.super_admin
|
||||
.dropdown-divider
|
||||
=link_to "Se déconnecter", admin_admin_auth_path(1), method: :delete, :class => "dropdown-item"
|
||||
|
||||
-if super_current_admin
|
||||
%li.nav-item
|
||||
=link_to ic(:"user-secret"), admin_admins_path, :class => "nav-link"
|
||||
|
||||
|
||||
%li.nav-item
|
||||
=link_to ic(:refresh), "#", :onclick => "location.reload();", :class => "nav-link"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
= yield :header
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user