edit.html.haml 14.3 KB
Newer Older
1 2
- @blank_container = true

3
.project-edit-container.prepend-top-default
4 5
  .project-edit-errors
  .project-edit-content
6 7
    .panel.panel-default
      .panel-heading
8
        Project settings
D
Dmitriy Zaporozhets 已提交
9
      .panel-body
D
Dmitriy Zaporozhets 已提交
10
        = form_for [@project.namespace.becomes(Namespace), @project], remote: true, html: { multipart: true, class: "edit_project form-horizontal fieldset-form" }, authenticity_token: true do |f|
11

12
          %fieldset
D
Dmitriy Zaporozhets 已提交
13
            .form-group.project_name_holder
D
Dmitriy Zaporozhets 已提交
14
              = f.label :name, class: 'control-label' do
D
David Pursehouse 已提交
15
                Project name
D
Dmitriy Zaporozhets 已提交
16
              .col-sm-10
17
                = f.text_field :name, class: "form-control", id: "project_name_edit"
18 19


D
Dmitriy Zaporozhets 已提交
20
            .form-group
D
Dmitriy Zaporozhets 已提交
21
              = f.label :description, class: 'control-label' do
22 23
                Project description
                %span.light (optional)
D
Dmitriy Zaporozhets 已提交
24
              .col-sm-10
25
                = f.text_area :description, class: "form-control", rows: 3, maxlength: 250
26

27
            - unless @project.empty_repo?
D
Dmitriy Zaporozhets 已提交
28
              .form-group
D
Dmitriy Zaporozhets 已提交
29
                = f.label :default_branch, "Default Branch", class: 'control-label'
30
                .col-sm-10= f.select(:default_branch, @project.repository.branch_names, {}, {class: 'select2 select-wide'})
31 32


V
Valery Sizov 已提交
33
          = render 'shared/visibility_level', f: f, visibility_level: @project.visibility_level, can_change_visibility_level: can_change_visibility_level?(@project, current_user), form_model: @project
34

35 36 37
          .form-group
            = f.label :tag_list, "Tags", class: 'control-label'
            .col-sm-10
V
Valery Sizov 已提交
38
              = f.text_field :tag_list, value: @project.tag_list.to_s, maxlength: 2000, class: "form-control"
39
              %p.help-block Separate tags with commas.
40 41 42 43

          %fieldset.features
            %legend
              Features:
D
Dmitriy Zaporozhets 已提交
44
            .form-group
D
Dmitriy Zaporozhets 已提交
45
              .col-sm-offset-2.col-sm-10
D
Dmitriy Zaporozhets 已提交
46
                .checkbox
D
Dmitriy Zaporozhets 已提交
47 48 49 50 51
                  = f.label :issues_enabled do
                    = f.check_box :issues_enabled
                    %strong Issues
                    %br
                    %span.descr Lightweight issue tracking system for this project
52

D
Dmitriy Zaporozhets 已提交
53
            .form-group
D
Dmitriy Zaporozhets 已提交
54
              .col-sm-offset-2.col-sm-10
D
Dmitriy Zaporozhets 已提交
55
                .checkbox
D
Dmitriy Zaporozhets 已提交
56 57 58 59
                  = f.label :merge_requests_enabled do
                    = f.check_box :merge_requests_enabled
                    %strong Merge Requests
                    %br
60 61 62 63 64 65 66 67 68 69
                    %span.descr Submit changes to be merged upstream

            .form-group
              .col-sm-offset-2.col-sm-10
                .checkbox
                  = f.label :builds_enabled do
                    = f.check_box :builds_enabled
                    %strong Builds
                    %br
                    %span.descr Test and deploy your changes before merge
70

D
Dmitriy Zaporozhets 已提交
71
            .form-group
D
Dmitriy Zaporozhets 已提交
72
              .col-sm-offset-2.col-sm-10
D
Dmitriy Zaporozhets 已提交
73
                .checkbox
D
Dmitriy Zaporozhets 已提交
74 75 76 77 78
                  = f.label :wiki_enabled do
                    = f.check_box :wiki_enabled
                    %strong Wiki
                    %br
                    %span.descr Pages for project documentation
79

D
Dmitriy Zaporozhets 已提交
80
            .form-group
D
Dmitriy Zaporozhets 已提交
81
              .col-sm-offset-2.col-sm-10
D
Dmitriy Zaporozhets 已提交
82
                .checkbox
D
Dmitriy Zaporozhets 已提交
83 84 85 86 87
                  = f.label :snippets_enabled do
                    = f.check_box :snippets_enabled
                    %strong Snippets
                    %br
                    %span.descr Share code pastes with others out of git repository
88

89 90 91 92
          %fieldset.features
            %legend
              Project avatar:
            .form-group
93
              .col-sm-offset-2.col-sm-10
94
                - if @project.avatar?
V
Vinnie Okada 已提交
95
                  = project_icon("#{@project.namespace.to_param}/#{@project.to_param}", alt: '', class: 'avatar project-avatar s160')
96 97 98 99 100 101 102
                %p.light
                  - if @project.avatar_in_git
                    Project avatar in repository: #{ @project.avatar_in_git }
                %p.light
                  - if @project.avatar?
                    You can change your project avatar here
                  - else
103
                    You can upload a project avatar here
D
Dmitriy Zaporozhets 已提交
104
                %a.choose-btn.btn.btn-sm.js-choose-project-avatar-button
105 106 107 108 109
                  %i.icon-paper-clip
                  %span Choose File ...
                 
                %span.file_name.js-avatar-filename File name...
                = f.file_field :avatar, class: "js-project-avatar-input hidden"
110
                .light The maximum file size allowed is 200KB.
111 112
                - if @project.avatar?
                  %hr
D
Dmitriy Zaporozhets 已提交
113
                  = link_to 'Remove avatar', namespace_project_avatar_path(@project.namespace, @project), data: { confirm: "Project avatar will be removed. Are you sure?"}, method: :delete, class: "btn btn-remove btn-sm remove-avatar"
114

K
Kamil Trzcinski 已提交
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
          %fieldset.features
            %legend
              Continuous Integration
            .form-group
              .col-sm-offset-2.col-sm-10
                %p Get recent application code using the following command:
                .radio
                  = f.label :build_allow_git_fetch do
                    = f.radio_button :build_allow_git_fetch, 'false'
                    %strong git clone
                    %br
                    %span.descr Slower but makes sure you have a clean dir before every build
                .radio
                  = f.label :build_allow_git_fetch do
                    = f.radio_button :build_allow_git_fetch, 'true'
                    %strong git fetch
                    %br
                    %span.descr Faster
K
Kamil Trzcinski 已提交
133

K
Kamil Trzcinski 已提交
134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
            .form-group
              = f.label :build_timeout_in_minutes, 'Timeout', class: 'control-label'
              .col-sm-10
                = f.number_field :build_timeout_in_minutes, class: 'form-control', min: '0'
                %p.help-block per build in minutes
            .form-group
              = f.label :build_coverage_regex, "Test coverage parsing", class: 'control-label'
              .col-sm-10
                .input-group
                  %span.input-group-addon /
                  = f.text_field :build_coverage_regex, class: 'form-control', placeholder: '\(\d+.\d+\%\) covered'
                  %span.input-group-addon /
                %p.help-block
                  We will use this regular expression to find test coverage output in build trace.
                  Leave blank if you want to disable this feature
                .bs-callout.bs-callout-info
                  %p Below are examples of regex for existing tools:
                  %ul
                    %li
                      Simplecov (Ruby) -
                      %code \(\d+.\d+\%\) covered
                    %li
                      pytest-cov (Python) -
                      %code \d+\%\s*$
                    %li
                      phpunit --coverage-text --colors=never (PHP) -
                      %code ^\s*Lines:\s*\d+.\d+\%
K
Kamil Trzcinski 已提交
161

162 163 164
              .form-group
                .col-sm-offset-2.col-sm-10
                  .checkbox
165 166 167 168
                    = f.label :public_builds do
                      = f.check_box :public_builds
                      %strong Public builds
                    .help-block Allow everyone to access builds for Public and Internal projects
K
Kamil Trzcinski 已提交
169

K
Kamil Trzcinski 已提交
170 171 172 173
          %fieldset.features
            %legend
              Advanced settings
            .form-group
K
Kamil Trzcinski 已提交
174
              = f.label :runners_token, "CI token", class: 'control-label'
K
Kamil Trzcinski 已提交
175
              .col-sm-10
K
Kamil Trzcinski 已提交
176
                = f.text_field :runners_token, class: "form-control", placeholder: 'xEeFCaDAB89'
K
Kamil Trzcinski 已提交
177 178
                %p.help-block The secure token used to checkout project.

179
          .form-actions
180
            = f.submit 'Save changes', class: "btn btn-save"
181

182 183


184
    .danger-settings
185 186 187 188 189 190 191 192 193 194 195 196 197
      .panel.panel-default
        .panel-heading Housekeeping
        .errors-holder
        .panel-body
          %p
            Runs a number of housekeeping tasks within the current repository,
            such as compressing file revisions and removing unreachable objects.
            %br

          .form-actions
            = link_to 'Housekeeping', housekeeping_namespace_project_path(@project.namespace, @project),
                method: :post, class: "btn btn-default"

198
      - if can? current_user, :archive_project, @project
D
Dmitriy Zaporozhets 已提交
199 200 201
        - if @project.archived?
          .panel.panel-success
            .panel-heading
202
              Unarchive project
D
Dmitriy Zaporozhets 已提交
203
            .panel-body
204 205 206 207 208 209
              %p
                Unarchiving the project will mark its repository as active.
                %br
                The project can be committed to.
                %br
                %strong Once active this project shows up in the search and on the dashboard.
210 211 212 213 214

              .form-actions
                = link_to 'Unarchive project', unarchive_namespace_project_path(@project.namespace, @project),
                    data: { confirm: "Are you sure that you want to unarchive this project?\nWhen this project is unarchived it is active and can be committed to again." },
                    method: :post, class: "btn btn-success"
D
Dmitriy Zaporozhets 已提交
215 216 217 218 219
        - else
          .panel.panel-warning
            .panel-heading
              Archive project
            .panel-body
220 221 222 223 224 225
              %p
                Archiving the project will mark its repository as read-only.
                %br
                It is hidden from the dashboard and doesn't show up in searches.
                %br
                %strong Archived projects cannot be committed to!
226 227 228 229 230

              .form-actions
                = link_to 'Archive project', archive_namespace_project_path(@project.namespace, @project),
                    data: { confirm: "Are you sure that you want to archive this project?\nAn archived project cannot be committed to." },
                    method: :post, class: "btn btn-warning"
231 232 233 234 235 236 237
      - else
        .nothing-here-block Only the project owner can archive a project

      .panel.panel-default.panel.panel-warning
        .panel-heading Rename repository
        .errors-holder
        .panel-body
V
Vinnie Okada 已提交
238
          = form_for([@project.namespace.becomes(Namespace), @project], html: { class: 'form-horizontal' }) do |f|
239 240 241 242 243
            .form-group.project_name_holder
              = f.label :name, class: 'control-label' do
                Project name
              .col-sm-9
                .form-group
244
                  = f.text_field :name, class: "form-control"
245 246 247 248 249 250
            .form-group
              = f.label :path, class: 'control-label' do
                %span Path
              .col-sm-9
                .form-group
                  .input-group
251 252
                    .input-group-addon
                      #{URI.join(root_url, @project.namespace.path)}/
253 254 255 256 257
                    = f.text_field :path, class: 'form-control'
                %ul
                  %li Be careful. Renaming a project's repository can have unintended side effects.
                  %li You will need to update your local repositories to point to the new location.
            .form-actions
258
              = f.submit 'Rename project', class: "btn btn-warning"
259 260 261 262

      - if can?(current_user, :change_namespace, @project)
        .panel.panel-default.panel.panel-danger
          .panel-heading Transfer project
263 264
          .errors-holder
          .panel-body
V
Vinnie Okada 已提交
265
            = form_for([@project.namespace.becomes(Namespace), @project], url: transfer_namespace_project_path(@project.namespace, @project), method: :put, remote: true, html: { class: 'transfer-project form-horizontal' }) do |f|
266
              .form-group
V
Vinnie Okada 已提交
267
                = label_tag :new_namespace_id, nil, class: 'control-label' do
268
                  %span Namespace
M
Metalaka 已提交
269
                .col-sm-9
270
                  .form-group
V
Vinnie Okada 已提交
271
                    = select_tag :new_namespace_id, namespaces_options(@project.namespace_id), { prompt: 'Choose a project namespace', class: 'select2' }
272
                  %ul
273 274
                    %li Be careful. Changing the project's namespace can have unintended side effects.
                    %li You can only transfer the project to namespaces you manage.
275 276
                    %li You will need to update your local repositories to point to the new location.
              .form-actions
277
                = f.submit 'Transfer project', class: "btn btn-remove js-confirm-danger", data: { "confirm-danger-message" => transfer_project_message(@project) }
278 279
      - else
        .nothing-here-block Only the project owner can transfer a project
280

D
Douwe Maan 已提交
281 282 283 284 285 286 287 288 289 290 291
      - if @project.forked?
        - if can?(current_user, :remove_fork_project, @project)
          = form_for([@project.namespace.becomes(Namespace), @project], url: remove_fork_namespace_project_path(@project.namespace, @project), method: :delete, remote: true, html: { class: 'transfer-project form-horizontal' }) do |f|
            .panel.panel-default.panel.panel-danger
              .panel-heading Remove fork relationship
              .panel-body
                %p
                  This will remove the fork relationship to source project
                  #{link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)}.
                  %br
                  %strong Once removed, the fork relationship cannot be restored and you will no longer be able to send merge requests to the source.
D
Douwe Maan 已提交
292 293
                .form-actions
                  = button_to 'Remove fork relationship', '#', class: "btn btn-remove js-confirm-danger", data: { "confirm-danger-message" => remove_fork_project_message(@project) }
D
Douwe Maan 已提交
294 295
        - else
          .nothing-here-block Only the project owner can remove the fork relationship.
296

297 298 299 300
      - if can?(current_user, :remove_project, @project)
        .panel.panel-default.panel.panel-danger
          .panel-heading Remove project
          .panel-body
301
            = form_tag(namespace_project_path(@project.namespace, @project), method: :delete, class: 'form-horizontal') do
302 303 304 305
              %p
                Removing the project will delete its repository and all related resources including issues, merge requests etc.
                %br
                %strong Removed projects cannot be restored!
D
Douwe Maan 已提交
306 307
              .form-actions
                = button_to 'Remove project', '#', class: "btn btn-remove js-confirm-danger", data: { "confirm-danger-message" => remove_project_message(@project) }
308
      - else
D
Douwe Maan 已提交
309
        .nothing-here-block Only the project owner can remove a project.
310

311

312
.save-project-loader.hide
313
  .center
314
    %h2
S
Sullivan SENECHAL 已提交
315
      %i.fa.fa-spinner.fa-spin
316
      Saving project.
D
Dmitriy Zaporozhets 已提交
317
    %p Please wait a moment, this page will automatically refresh when ready.
318 319 320


= render 'shared/confirm_modal', phrase: @project.path