From 921eb1a464ebf7fb3b4eebabf7d9ab8264b48420 Mon Sep 17 00:00:00 2001 From: Sebastian Serth Date: Tue, 5 May 2020 16:51:47 +0200 Subject: [PATCH] Add title to CodeOcean pages --- app/views/application/_breadcrumbs.html.slim | 20 ------------ .../_breadcrumbs_and_title.html.slim | 32 +++++++++++++++++++ app/views/layouts/application.html.slim | 6 ++-- 3 files changed, 36 insertions(+), 22 deletions(-) delete mode 100644 app/views/application/_breadcrumbs.html.slim create mode 100644 app/views/application/_breadcrumbs_and_title.html.slim diff --git a/app/views/application/_breadcrumbs.html.slim b/app/views/application/_breadcrumbs.html.slim deleted file mode 100644 index 9af36b87..00000000 --- a/app/views/application/_breadcrumbs.html.slim +++ /dev/null @@ -1,20 +0,0 @@ -- if current_user.try(:admin?) or current_user.try(:teacher?) - .container - ul.breadcrumb - - if model = Kernel.const_get(controller_path.classify) rescue nil - - object = model.find_by(id: params[:id]) - - if model.try(:nested_resource?) - li.breadcrumb-item = model.model_name.human(count: 2) - - if object - li.breadcrumb-item = object - - else - li.breadcrumb-item = link_to_if(policy(model).index?, model.model_name.human(count: 2), send(:"#{model.model_name.collection}_path")) - - if object - li.breadcrumb-item = link_to_if(policy(object).show?, object, send(:"#{model.model_name.singular}_path", object)) - li.breadcrumb-item.active - - if I18n.translation_present?("shared.#{params[:action]}") - = t("shared.#{params[:action]}") - - else - = t("#{controller_name}.index.#{params[:action]}") - - else - li.breadcrumb-item.active = t("breadcrumbs.#{controller_name}.#{params[:action]}") diff --git a/app/views/application/_breadcrumbs_and_title.html.slim b/app/views/application/_breadcrumbs_and_title.html.slim new file mode 100644 index 00000000..c78ff5ca --- /dev/null +++ b/app/views/application/_breadcrumbs_and_title.html.slim @@ -0,0 +1,32 @@ +- if model = Kernel.const_get(controller_path.classify) rescue nil + - object = model.find_by(id: params[:id]) + - if model.try(:nested_resource?) + - root_element = model.model_name.human(count: 2) + - if object + - current_element = object + - else + - root_element = link_to_if(policy(model).index?, model.model_name.human(count: 2), send(:"#{model.model_name.collection}_path")) + - if object + - current_element = link_to_if(policy(object).show?, object, send(:"#{model.model_name.singular}_path", object)) + - if I18n.translation_present?("shared.#{params[:action]}") + - active_action = t("shared.#{params[:action]}") + - else + - active_action = t("#{controller_name}.index.#{params[:action]}") +- else + - active_action = t("breadcrumbs.#{controller_name}.#{params[:action]}") + + +- title = "#{active_action} - #{application_name}" +- content_for :breadcrumbs do + - if current_user.try(:admin?) or current_user.try(:teacher?) && !@embed_options[:hide_navbar] + .container + ul.breadcrumb + - if root_element.present? + li.breadcrumb-item = root_element + - if current_element.present? + li.breadcrumb-item = current_element + - title = "#{object} - #{title}" + - else + - title = "#{model.model_name.human(count: 2)} - #{title}" + li.breadcrumb-item.active = active_action +- content_for :title, title diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 2ba1967f..b27cfb45 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -3,7 +3,9 @@ html lang='en' head meta charset='utf8' meta name='viewport' content='width=device-width, initial-scale=1' - title = application_name + = render('breadcrumbs_and_title') + title + = yield(:title) link href=asset_path('favicon.png') rel='icon' type='image/png' = action_cable_meta_tag = stylesheet_pack_tag('application', media: 'all', 'data-turbolinks-track': true) @@ -49,7 +51,7 @@ html lang='en' = render('session') div data-controller=controller_name = render('flash') - = render('breadcrumbs') if (current_user.try(:admin?) or current_user.try(:teacher?)) && !@embed_options[:hide_navbar] + = yield(:breadcrumbs) - if (controller_name == "exercises" && action_name == "implement") .container-fluid = yield