Commit 8cadeb67502d9f674dc69c0b05341269c2baeb8f
1 parent
19ab03f4
Exists in
master
and in
4 other branches
nav views refactoring
Showing
13 changed files
with
216 additions
and
203 deletions
Show diff stats
app/assets/stylesheets/sections/nav.scss
| 1 | -/* | |
| 2 | - * Main Menu of Application | |
| 3 | - * | |
| 4 | - */ | |
| 5 | -ul.main_menu { | |
| 6 | - margin: auto; | |
| 1 | +.main-nav { | |
| 7 | 2 | margin: 30px 0; |
| 8 | 3 | margin-top: 10px; |
| 9 | - height: 38px; | |
| 10 | - position: relative; | |
| 11 | - overflow: hidden; | |
| 12 | - .count { | |
| 4 | + border-bottom: 1px solid #E1E1E1; | |
| 5 | + | |
| 6 | + ul { | |
| 7 | + margin: auto; | |
| 8 | + height: 39px; | |
| 13 | 9 | position: relative; |
| 14 | - top: -1px; | |
| 15 | - display: inline-block; | |
| 16 | - height: 15px; | |
| 17 | - margin: 0 0 0 5px; | |
| 18 | - padding: 0 8px 1px 8px; | |
| 19 | - height: auto; | |
| 20 | - font-size: 0.82em; | |
| 21 | - line-height: 14px; | |
| 22 | - text-align: center; | |
| 23 | - color: #777; | |
| 24 | - } | |
| 25 | - .label { | |
| 26 | - background: $hover; | |
| 27 | - text-shadow: none; | |
| 28 | - color: $style_color; | |
| 29 | - } | |
| 30 | - li { | |
| 31 | - list-style-type: none; | |
| 32 | - margin: 0; | |
| 33 | - display: table-cell; | |
| 34 | - width: 1%; | |
| 35 | - border-bottom: 2px solid #EEE; | |
| 36 | - &.active { | |
| 37 | - border-bottom: 2px solid #474D57; | |
| 38 | - a { | |
| 39 | - color: $style_color; | |
| 40 | - } | |
| 10 | + top: 3px; | |
| 11 | + overflow: hidden; | |
| 12 | + .count { | |
| 13 | + position: relative; | |
| 14 | + top: -1px; | |
| 15 | + display: inline-block; | |
| 16 | + height: 15px; | |
| 17 | + margin: 0 0 0 5px; | |
| 18 | + padding: 0 8px 1px 8px; | |
| 19 | + height: auto; | |
| 20 | + font-size: 0.82em; | |
| 21 | + line-height: 14px; | |
| 22 | + text-align: center; | |
| 23 | + color: #777; | |
| 24 | + } | |
| 25 | + .label { | |
| 26 | + background: $hover; | |
| 27 | + text-shadow: none; | |
| 28 | + color: $style_color; | |
| 41 | 29 | } |
| 30 | + li { | |
| 31 | + list-style-type: none; | |
| 32 | + margin: 0; | |
| 33 | + display: table-cell; | |
| 34 | + width: 1%; | |
| 35 | + &.active { | |
| 36 | + border-bottom: 3px solid #777; | |
| 37 | + a { | |
| 38 | + color: $style_color; | |
| 39 | + font-weight: bolder; | |
| 40 | + } | |
| 41 | + } | |
| 42 | 42 | |
| 43 | - &.home { | |
| 44 | - a { | |
| 45 | - i { | |
| 46 | - font-size: 20px; | |
| 47 | - position: relative; | |
| 48 | - top: 4px; | |
| 43 | + &.home { | |
| 44 | + a { | |
| 45 | + i { | |
| 46 | + font-size: 20px; | |
| 47 | + position: relative; | |
| 48 | + top: 4px; | |
| 49 | + } | |
| 49 | 50 | } |
| 50 | 51 | } |
| 51 | 52 | } |
| 52 | - } | |
| 53 | - a { | |
| 54 | - display: block; | |
| 55 | - text-align: center; | |
| 56 | - font-weight: normal; | |
| 57 | - height: 36px; | |
| 58 | - line-height: 36px; | |
| 59 | - color: #777; | |
| 60 | - text-shadow: 0 1px 1px white; | |
| 61 | - padding: 0 10px; | |
| 53 | + a { | |
| 54 | + display: block; | |
| 55 | + text-align: center; | |
| 56 | + font-weight: normal; | |
| 57 | + height: 36px; | |
| 58 | + line-height: 34px; | |
| 59 | + color: #777; | |
| 60 | + text-shadow: 0 1px 1px white; | |
| 61 | + padding: 0 10px; | |
| 62 | + } | |
| 62 | 63 | } |
| 63 | 64 | } |
| 64 | -/* | |
| 65 | - * End of Main Menu | |
| 66 | - * | |
| 67 | - */ | |
| 68 | - | ... | ... |
app/views/layouts/admin.html.haml
| ... | ... | @@ -4,24 +4,8 @@ |
| 4 | 4 | %body{class: "#{app_theme} admin"} |
| 5 | 5 | = render "layouts/head_panel", title: "Admin area" |
| 6 | 6 | = render "layouts/flash" |
| 7 | - .container | |
| 8 | - %ul.main_menu | |
| 9 | - = nav_link(controller: :dashboard, html_options: {class: 'home'}) do | |
| 10 | - = link_to admin_root_path, title: "Stats" do | |
| 11 | - %i.icon-home | |
| 12 | - = nav_link(controller: :projects) do | |
| 13 | - = link_to "Projects", admin_projects_path | |
| 14 | - = nav_link(controller: :teams) do | |
| 15 | - = link_to "Teams", admin_teams_path | |
| 16 | - = nav_link(controller: :groups) do | |
| 17 | - = link_to "Groups", admin_groups_path | |
| 18 | - = nav_link(controller: :users) do | |
| 19 | - = link_to "Users", admin_users_path | |
| 20 | - = nav_link(controller: :logs) do | |
| 21 | - = link_to "Logs", admin_logs_path | |
| 22 | - = nav_link(controller: :hooks) do | |
| 23 | - = link_to "Hooks", admin_hooks_path | |
| 24 | - = nav_link(controller: :resque) do | |
| 25 | - = link_to "Background Jobs", admin_resque_path | |
| 7 | + %nav.main-nav | |
| 8 | + .container= render 'layouts/nav/admin' | |
| 26 | 9 | |
| 10 | + .container | |
| 27 | 11 | .content= yield | ... | ... |
app/views/layouts/application.html.haml
| ... | ... | @@ -4,25 +4,8 @@ |
| 4 | 4 | %body{class: "#{app_theme} application"} |
| 5 | 5 | = render "layouts/head_panel", title: "Dashboard" |
| 6 | 6 | = render "layouts/flash" |
| 7 | - .container | |
| 8 | - %ul.main_menu | |
| 9 | - = nav_link(path: 'dashboard#show', html_options: {class: 'home'}) do | |
| 10 | - = link_to root_path, title: "Home" do | |
| 11 | - %i.icon-home | |
| 12 | - = nav_link(path: 'dashboard#projects') do | |
| 13 | - = link_to projects_dashboard_path do | |
| 14 | - Projects | |
| 15 | - = nav_link(path: 'dashboard#issues') do | |
| 16 | - = link_to issues_dashboard_path do | |
| 17 | - Issues | |
| 18 | - %span.count= current_user.assigned_issues.opened.count | |
| 19 | - = nav_link(path: 'dashboard#merge_requests') do | |
| 20 | - = link_to merge_requests_dashboard_path do | |
| 21 | - Merge Requests | |
| 22 | - %span.count= current_user.cared_merge_requests.opened.count | |
| 23 | - = nav_link(path: 'search#show') do | |
| 24 | - = link_to "Search", search_path | |
| 25 | - = nav_link(controller: :help) do | |
| 26 | - = link_to "Help", help_path | |
| 7 | + %nav.main-nav | |
| 8 | + .container= render 'layouts/nav/dashboard' | |
| 27 | 9 | |
| 10 | + .container | |
| 28 | 11 | .content= yield | ... | ... |
app/views/layouts/group.html.haml
| ... | ... | @@ -4,25 +4,8 @@ |
| 4 | 4 | %body{class: "#{app_theme} application"} |
| 5 | 5 | = render "layouts/head_panel", title: "group: #{@group.name}" |
| 6 | 6 | = render "layouts/flash" |
| 7 | - .container | |
| 8 | - %ul.main_menu | |
| 9 | - = nav_link(path: 'groups#show', html_options: {class: 'home'}) do | |
| 10 | - = link_to group_path(@group), title: "Home" do | |
| 11 | - %i.icon-home | |
| 12 | - = nav_link(path: 'groups#issues') do | |
| 13 | - = link_to issues_group_path(@group) do | |
| 14 | - Issues | |
| 15 | - %span.count= current_user.assigned_issues.opened.of_group(@group).count | |
| 16 | - = nav_link(path: 'groups#merge_requests') do | |
| 17 | - = link_to merge_requests_group_path(@group) do | |
| 18 | - Merge Requests | |
| 19 | - %span.count= current_user.cared_merge_requests.opened.of_group(@group).count | |
| 20 | - = nav_link(path: 'groups#people') do | |
| 21 | - = link_to "People", people_group_path(@group) | |
| 22 | - | |
| 23 | - - if can?(current_user, :manage_group, @group) | |
| 24 | - = nav_link(path: 'groups#edit') do | |
| 25 | - = link_to edit_group_path(@group), class: "tab " do | |
| 26 | - Settings | |
| 7 | + %nav.main-nav | |
| 8 | + .container= render 'layouts/nav/group' | |
| 27 | 9 | |
| 10 | + .container | |
| 28 | 11 | .content= yield | ... | ... |
| ... | ... | @@ -0,0 +1,19 @@ |
| 1 | +%ul | |
| 2 | + = nav_link(controller: :dashboard, html_options: {class: 'home'}) do | |
| 3 | + = link_to admin_root_path, title: "Stats" do | |
| 4 | + %i.icon-home | |
| 5 | + = nav_link(controller: :projects) do | |
| 6 | + = link_to "Projects", admin_projects_path | |
| 7 | + = nav_link(controller: :teams) do | |
| 8 | + = link_to "Teams", admin_teams_path | |
| 9 | + = nav_link(controller: :groups) do | |
| 10 | + = link_to "Groups", admin_groups_path | |
| 11 | + = nav_link(controller: :users) do | |
| 12 | + = link_to "Users", admin_users_path | |
| 13 | + = nav_link(controller: :logs) do | |
| 14 | + = link_to "Logs", admin_logs_path | |
| 15 | + = nav_link(controller: :hooks) do | |
| 16 | + = link_to "Hooks", admin_hooks_path | |
| 17 | + = nav_link(controller: :resque) do | |
| 18 | + = link_to "Background Jobs", admin_resque_path | |
| 19 | + | ... | ... |
| ... | ... | @@ -0,0 +1,20 @@ |
| 1 | +%ul | |
| 2 | + = nav_link(path: 'dashboard#show', html_options: {class: 'home'}) do | |
| 3 | + = link_to root_path, title: "Home" do | |
| 4 | + %i.icon-home | |
| 5 | + = nav_link(path: 'dashboard#projects') do | |
| 6 | + = link_to projects_dashboard_path do | |
| 7 | + Projects | |
| 8 | + = nav_link(path: 'dashboard#issues') do | |
| 9 | + = link_to issues_dashboard_path do | |
| 10 | + Issues | |
| 11 | + %span.count= current_user.assigned_issues.opened.count | |
| 12 | + = nav_link(path: 'dashboard#merge_requests') do | |
| 13 | + = link_to merge_requests_dashboard_path do | |
| 14 | + Merge Requests | |
| 15 | + %span.count= current_user.cared_merge_requests.opened.count | |
| 16 | + = nav_link(path: 'search#show') do | |
| 17 | + = link_to "Search", search_path | |
| 18 | + = nav_link(controller: :help) do | |
| 19 | + = link_to "Help", help_path | |
| 20 | + | ... | ... |
| ... | ... | @@ -0,0 +1,20 @@ |
| 1 | +%ul | |
| 2 | + = nav_link(path: 'groups#show', html_options: {class: 'home'}) do | |
| 3 | + = link_to group_path(@group), title: "Home" do | |
| 4 | + %i.icon-home | |
| 5 | + = nav_link(path: 'groups#issues') do | |
| 6 | + = link_to issues_group_path(@group) do | |
| 7 | + Issues | |
| 8 | + %span.count= current_user.assigned_issues.opened.of_group(@group).count | |
| 9 | + = nav_link(path: 'groups#merge_requests') do | |
| 10 | + = link_to merge_requests_group_path(@group) do | |
| 11 | + Merge Requests | |
| 12 | + %span.count= current_user.cared_merge_requests.opened.of_group(@group).count | |
| 13 | + = nav_link(path: 'groups#people') do | |
| 14 | + = link_to "People", people_group_path(@group) | |
| 15 | + | |
| 16 | + - if can?(current_user, :manage_group, @group) | |
| 17 | + = nav_link(path: 'groups#edit') do | |
| 18 | + = link_to edit_group_path(@group), class: "tab " do | |
| 19 | + Settings | |
| 20 | + | ... | ... |
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +%ul | |
| 2 | + = nav_link(path: 'profiles#show', html_options: {class: 'home'}) do | |
| 3 | + = link_to profile_path, title: "Profile" do | |
| 4 | + %i.icon-home | |
| 5 | + = nav_link(path: 'profiles#account') do | |
| 6 | + = link_to "Account", account_profile_path | |
| 7 | + = nav_link(controller: :notifications) do | |
| 8 | + = link_to "Notifications", profile_notifications_path | |
| 9 | + = nav_link(controller: :keys) do | |
| 10 | + = link_to keys_path do | |
| 11 | + SSH Keys | |
| 12 | + %span.count= current_user.keys.count | |
| 13 | + = nav_link(path: 'profiles#design') do | |
| 14 | + = link_to "Design", design_profile_path | |
| 15 | + = nav_link(path: 'profiles#history') do | |
| 16 | + = link_to "History", history_profile_path | |
| 17 | + | ... | ... |
| ... | ... | @@ -0,0 +1,43 @@ |
| 1 | +%ul | |
| 2 | + = nav_link(path: 'projects#show', html_options: {class: "home"}) do | |
| 3 | + = link_to project_path(@project), title: "Project" do | |
| 4 | + %i.icon-home | |
| 5 | + | |
| 6 | + - unless @project.empty_repo? | |
| 7 | + - if can? current_user, :download_code, @project | |
| 8 | + = nav_link(controller: %w(tree blob blame)) do | |
| 9 | + = link_to 'Files', project_tree_path(@project, @ref || @repository.root_ref) | |
| 10 | + = nav_link(controller: %w(commit commits compare repositories protected_branches)) do | |
| 11 | + = link_to "Commits", project_commits_path(@project, @ref || @repository.root_ref) | |
| 12 | + = nav_link(controller: %w(graph)) do | |
| 13 | + = link_to "Network", project_graph_path(@project, @ref || @repository.root_ref) | |
| 14 | + | |
| 15 | + - if @project.issues_enabled | |
| 16 | + = nav_link(controller: %w(issues milestones labels)) do | |
| 17 | + = link_to url_for_project_issues do | |
| 18 | + Issues | |
| 19 | + - if @project.used_default_issues_tracker? | |
| 20 | + %span.count.issue_counter= @project.issues.opened.count | |
| 21 | + | |
| 22 | + - if @project.repo_exists? && @project.merge_requests_enabled | |
| 23 | + = nav_link(controller: :merge_requests) do | |
| 24 | + = link_to project_merge_requests_path(@project) do | |
| 25 | + Merge Requests | |
| 26 | + %span.count.merge_counter= @project.merge_requests.opened.count | |
| 27 | + | |
| 28 | + - if @project.wiki_enabled | |
| 29 | + = nav_link(controller: :wikis) do | |
| 30 | + = link_to 'Wiki', project_wiki_path(@project, :home) | |
| 31 | + | |
| 32 | + - if @project.wall_enabled | |
| 33 | + = nav_link(controller: :walls) do | |
| 34 | + = link_to 'Wall', project_wall_path(@project) | |
| 35 | + | |
| 36 | + - if @project.snippets_enabled | |
| 37 | + = nav_link(controller: :snippets) do | |
| 38 | + = link_to 'Snippets', project_snippets_path(@project) | |
| 39 | + | |
| 40 | + - if can? current_user, :admin_project, @project | |
| 41 | + = nav_link(html_options: {class: "#{project_tab_class}"}) do | |
| 42 | + = link_to edit_project_path(@project), class: "stat-tab tab " do | |
| 43 | + Settings | ... | ... |
| ... | ... | @@ -0,0 +1,25 @@ |
| 1 | +%ul | |
| 2 | + = nav_link(path: 'teams#show', html_options: {class: 'home'}) do | |
| 3 | + = link_to team_path(@team), title: "Home" do | |
| 4 | + %i.icon-home | |
| 5 | + | |
| 6 | + = nav_link(path: 'teams#issues') do | |
| 7 | + = link_to issues_team_path(@team) do | |
| 8 | + Issues | |
| 9 | + %span.count= Issue.opened.of_user_team(@team).count | |
| 10 | + | |
| 11 | + = nav_link(path: 'teams#merge_requests') do | |
| 12 | + = link_to merge_requests_team_path(@team) do | |
| 13 | + Merge Requests | |
| 14 | + %span.count= MergeRequest.opened.of_user_team(@team).count | |
| 15 | + | |
| 16 | + = nav_link(controller: [:members]) do | |
| 17 | + = link_to team_members_path(@team), class: "team-tab tab" do | |
| 18 | + Members | |
| 19 | + %span.count= @team.members.count | |
| 20 | + | |
| 21 | + - if can? current_user, :admin_user_team, @team | |
| 22 | + = nav_link(path: 'teams#edit') do | |
| 23 | + = link_to edit_team_path(@team), class: "stat-tab tab " do | |
| 24 | + Settings | |
| 25 | + | ... | ... |
app/views/layouts/profile.html.haml
| ... | ... | @@ -4,22 +4,8 @@ |
| 4 | 4 | %body{class: "#{app_theme} profile"} |
| 5 | 5 | = render "layouts/head_panel", title: "Profile" |
| 6 | 6 | = render "layouts/flash" |
| 7 | - .container | |
| 8 | - %ul.main_menu | |
| 9 | - = nav_link(path: 'profiles#show', html_options: {class: 'home'}) do | |
| 10 | - = link_to profile_path, title: "Profile" do | |
| 11 | - %i.icon-home | |
| 12 | - = nav_link(path: 'profiles#account') do | |
| 13 | - = link_to "Account", account_profile_path | |
| 14 | - = nav_link(controller: :notifications) do | |
| 15 | - = link_to "Notifications", profile_notifications_path | |
| 16 | - = nav_link(controller: :keys) do | |
| 17 | - = link_to keys_path do | |
| 18 | - SSH Keys | |
| 19 | - %span.count= current_user.keys.count | |
| 20 | - = nav_link(path: 'profiles#design') do | |
| 21 | - = link_to "Design", design_profile_path | |
| 22 | - = nav_link(path: 'profiles#history') do | |
| 23 | - = link_to "History", history_profile_path | |
| 7 | + %nav.main-nav | |
| 8 | + .container= render 'layouts/nav/profile' | |
| 24 | 9 | |
| 10 | + .container | |
| 25 | 11 | .content= yield | ... | ... |
app/views/layouts/project_resource.html.haml
| ... | ... | @@ -7,49 +7,8 @@ |
| 7 | 7 | - if can?(current_user, :download_code, @project) |
| 8 | 8 | = render 'shared/no_ssh' |
| 9 | 9 | |
| 10 | - .container | |
| 11 | - %ul.main_menu | |
| 12 | - = nav_link(path: 'projects#show', html_options: {class: "home"}) do | |
| 13 | - = link_to project_path(@project), title: "Project" do | |
| 14 | - %i.icon-home | |
| 15 | - | |
| 16 | - - unless @project.empty_repo? | |
| 17 | - - if can? current_user, :download_code, @project | |
| 18 | - = nav_link(controller: %w(tree blob blame)) do | |
| 19 | - = link_to 'Files', project_tree_path(@project, @ref || @repository.root_ref) | |
| 20 | - = nav_link(controller: %w(commit commits compare repositories protected_branches)) do | |
| 21 | - = link_to "Commits", project_commits_path(@project, @ref || @repository.root_ref) | |
| 22 | - = nav_link(controller: %w(graph)) do | |
| 23 | - = link_to "Network", project_graph_path(@project, @ref || @repository.root_ref) | |
| 24 | - | |
| 25 | - - if @project.issues_enabled | |
| 26 | - = nav_link(controller: %w(issues milestones labels)) do | |
| 27 | - = link_to url_for_project_issues do | |
| 28 | - Issues | |
| 29 | - - if @project.used_default_issues_tracker? | |
| 30 | - %span.count.issue_counter= @project.issues.opened.count | |
| 31 | - | |
| 32 | - - if @project.repo_exists? && @project.merge_requests_enabled | |
| 33 | - = nav_link(controller: :merge_requests) do | |
| 34 | - = link_to project_merge_requests_path(@project) do | |
| 35 | - Merge Requests | |
| 36 | - %span.count.merge_counter= @project.merge_requests.opened.count | |
| 37 | - | |
| 38 | - - if @project.wiki_enabled | |
| 39 | - = nav_link(controller: :wikis) do | |
| 40 | - = link_to 'Wiki', project_wiki_path(@project, :home) | |
| 41 | - | |
| 42 | - - if @project.wall_enabled | |
| 43 | - = nav_link(controller: :walls) do | |
| 44 | - = link_to 'Wall', project_wall_path(@project) | |
| 45 | - | |
| 46 | - - if @project.snippets_enabled | |
| 47 | - = nav_link(controller: :snippets) do | |
| 48 | - = link_to 'Snippets', project_snippets_path(@project) | |
| 49 | - | |
| 50 | - - if can? current_user, :admin_project, @project | |
| 51 | - = nav_link(html_options: {class: "#{project_tab_class}"}) do | |
| 52 | - = link_to edit_project_path(@project), class: "stat-tab tab " do | |
| 53 | - Settings | |
| 10 | + %nav.main-nav | |
| 11 | + .container= render 'layouts/nav/project' | |
| 54 | 12 | |
| 13 | + .container | |
| 55 | 14 | .content= yield | ... | ... |
app/views/layouts/user_team.html.haml
| ... | ... | @@ -4,30 +4,8 @@ |
| 4 | 4 | %body{class: "#{app_theme} application"} |
| 5 | 5 | = render "layouts/head_panel", title: "team: #{@team.name}" |
| 6 | 6 | = render "layouts/flash" |
| 7 | - .container | |
| 8 | - %ul.main_menu | |
| 9 | - = nav_link(path: 'teams#show', html_options: {class: 'home'}) do | |
| 10 | - = link_to team_path(@team), title: "Home" do | |
| 11 | - %i.icon-home | |
| 12 | - | |
| 13 | - = nav_link(path: 'teams#issues') do | |
| 14 | - = link_to issues_team_path(@team) do | |
| 15 | - Issues | |
| 16 | - %span.count= Issue.opened.of_user_team(@team).count | |
| 17 | - | |
| 18 | - = nav_link(path: 'teams#merge_requests') do | |
| 19 | - = link_to merge_requests_team_path(@team) do | |
| 20 | - Merge Requests | |
| 21 | - %span.count= MergeRequest.opened.of_user_team(@team).count | |
| 22 | - | |
| 23 | - = nav_link(controller: [:members]) do | |
| 24 | - = link_to team_members_path(@team), class: "team-tab tab" do | |
| 25 | - Members | |
| 26 | - %span.count= @team.members.count | |
| 27 | - | |
| 28 | - - if can? current_user, :admin_user_team, @team | |
| 29 | - = nav_link(path: 'teams#edit') do | |
| 30 | - = link_to edit_team_path(@team), class: "stat-tab tab " do | |
| 31 | - Settings | |
| 7 | + %nav.main-nav | |
| 8 | + .container= render 'layouts/nav/team' | |
| 32 | 9 | |
| 10 | + .container | |
| 33 | 11 | .content= yield | ... | ... |