Awsome struct to share layouts between controllers and there methods

This commit is contained in:
JC 2016-11-22 16:03:32 +01:00
parent 7faf1705da
commit 4f9bcdd225
7 changed files with 57 additions and 53 deletions

View file

@ -3,6 +3,7 @@ class ApplicationController < ActionController::Base
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_action :check_browser
before_action :load_navbar_left_pannel_partial_url
def default_url_options
return { protocol: 'https' } if Rails.env.staging? || Rails.env.production?
@ -12,4 +13,13 @@ class ApplicationController < ActionController::Base
def check_browser
BROWSER.value = Browser.new(request.user_agent)
end
def load_navbar_left_pannel_partial_url
controller = request.controller_class
method = params[:action]
service = RenderPartialService.new(controller, method)
@navbar_url = service.navbar
@left_pannel_url = service.left_panel
@facade_data_view = nil
end
end

View file

@ -1,10 +1,10 @@
class Backoffice::DossiersController < Backoffice::DossiersListController
before_action :set_layout_options
respond_to :html, :xlsx, :ods, :csv
def index
super
dossiers_list_facade.service.filter_procedure_reset!
@facade_data_view = dossiers_list_facade
end
def show
@ -131,10 +131,6 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
private
def set_layout_options
@navbar_options = ["dossiers/download_dossiers"]
end
def create_dossier_facade dossier_id
@facade = DossierFacades.new dossier_id, current_gestionnaire.email

View file

@ -18,14 +18,14 @@ class RenderPartialService
private
def retrieve_navbar
'layouts/navbars/_navbar_' + retrieve_name
'layouts/navbars/navbar_' + retrieve_name
end
def retrieve_left_panel
'layouts/left_panel/_leftpanel_' + retrieve_name
'layouts/left_panels/left_panel_' + retrieve_name
end
def retrieve_name
controller.to_s.parameterize + '_' + method.to_s
controller.to_s.parameterize.underscore + '_' + method.to_s
end
end

View file

@ -11,22 +11,12 @@
= image_tag('marianne_small.png', class: 'logo')
%div.col-lg-6#tps-title
TPS
%div.col-lg-10.col-md-10.no-padding
%div#navbar-body
%div.row
%div.col-lg-7.col-md-7.main-info
Start UP region ile de france (8 dossiers en cours)
%div.col-lg-3.col-md-3.options
%div.row
- if @navbar_options
- @navbar_options.each do |option|
%div.col-lg-12.col-md-12
= render partial: option
%div.col-lg-1.col-md-1.log-options
%span.fa.fa-sign-out
= render partial: @navbar_url
- if false
- if false
- if gestionnaire_signed_in? && user_signed_in?
%a{href: (current_gestionnaire.procedure_filter.blank? ? backoffice_dossiers_path : backoffice_dossiers_procedure_path(current_gestionnaire.procedure_filter)), class: 'btn btn-md'}
=t('dynamics.backoffice.dossiers')

View file

@ -26,7 +26,7 @@
= render partial: "layouts/navbar"
%div.row.no-margin
%div.col-lg-2.col-md-2#left-pannel
= render partial: 'layouts/left_pannel'
= render partial: @left_pannel_url
%div.col-lg-10.col-md-10#main-container
%div.row
= render partial: 'layouts/flash_messages'

View file

@ -0,0 +1,8 @@
%div.col-lg-7.col-md-7.main-info
Start UP region ile de france (8 dossiers en cours)
%div.col-lg-3.col-md-3.options
%div.row
%div.col-lg-12.col-md-12
= render partial: "dossiers/download_dossiers"
%div.col-lg-1.col-md-1.log-options
%span.fa.fa-sign-out