Read about our upcoming Code of Conduct on this issue

edit.html.haml 9.69 KB
Newer Older
1
2
3
.project-edit-container
  .project-edit-errors
  .project-edit-content
4
5
6
    %div
      %h3.page-title
        Project settings:
7
      %p.light Some settings, such as "Transfer Project", are hidden inside the danger area below.
8
      %hr
9
      .panel-body
10
11
        = form_for @project, remote: true, html: { multipart: true, class: "edit_project form-horizontal" }, authenticity_token: true do |f|

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


Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
20
            .form-group
21
              = f.label :description, class: 'control-label' do
22
23
                Project description
                %span.light (optional)
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
24
              .col-sm-10
25
                = f.text_area :description, placeholder: "Awesome project", class: "form-control", rows: 3, maxlength: 250
26

27
            - if @project.repository.exists? && @project.repository.branch_names.any?
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
28
              .form-group
29
                = f.label :default_branch, "Default Branch", class: 'control-label'
30
                .col-sm-10= f.select(:default_branch, @repository.branch_names, {}, {class: 'select2 select-wide'})
31
32


33
          = render "visibility_level", f: f, visibility_level: @project.visibility_level, can_change_visibility_level: can?(current_user, :change_visibility_level, @project)
34
35
36

          %fieldset.features
            %legend
37
              Tags:
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
38
            .form-group
39
              = f.label :tag_list, "Tags", class: 'control-label'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
40
              .col-sm-10
41
42
                = f.text_field :tag_list, maxlength: 2000, class: "form-control"
                %p.hint Separate tags with commas.
43
44
45
46

          %fieldset.features
            %legend
              Features:
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
47
            .form-group
48
              = f.label :issues_enabled, "Issues", class: 'control-label'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
49
              .col-sm-10
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
50
51
52
                .checkbox
                  = f.check_box :issues_enabled
                  %span.descr Lightweight issue tracking system for this project
53
54

            - if Project.issues_tracker.values.count > 1
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
55
              .form-group
56
                = f.label :issues_tracker, "Issues tracker", class: 'control-label'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
57
                .col-sm-10= f.select(:issues_tracker, project_issues_trackers(@project.issues_tracker), {}, { disabled: !@project.issues_enabled })
58

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
59
              .form-group
60
                = f.label :issues_tracker_id, "Project name or id in issues tracker", class: 'control-label'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
61
                .col-sm-10= f.text_field :issues_tracker_id, disabled: !@project.can_have_issues_tracker_id?, class: 'form-control'
62

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
63
            .form-group
64
              = f.label :merge_requests_enabled, "Merge Requests", class: 'control-label'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
65
              .col-sm-10
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
66
67
68
                .checkbox
                  = f.check_box :merge_requests_enabled
                  %span.descr Submit changes to be merged upstream.
69

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
70
            .form-group
71
              = f.label :wiki_enabled, "Wiki", class: 'control-label'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
72
              .col-sm-10
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
73
74
75
                .checkbox
                  = f.check_box :wiki_enabled
                  %span.descr Pages for project documentation
76

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
77
            .form-group
78
              = f.label :snippets_enabled, "Snippets", class: 'control-label'
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
79
              .col-sm-10
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
80
81
82
                .checkbox
                  = f.check_box :snippets_enabled
                  %span.descr Share code pastes with others out of git repository
83

84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
          %fieldset.features
            %legend
              Project avatar:
            .form-group
              .col-sm-2
              .col-sm-10
                = project_icon(@project.to_param, alt: '', class: 'avatar s160', only_uploaded: true)
                %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
                    You can upload an project avatar here
                %a.choose-btn.btn.btn-small.js-choose-project-avatar-button
                  %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"
                .light The maximum file size allowed is 100KB.
                - if @project.avatar?
                  %hr
                  = link_to 'Remove avatar', project_avatar_path(@project), data: { confirm: "Project avatar will be removed. Are you sure?"}, method: :delete, class: "btn btn-remove btn-small remove-avatar"
109
110

          .form-actions
111
            = f.submit 'Save changes', class: "btn btn-save"
112

113
114


115
116
    .danger-settings
      - if can? current_user, :archive_project, @project
117
118
119
        - if @project.archived?
          .panel.panel-success
            .panel-heading
120
              Unarchive project
121
            .panel-body
122
123
124
125
126
127
128
129
              %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.
              = link_to 'Unarchive', unarchive_project_path(@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." },
130
                  method: :post, class: "btn btn-success"
131
132
133
134
135
        - else
          .panel.panel-warning
            .panel-heading
              Archive project
            .panel-body
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
              %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!
              = link_to 'Archive', archive_project_path(@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"
      - 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
          = form_for(@project, html: { class: 'form-horizontal' }) do |f|
153
154
155
156
157
158
            .form-group.project_name_holder
              = f.label :name, class: 'control-label' do
                Project name
              .col-sm-9
                .form-group
                  = f.text_field :name, placeholder: "Example Project", class: "form-control"
159
160
161
162
163
164
            .form-group
              = f.label :path, class: 'control-label' do
                %span Path
              .col-sm-9
                .form-group
                  .input-group
165
166
                    .input-group-addon
                      #{URI.join(root_url, @project.namespace.path)}/
167
168
169
170
171
172
173
174
175
176
177
                    = f.text_field :path, class: 'form-control'
                    %span.input-group-addon .git
                %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
              = f.submit 'Rename', class: "btn btn-warning"

      - if can?(current_user, :change_namespace, @project)
        .panel.panel-default.panel.panel-danger
          .panel-heading Transfer project
178
179
          .errors-holder
          .panel-body
180
            = form_for(@project, url: transfer_project_path(@project), method: :put, remote: true, html: { class: 'transfer-project form-horizontal' }) do |f|
181
              .form-group
182
183
184
                = f.label :namespace_id, class: 'control-label' do
                  %span Namespace
                .col-sm-10
185
                  .form-group
186
                    = f.select :namespace_id, namespaces_options(@project.namespace_id), { prompt: 'Choose a project namespace' }, { class: 'select2' }
187
                  %ul
188
189
                    %li Be careful. Changing the project's namespace can have unintended side effects.
                    %li You can only transfer the project to namespaces you manage.
190
191
                    %li You will need to update your local repositories to point to the new location.
              .form-actions
192
                = f.submit 'Transfer', class: "btn btn-remove js-confirm-danger", data: { "confirm-danger-message" => transfer_project_message(@project) }
193
194
      - else
        .nothing-here-block Only the project owner can transfer a project
195

196
197
198
199
      - if can?(current_user, :remove_project, @project)
        .panel.panel-default.panel.panel-danger
          .panel-heading Remove project
          .panel-body
200
201
202
203
204
            = form_tag(project_path(@project), method: :delete, html: { class: 'form-horizontal'}) do
              %p
                Removing the project will delete its repository and all related resources including issues, merge requests etc.
                %br
                %strong Removed projects cannot be restored!
205

206
              = link_to 'Remove project', '#', class: "btn btn-remove js-confirm-danger", data: { "confirm-danger-message" => remove_project_message(@project) }
207
208
      - else
        .nothing-here-block Only project owner can remove a project
209

210
.save-project-loader.hide
211
  .center
212
    %h2
213
      %i.fa.fa-spinner.fa-spin
214
      Saving project.
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
215
    %p Please wait a moment, this page will automatically refresh when ready.
216
217
218


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