Improve usability of project edit page

5-0-stable
Dmitriy Zaporozhets 2013-03-18 20:50:41 +02:00
parent 0c884498d2
commit 6956f1f6e1
2 changed files with 123 additions and 94 deletions

View File

@ -155,6 +155,9 @@
padding-top: 20px;
form {
margin-bottom: 0;
legend {
text-indent: 10px;
}
.form-actions {
margin-bottom: 0;
}

View File

@ -1,102 +1,128 @@
= form_for(@project, remote: true) do |f|
- if @project.errors.any?
.alert.alert-error
%ul
- @project.errors.full_messages.each do |msg|
%li= msg
.clearfix.project_name_holder
= f.label :name do
Project name is
.input
= f.text_field :name, placeholder: "Example Project", class: "xxlarge"
.row
.span3
%ul.nav.nav-pills.nav-stacked
%li.active
= link_to 'Settings', '#tab-settings', '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|
- if @project.errors.any?
.alert.alert-error
%ul
- @project.errors.full_messages.each do |msg|
%li= msg
%fieldset
.clearfix.project_name_holder
= f.label :name do
Project name is
.input
= f.text_field :name, placeholder: "Example Project", class: "xxlarge"
- unless @repository.heads.empty?
.clearfix
= f.label :default_branch, "Default Branch"
.input= f.select(:default_branch, @repository.heads.map(&:name), {}, style: "width:210px;")
- unless @repository.heads.empty?
.clearfix
= f.label :default_branch, "Default Branch"
.input= f.select(:default_branch, @repository.heads.map(&:name), {}, style: "width:210px;")
.clearfix
= f.label :description do
Project description
%span.light (optional)
.input
= f.text_area :description, placeholder: "awesome project", class: "xxlarge", rows: 3, maxlength: 250
%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, class: "xxlarge", 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 :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 :wiki_enabled, "Wiki", class: 'control-label'
.controls
= f.check_box :wiki_enabled
%span.descr Pages for project documentation
- if can?(current_user, :change_public_mode, @project)
%fieldset.features
%legend
%i.icon-share
Public mode:
.control-group
= f.label :public, class: 'control-label' do
%span Public clone access
.controls
= f.check_box :public
%span.descr
If checked, this project can be cloned
%em without any
authentification.
It will also be listed on the #{link_to "public access directory", public_root_path}.
.clearfix
= f.label :description do
Project description
%span.light (optional)
.input
= f.text_area :description, placeholder: "awesome project", class: "xxlarge", rows: 3, maxlength: 250
- if can? current_user, :change_namespace, @project
%fieldset.features
%legend Transfer:
.control-group
= f.label :namespace_id do
%span Namespace
.controls
= f.select :namespace_id, namespaces_options(@project.namespace_id || Namespace::global_id), {prompt: 'Choose a project namespace'}, {class: 'chosen'}
%br
%ul.prepend-top-10.cred
%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.
- 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 clone access
.controls
= f.check_box :public
%span.descr
If checked, this project can be cloned
%em without any
authentification.
It will also be listed on the #{link_to "public access directory", public_root_path}.
%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
%br
- 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 })
.actions
= f.submit 'Save', class: "btn btn-save"
= link_to 'Cancel', @project, class: "btn"
- unless @project.new_record?
- if can?(current_user, :remove_project, @project)
.pull-right
= link_to 'Remove Project', @project, confirm: 'Removed project can not be restored! Are you sure?', method: :delete, class: "btn btn-remove"
.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 :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 :wiki_enabled, "Wiki", class: 'control-label'
.controls
= f.check_box :wiki_enabled
%span.descr Pages for project documentation
.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
.form-holder
= form_for(@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 || Namespace::global_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"
.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: 'Removed project can not be restored! Are you sure?', method: :delete, class: "btn btn-remove btn-small"