OSDN Git Service

Squash project settings navs
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Wed, 19 Jun 2013 19:44:57 +0000 (22:44 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Wed, 19 Jun 2013 19:44:57 +0000 (22:44 +0300)
18 files changed:
app/assets/stylesheets/gitlab_bootstrap/nav.scss
app/controllers/deploy_keys_controller.rb
app/controllers/hooks_controller.rb
app/controllers/projects_controller.rb
app/controllers/services_controller.rb
app/controllers/team_members_controller.rb
app/views/deploy_keys/index.html.haml
app/views/deploy_keys/new.html.haml
app/views/deploy_keys/show.html.haml
app/views/hooks/index.html.haml
app/views/layouts/project_settings.html.haml [new file with mode: 0644]
app/views/projects/_settings_nav.html.haml
app/views/projects/edit.html.haml
app/views/services/edit.html.haml
app/views/services/index.html.haml
app/views/team_members/import.html.haml
app/views/team_members/index.html.haml
app/views/team_members/new.html.haml

index db0023c..5610290 100644 (file)
       color: $style_color;
       font-weight: bold;
     }
+
+    &.nav-stacked-menu {
+      background: #FAFAFA;
+      li > a {
+        padding: 20px;
+      }
+    }
   }
 }
 
index 35d28be..4bd810f 100644 (file)
@@ -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
index b7d25e3..feaa16b 100644 (file)
@@ -5,6 +5,8 @@ class HooksController < ProjectResourceController
 
   respond_to :html
 
+  layout "project_settings"
+
   def index
     @hooks = @project.hooks.all
     @hook = ProjectHook.new
index fad681e..62b8e62 100644 (file)
@@ -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
index fcfc4c8..5710f55 100644 (file)
@@ -5,6 +5,8 @@ class ServicesController < ProjectResourceController
 
   respond_to :html
 
+  layout "project_settings"
+
   def index
     @project.build_missing_services
     @services = @project.services.reload
index 0058c32..5f24931 100644 (file)
@@ -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')
index 7801302..a1fa347 100644 (file)
@@ -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
index 0bbea1e..b0e2a8b 100644 (file)
@@ -1,5 +1,3 @@
-= render "projects/settings_nav"
-
 %h3.page_title New Deploy key
 %hr
 
index 5b59d32..26fd742 100644 (file)
@@ -1,5 +1,3 @@
-= render "projects/settings_nav"
-
 %h3.page_title
   Deploy key:
   = @key.title
index 3155dd3..918c159 100644 (file)
@@ -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 (file)
index 0000000..ea739da
--- /dev/null
@@ -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
index 272c5e4..f59e287 100644 (file)
@@ -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
index 43199bc..562e4e3 100644 (file)
-= 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
index d4bc9e4..bcc5832 100644 (file)
@@ -1,3 +1 @@
-= render "projects/settings_nav"
-
 = render 'form'
index bd52948..6d254f6 100644 (file)
@@ -1,5 +1,3 @@
-= render "projects/settings_nav"
-
 %h3.page_title Services
 %br
 
index 0f7175b..2b22c91 100644 (file)
@@ -1,5 +1,3 @@
-= render "projects/settings_nav"
-
 %h3.page_title
   = "Import team from another project"
 %hr
index 146e5c0..59c65a6 100644 (file)
@@ -1,4 +1,3 @@
-= render "projects/settings_nav"
 %h3.page_title
   Users with access to this project
 
 %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
index 7e20f50..4f70fb4 100644 (file)
@@ -1,2 +1 @@
-= render "projects/settings_nav"
 = render "team_members/form"