diff --git a/app/views/application/_navigation.html.slim b/app/views/application/_navigation.html.slim index 127e170c..a8b7b382 100644 --- a/app/views/application/_navigation.html.slim +++ b/app/views/application/_navigation.html.slim @@ -9,8 +9,9 @@ li = link_to(t('breadcrumbs.dashboard.show'), admin_dashboard_path) li = link_to(t('breadcrumbs.statistics.show'), statistics_path) li.divider - - models = [ExecutionEnvironment, Exercise, ExerciseCollection, ProxyExercise, Tag, Consumer, CodeHarborLink, UserExerciseFeedback, - ErrorTemplate, ErrorTemplateAttribute, ExternalUser, FileType, FileTemplate, InternalUser].sort_by {|model| model.model_name.human(count: 2) } - - models.each do |model| - - if policy(model).index? - li = link_to(model.model_name.human(count: 2), send(:"#{model.model_name.collection}_path")) + = render('navigation_submenu', title: t('navigation.sections.integrations'), models: [Consumer, CodeHarborLink]) + = render('navigation_collection_link', model: ExecutionEnvironment) + = render('navigation_submenu', title: t('activerecord.models.exercise.other'), models: [Exercise, ExerciseCollection, ProxyExercise, Tag], link: exercises_path) + = render('navigation_submenu', title: t('navigation.sections.users'), models: [InternalUser, ExternalUser]) + = render('navigation_submenu', title: t('navigation.sections.errors'), models: [ErrorTemplate, ErrorTemplateAttribute]) + = render('navigation_submenu', title: t('navigation.sections.files'), models: [FileType, FileTemplate]) diff --git a/app/views/application/_navigation_collection_link.html.slim b/app/views/application/_navigation_collection_link.html.slim new file mode 100644 index 00000000..412ea0bd --- /dev/null +++ b/app/views/application/_navigation_collection_link.html.slim @@ -0,0 +1,2 @@ +- if policy(model).index? + li = link_to(model.model_name.human(count: 2), send(:"#{model.model_name.collection}_path")) diff --git a/app/views/application/_navigation_submenu.html.slim b/app/views/application/_navigation_submenu.html.slim new file mode 100644 index 00000000..c12e04a4 --- /dev/null +++ b/app/views/application/_navigation_submenu.html.slim @@ -0,0 +1,6 @@ +li.dropdown.dropdown-submenu + - link = link.nil? ? "#" : link + a href=link class="dropdown-toggle" data-toggle="dropdown" = title + ul class="dropdown-menu" + - models.each do |model| + = render('navigation_collection_link', model: model) diff --git a/config/locales/de.yml b/config/locales/de.yml index 05c7108e..149d8128 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -755,3 +755,9 @@ de: with_comments: "Anfragen mit Kommentaren" users: currently_active: "Aktiv (5 Minuten)" + navigation: + sections: + errors: "Fehler" + files: "Dateien" + users: "Benutzer" + integrations: "Integrationen" diff --git a/config/locales/en.yml b/config/locales/en.yml index 5d6ada43..fe12f410 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -755,3 +755,9 @@ en: with_comments: "RfCs with Comments" users: currently_active: "Active (5 minutes)" + navigation: + sections: + errors: "Errors" + files: "Files" + users: "Users" + integrations: "Integrations"