diff --git a/app/assets/stylesheets/gitlab_bootstrap/nav.scss b/app/assets/stylesheets/gitlab_bootstrap/nav.scss index db0023c..5610290 100644 --- a/app/assets/stylesheets/gitlab_bootstrap/nav.scss +++ b/app/assets/stylesheets/gitlab_bootstrap/nav.scss @@ -22,6 +22,13 @@ color: $style_color; font-weight: bold; } + + &.nav-stacked-menu { + background: #FAFAFA; + li > a { + padding: 20px; + } + } } } diff --git a/app/controllers/deploy_keys_controller.rb b/app/controllers/deploy_keys_controller.rb index 35d28be..4bd810f 100644 --- a/app/controllers/deploy_keys_controller.rb +++ b/app/controllers/deploy_keys_controller.rb @@ -4,6 +4,8 @@ class DeployKeysController < ProjectResourceController # Authorize before_filter :authorize_admin_project! + layout "project_settings" + def index @enabled_keys = @project.deploy_keys.all @available_keys = available_keys - @enabled_keys diff --git a/app/controllers/hooks_controller.rb b/app/controllers/hooks_controller.rb index b7d25e3..feaa16b 100644 --- a/app/controllers/hooks_controller.rb +++ b/app/controllers/hooks_controller.rb @@ -5,6 +5,8 @@ class HooksController < ProjectResourceController respond_to :html + layout "project_settings" + def index @hooks = @project.hooks.all @hook = ProjectHook.new diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index fad681e..62b8e62 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -15,6 +15,7 @@ class ProjectsController < ProjectResourceController end def edit + render 'edit', layout: "project_settings" end def create @@ -42,7 +43,7 @@ class ProjectsController < ProjectResourceController format.html { redirect_to edit_project_path(@project), notice: 'Project was successfully updated.' } format.js else - format.html { render action: "edit" } + format.html { render action: "edit", layout: "project_settings" } format.js end end diff --git a/app/controllers/services_controller.rb b/app/controllers/services_controller.rb index fcfc4c8..5710f55 100644 --- a/app/controllers/services_controller.rb +++ b/app/controllers/services_controller.rb @@ -5,6 +5,8 @@ class ServicesController < ProjectResourceController respond_to :html + layout "project_settings" + def index @project.build_missing_services @services = @project.services.reload diff --git a/app/controllers/team_members_controller.rb b/app/controllers/team_members_controller.rb index 0058c32..5f24931 100644 --- a/app/controllers/team_members_controller.rb +++ b/app/controllers/team_members_controller.rb @@ -3,6 +3,8 @@ class TeamMembersController < ProjectResourceController before_filter :authorize_read_project! before_filter :authorize_admin_project!, except: [:index, :show] + layout "project_settings" + def index @group = @project.group @users_projects = @project.users_projects.order('project_access DESC') diff --git a/app/views/deploy_keys/index.html.haml b/app/views/deploy_keys/index.html.haml index 7801302..a1fa347 100644 --- a/app/views/deploy_keys/index.html.haml +++ b/app/views/deploy_keys/index.html.haml @@ -1,5 +1,3 @@ -= render "projects/settings_nav" - %p.slead Deploy keys allow read-only access to repository. They can be used for CI, staging or production servers @@ -12,7 +10,7 @@ %hr.clearfix .row - .span6.enabled-keys + .span5.enabled-keys %h5.cgreen Enabled deploy keys %small for this project @@ -21,7 +19,7 @@ - if @enabled_keys.blank? .light-well %p.nothing_here_message Create #{link_to 'new deploy key', new_project_deploy_key_path(@project)} or add existing one - .span6.available-keys + .span5.available-keys %h5 Available deploy keys %small from projects you are able to manage diff --git a/app/views/deploy_keys/new.html.haml b/app/views/deploy_keys/new.html.haml index 0bbea1e..b0e2a8b 100644 --- a/app/views/deploy_keys/new.html.haml +++ b/app/views/deploy_keys/new.html.haml @@ -1,5 +1,3 @@ -= render "projects/settings_nav" - %h3.page_title New Deploy key %hr diff --git a/app/views/deploy_keys/show.html.haml b/app/views/deploy_keys/show.html.haml index 5b59d32..26fd742 100644 --- a/app/views/deploy_keys/show.html.haml +++ b/app/views/deploy_keys/show.html.haml @@ -1,5 +1,3 @@ -= render "projects/settings_nav" - %h3.page_title Deploy key: = @key.title diff --git a/app/views/hooks/index.html.haml b/app/views/hooks/index.html.haml index 3155dd3..918c159 100644 --- a/app/views/hooks/index.html.haml +++ b/app/views/hooks/index.html.haml @@ -1,5 +1,3 @@ -= render "projects/settings_nav" - - if can? current_user, :admin_project, @project .alert.alert-info %span diff --git a/app/views/layouts/project_settings.html.haml b/app/views/layouts/project_settings.html.haml new file mode 100644 index 0000000..ea739da --- /dev/null +++ b/app/views/layouts/project_settings.html.haml @@ -0,0 +1,20 @@ +!!! 5 +%html{ lang: "en"} + = render "layouts/head", title: @project.name_with_namespace + %body{class: "#{app_theme} project", :'data-page' => body_data_page, :'data-project-id' => @project.id } + = render "layouts/head_panel", title: project_title(@project) + = render "layouts/init_auto_complete" + = render "layouts/flash" + - if can?(current_user, :download_code, @project) + = render 'shared/no_ssh' + + %nav.main-nav + .container= render 'layouts/nav/project' + + .container + .content + .row + .span2 + = render "projects/settings_nav" + .span10 + = yield diff --git a/app/views/projects/_settings_nav.html.haml b/app/views/projects/_settings_nav.html.haml index 272c5e4..f59e287 100644 --- a/app/views/projects/_settings_nav.html.haml +++ b/app/views/projects/_settings_nav.html.haml @@ -1,8 +1,8 @@ -%ul.nav.nav-tabs +%ul.nav.nav-pills.nav-stacked.nav-stacked-menu = nav_link(path: 'projects#edit') do = link_to edit_project_path(@project), class: "stat-tab tab " do %i.icon-edit - Edit + Edit Project = nav_link(controller: [:team_members, :teams]) do = link_to project_team_index_path(@project), class: "team-tab tab" do %i.icon-group diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml index 43199bc..562e4e3 100644 --- a/app/views/projects/edit.html.haml +++ b/app/views/projects/edit.html.haml @@ -1,175 +1,153 @@ -= render "projects/settings_nav" - .project-edit-container - %h3.page_title Edit Project - %hr .project-edit-errors .project-edit-content - .row - .span3 - %ul.nav.nav-pills.nav-stacked - %li.active - = link_to 'Settings', '#tab-settings', 'data-toggle' => 'tab' - %li - = link_to 'Rename repo', '#tab-rename', 'data-toggle' => 'tab' - %li - = link_to 'Transfer', '#tab-transfer', 'data-toggle' => 'tab' - %li - = link_to 'Remove', '#tab-remove', 'data-toggle' => 'tab' - - .span9 - .tab-content - .tab-pane.active#tab-settings - .ui-box.white - %h5.title Settings: - .form-holder - = form_for(@project, remote: true) do |f| - %fieldset - .clearfix.project_name_holder - = f.label :name do - Project name is - .input - = f.text_field :name, placeholder: "Example Project", class: "span5" - - - .clearfix - = f.label :description do - Project description - %span.light (optional) - .input - = f.text_area :description, placeholder: "awesome project", class: "span5", rows: 3, maxlength: 250 - - - unless @project.empty_repo? - .clearfix - = f.label :default_branch, "Default Branch" - .input= f.select(:default_branch, @repository.branch_names, {}, {class: 'chosen'}) - - - - if can?(current_user, :change_public_mode, @project) - %fieldset.public-mode - %legend - Public mode: - .control-group - = f.label :public, class: 'control-label' do - %span Public access - .controls - = f.check_box :public - %span.descr - If checked, this project can be cloned - %em without any - authentication. - It will also be listed on the #{link_to "public access directory", public_root_path}. - %em Any - user will have #{link_to "Guest", help_permissions_path} permissions on the repository. - - %fieldset.features - %legend - Labels: - .control-group - = f.label :label_list, "Labels", class: 'control-label' - .controls - = f.text_field :label_list, maxlength: 2000, class: "span5" - %p.hint Separate with comma. - - %fieldset.features - %legend - Features: - .control-group - = f.label :issues_enabled, "Issues", class: 'control-label' - .controls - = f.check_box :issues_enabled - %span.descr Lightweight issue tracking system for this project - - - if Project.issues_tracker.values.count > 1 - .control-group - = f.label :issues_tracker, "Issues tracker", class: 'control-label' - .input= f.select(:issues_tracker, Project.issues_tracker.values, {}, { disabled: !@project.issues_enabled }) - - .clearfix - = f.label :issues_tracker_id, "Project name or id in issues tracker", class: 'control-label' - .input= f.text_field :issues_tracker_id, disabled: !@project.can_have_issues_tracker_id? - - .control-group - = f.label :merge_requests_enabled, "Merge Requests", class: 'control-label' - .controls - = f.check_box :merge_requests_enabled - %span.descr Submit changes to be merged upstream. - - .control-group - = f.label :wiki_enabled, "Wiki", class: 'control-label' - .controls - = f.check_box :wiki_enabled - %span.descr Pages for project documentation - - .control-group - = f.label :wall_enabled, "Wall", class: 'control-label' - .controls - = f.check_box :wall_enabled - %span.descr Simple chat system for broadcasting inside project - - .control-group - = f.label :snippets_enabled, "Snippets", class: 'control-label' - .controls - = f.check_box :snippets_enabled - %span.descr Share code pastes with others out of git repository - - - .form-actions - = f.submit 'Save', class: "btn btn-save" - - .tab-pane#tab-transfer - - if can?(current_user, :change_namespace, @project) - .ui-box.ui-box-danger - %h5.title Transfer project - .errors-holder - .form-holder - = form_for(@project, url: transfer_project_path(@project), remote: true, html: { class: 'transfer-project' }) do |f| - .control-group - = f.label :namespace_id do - %span Namespace - .controls - .clearfix - = f.select :namespace_id, namespaces_options(@project.namespace_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'} - %ul - %li Be careful. Changing project namespace can have unintended side effects - %li You can transfer project only to namespaces you can manage - %li You will need to update your local repositories to point to the new location. - .form-actions - = f.submit 'Transfer', class: "btn btn-remove" - - else - %p.nothing_here_message Only project owner can transfer a project - - .tab-pane#tab-rename - .ui-box.ui-box-danger - %h5.title Rename repository - .errors-holder - .form-holder - = form_for(@project) do |f| - .control-group - = f.label :path do - %span Path - .controls - .clearfix - = f.text_field :path - %ul - %li Be careful. Rename of project repo can have unintended side effects - %li You will need to update your local repositories to point to the new location. - .form-actions - = f.submit 'Rename', class: "btn btn-remove" - - .tab-pane#tab-remove - - if can?(current_user, :remove_project, @project) - .ui-box.ui-box-danger - %h5.title Remove project - .ui-box-body - %p - Remove of project will cause removing repository and all related resources like issues, merge requests etc. - %p - %strong Removed project can not be restored! - - = link_to 'Remove project', @project, confirm: remove_project_message(@project), method: :delete, class: "btn btn-remove btn-small" - - else - %p.nothing_here_message Only project owner can remove a project + .ui-box.white + %h5.title Settings: + .form-holder + = form_for(@project, remote: true) do |f| + %fieldset + .clearfix.project_name_holder + = f.label :name do + Project name is + .input + = f.text_field :name, placeholder: "Example Project", class: "span5" + + + .clearfix + = f.label :description do + Project description + %span.light (optional) + .input + = f.text_area :description, placeholder: "awesome project", class: "span5", rows: 3, maxlength: 250 + + - unless @project.empty_repo? + .clearfix + = f.label :default_branch, "Default Branch" + .input= f.select(:default_branch, @repository.branch_names, {}, {class: 'chosen'}) + + + - if can?(current_user, :change_public_mode, @project) + %fieldset.public-mode + %legend + Public mode: + .control-group + = f.label :public, class: 'control-label' do + %span Public access + .controls + = f.check_box :public + %span.descr + If checked, this project can be cloned + %em without any + authentication. + It will also be listed on the #{link_to "public access directory", public_root_path}. + %em Any + user will have #{link_to "Guest", help_permissions_path} permissions on the repository. + + %fieldset.features + %legend + Labels: + .control-group + = f.label :label_list, "Labels", class: 'control-label' + .controls + = f.text_field :label_list, maxlength: 2000, class: "span5" + %p.hint Separate with comma. + + %fieldset.features + %legend + Features: + .control-group + = f.label :issues_enabled, "Issues", class: 'control-label' + .controls + = f.check_box :issues_enabled + %span.descr Lightweight issue tracking system for this project + + - if Project.issues_tracker.values.count > 1 + .control-group + = f.label :issues_tracker, "Issues tracker", class: 'control-label' + .input= f.select(:issues_tracker, Project.issues_tracker.values, {}, { disabled: !@project.issues_enabled }) + + .clearfix + = f.label :issues_tracker_id, "Project name or id in issues tracker", class: 'control-label' + .input= f.text_field :issues_tracker_id, disabled: !@project.can_have_issues_tracker_id? + + .control-group + = f.label :merge_requests_enabled, "Merge Requests", class: 'control-label' + .controls + = f.check_box :merge_requests_enabled + %span.descr Submit changes to be merged upstream. + + .control-group + = f.label :wiki_enabled, "Wiki", class: 'control-label' + .controls + = f.check_box :wiki_enabled + %span.descr Pages for project documentation + + .control-group + = f.label :wall_enabled, "Wall", class: 'control-label' + .controls + = f.check_box :wall_enabled + %span.descr Simple chat system for broadcasting inside project + + .control-group + = f.label :snippets_enabled, "Snippets", class: 'control-label' + .controls + = f.check_box :snippets_enabled + %span.descr Share code pastes with others out of git repository + + + .form-actions + = f.submit 'Save', class: "btn btn-save" + + - if can?(current_user, :change_namespace, @project) + .ui-box.ui-box-danger + %h5.title Transfer project + .errors-holder + .form-holder + = form_for(@project, url: transfer_project_path(@project), remote: true, html: { class: 'transfer-project' }) do |f| + .control-group + = f.label :namespace_id do + %span Namespace + .controls + .clearfix + = f.select :namespace_id, namespaces_options(@project.namespace_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'} + %ul + %li Be careful. Changing project namespace can have unintended side effects + %li You can transfer project only to namespaces you can manage + %li You will need to update your local repositories to point to the new location. + .form-actions + = f.submit 'Transfer', class: "btn btn-remove" + - else + %p.nothing_here_message Only project owner can transfer a project + + .ui-box.ui-box-danger + %h5.title Rename repository + .errors-holder + .form-holder + = form_for(@project) do |f| + .control-group + = f.label :path do + %span Path + .controls + .clearfix + = f.text_field :path + %ul + %li Be careful. Rename of project repo can have unintended side effects + %li You will need to update your local repositories to point to the new location. + .form-actions + = f.submit 'Rename', class: "btn btn-remove" + + - if can?(current_user, :remove_project, @project) + .ui-box.ui-box-danger + %h5.title Remove project + .ui-box-body + %p + Remove of project will cause removing repository and all related resources like issues, merge requests etc. + %p + %strong Removed project can not be restored! + + = link_to 'Remove project', @project, confirm: remove_project_message(@project), method: :delete, class: "btn btn-remove btn-small" + - else + %p.nothing_here_message Only project owner can remove a project .save-project-loader.hide %center diff --git a/app/views/services/edit.html.haml b/app/views/services/edit.html.haml index d4bc9e4..bcc5832 100644 --- a/app/views/services/edit.html.haml +++ b/app/views/services/edit.html.haml @@ -1,3 +1 @@ -= render "projects/settings_nav" - = render 'form' diff --git a/app/views/services/index.html.haml b/app/views/services/index.html.haml index bd52948..6d254f6 100644 --- a/app/views/services/index.html.haml +++ b/app/views/services/index.html.haml @@ -1,5 +1,3 @@ -= render "projects/settings_nav" - %h3.page_title Services %br diff --git a/app/views/team_members/import.html.haml b/app/views/team_members/import.html.haml index 0f7175b..2b22c91 100644 --- a/app/views/team_members/import.html.haml +++ b/app/views/team_members/import.html.haml @@ -1,5 +1,3 @@ -= render "projects/settings_nav" - %h3.page_title = "Import team from another project" %hr diff --git a/app/views/team_members/index.html.haml b/app/views/team_members/index.html.haml index 146e5c0..59c65a6 100644 --- a/app/views/team_members/index.html.haml +++ b/app/views/team_members/index.html.haml @@ -1,4 +1,3 @@ -= render "projects/settings_nav" %h3.page_title Users with access to this project @@ -12,15 +11,6 @@ %p.light Read more about project permissions %strong= link_to "here", help_permissions_path, class: "vlink" - -.clearfix - - if @group - .row - .span6 - = render "team_members/group_members" - .span6 - = render "team_members/team", members: @users_projects - -- else - = render "team_members/team", members: @users_projects + = render "team_members/group_members" += render "team_members/team", members: @users_projects diff --git a/app/views/team_members/new.html.haml b/app/views/team_members/new.html.haml index 7e20f50..4f70fb4 100644 --- a/app/views/team_members/new.html.haml +++ b/app/views/team_members/new.html.haml @@ -1,2 +1 @@ -= render "projects/settings_nav" = render "team_members/form" -- libgit2 0.21.2