diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 76cf36c..517c5a8 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -545,9 +545,13 @@ class ApplicationController < ActionController::Base if @qi_menu_active.present? current_menu = @qi_menus[@qi_menu_active] current_controller = controller_name.to_sym + @action = action_name.to_sym + @result[:first] = {name: current_menu[:name], link: current_menu[:link]} @result[:second] = current_menu[:elements][current_controller] - @title = @result[:first][:name].to_s + '/' + @result[:second][:name].to_s + if @result[:first][:name] == @result[:second][:name] + @result[:second] = nil + end end end end diff --git a/app/helpers/breadcrumb_helper.rb b/app/helpers/breadcrumb_helper.rb index 84b4c0b..84bac8c 100644 --- a/app/helpers/breadcrumb_helper.rb +++ b/app/helpers/breadcrumb_helper.rb @@ -1,35 +1,31 @@ module BreadcrumbHelper - def breadcrumb(*custom_last_item) - if custom_last_item.present? - first_title_length = @result[:first][:name].to_s.length + 1 - @title.slice!(0, first_title_length) - @title << "/" + custom_last_item[0] - end - if @result.present? - capture_haml do - haml_tag :h1 do - haml_concat(link_to @result[:first][:name], @result[:first][:link]) - haml_tag :span do - haml_concat(link_to @result[:second][:name], @result[:second][:link]) - if custom_last_item.present? - haml_tag :span do - haml_concat(custom_last_item[0]) - end + def breadcrumb(options = {}) + options = {action: @action}.merge options + + capture_haml do + haml_tag :h1 do + unless @result.present? + haml_concat "Erreur dans le BreadcrumbHelper" + else + if options[:custom_last_item].present? + haml_concat(link_to @result[:first][:name], @result[:first][:link]) + haml_tag(:span) { haml_concat(link_to @result[:second][:name], @result[:second][:link]) } if @result[:second].present? + case options[:action] + when :new + haml_tag(:span) {haml_concat("Création #{@result[:first][:name].singularize.downcase}")} + when :edit + haml_tag(:span) {haml_concat('Modification')} + when :index + haml_tag(:span) {haml_concat('Liste')} end + + haml_tag(:span) {haml_concat(options[:custom_last_item])} + else + @result[:second].present? ? haml_concat(link_to @result[:first][:name], @result[:first][:link]) : haml_concat( @result[:first][:name]) + haml_tag(:span) { haml_concat( @result[:second][:name]) } if @result[:second].present? end end end - else - capture_haml do - haml_tag :h1 do - haml_concat "Erreur dans le BreadcrumbHelper" - end - end end end - - def breadcrumb_title - @result[:first][:name] + "/" + result[:second][:name] - end - end diff --git a/app/views/admin/p_customers/index.html.haml b/app/views/admin/p_customers/index.html.haml index c7ddc07..8c34c18 100644 --- a/app/views/admin/p_customers/index.html.haml +++ b/app/views/admin/p_customers/index.html.haml @@ -9,7 +9,8 @@ =link_to "< Retour aux demandes de commande", admin_p_customer_sheets_path %h1 - Clients + =breadcrumb + =hello