4c44c5ef9a
Public projects listed in the public section will be linked to the actual project's page. Public projects now give any user Guest permissions to the project, allowing them to download the code, read and create issues, and view anything else in the project's pages. Ample access tests have been added to the project_access_spec to verify correct permissions and behavior on public projects. - Visitors to the site who are not logged in still cannot view the project's pages. - Logged-in users visiting a public project where they are not a team member can create issues, but not snippets. They can view the projects code, issues, merge requests, etc, just as if they were a Guest member of the project. - Since this is a public project, the user is also granted :download_code permissions, a permission normally reserved for Reporters, since they can clone the repo anyways and browse commits and branches locally.
151 lines
6.4 KiB
Text
151 lines
6.4 KiB
Text
.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: "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, {})
|
|
|
|
|
|
- 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 || 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"
|
|
- else
|
|
%p.nothing_here_message Only project owner can transfer a project
|
|
|
|
.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"
|
|
- else
|
|
%p.nothing_here_message Only project owner can remove a project
|