summaryrefslogtreecommitdiff
path: root/app/views/projects/new.html.haml
blob: c72d0140bb9c9faf15a6aa1f7b052d985279b1f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
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
161
162
- page_title    'New Project'
- header_title  "Projects", dashboard_projects_path

.project-edit-container
  .project-edit-errors
    = render 'projects/errors'
  .row.prepend-top-default
    .col-lg-3.profile-settings-sidebar
      %h4.prepend-top-0
        New project
      %p
        Create or Import your project from popular Git services
    .col-lg-9
      = form_for @project, html: { class: 'new_project' } do |f|
        %fieldset.append-bottom-0
          .form-group.col-xs-12.col-sm-6
            = f.label :namespace_id, class: 'label-light' do
              %span
                Project path
            .form-group
              .input-group
                - if current_user.can_select_namespace?
                  .input-group-addon
                    = root_url
                  = f.select :namespace_id, namespaces_options(params[:namespace_id] || :current_user, display_path: true), {}, {class: 'select2 js-select-namespace', tabindex: 1}

                - else
                  .input-group-addon.static-namespace
                    #{root_url}#{current_user.username}/
          .form-group.col-xs-12.col-sm-6.project-path
            = f.label :namespace_id, class: 'label-light' do
              %span
                Project name
            = f.text_field :path, placeholder: "my-awesome-project", class: "form-control", tabindex: 2, autofocus: true, required: true
        - if current_user.can_create_group?
          .help-block
            Want to house several dependent projects under the same namespace?
            = link_to "Create a group", new_group_path

        - if import_sources_enabled?
          .project-import.js-toggle-container
            .form-group.clearfix
              = f.label :visibility_level, class: 'label-light' do
                Import project from
              .col-sm-12.import-buttons
                %div
                  - if github_import_enabled?
                    = link_to new_import_github_path, class: 'btn import_github' do
                      = icon 'github', text: 'GitHub'
                %div
                  - if bitbucket_import_enabled?
                    - if bitbucket_import_configured?
                      = link_to status_import_bitbucket_path, class: 'btn import_bitbucket', "data-no-turbolink" => "true" do
                        %i.fa.fa-bitbucket
                        Bitbucket
                    - else
                      = link_to status_import_bitbucket_path, class: 'how_to_import_link btn import_bitbucket', "data-no-turbolink" => "true" do
                        %i.fa.fa-bitbucket
                        Bitbucket
                      = render 'bitbucket_import_modal'
                %div
                  - if gitlab_import_enabled?
                    - if gitlab_import_configured?
                      = link_to status_import_gitlab_path, class: 'btn import_gitlab' do
                        %i.fa.fa-heart
                        GitLab.com
                    - else
                      = link_to status_import_gitlab_path, class: 'how_to_import_link btn import_gitlab' do
                        %i.fa.fa-heart
                        GitLab.com
                      = render 'gitlab_import_modal'
                %div
                  - if gitorious_import_enabled?
                    = link_to new_import_gitorious_path, class: 'btn import_gitorious' do
                      %i.icon-gitorious.icon-gitorious-small
                      Gitorious.org
                %div
                  - if google_code_import_enabled?
                    = link_to new_import_google_code_path, class: 'btn import_google_code' do
                      %i.fa.fa-google
                      Google Code
                %div
                  - if fogbugz_import_enabled?
                    = link_to new_import_fogbugz_path, class: 'btn import_fogbugz' do
                      %i.fa.fa-bug
                      Fogbugz
                %div
                  - if git_import_enabled?
                    = link_to "#", class: 'btn js-toggle-button import_git' do
                      %i.fa.fa-git
                      %span Repo by URL
                %div
                  - if gitlab_project_import_enabled?
                    = link_to new_import_gitlab_project_path, class: 'btn import_gitlab_project project-submit' do
                      %i.fa.fa-gitlab
                      %span GitLab export

            .js-toggle-content.hide
              = render "shared/import_form", f: f

        .form-group
          = f.label :description, class: 'label-light' do
            Project description
            %span.light (optional)
          = f.text_area :description, placeholder: 'Description format',  class: "form-control", rows: 3, maxlength: 250

        .form-group.project-visibility-level-holder
          = f.label :visibility_level, class: 'label-light' do
            Visibility Level
            = link_to "(?)", help_page_path("public_access/public_access")
          = render('shared/visibility_radios', model_method: :visibility_level, form: f, selected_level: @project.visibility_level, form_model: @project)

        = f.submit 'Create project', class: "btn btn-create project-submit", tabindex: 4
        = link_to 'Cancel', dashboard_projects_path, class: 'btn btn-cancel'

.save-project-loader.hide
  .center
    %h2
      %i.fa.fa-spinner.fa-spin
      Creating project & repository.
    %p Please wait a moment, this page will automatically refresh when ready.

:javascript
  $('.how_to_import_link').bind('click', function (e) {
    e.preventDefault();
    var import_modal = $(this).next(".modal").show();
  });

  $('.modal-header .close').bind('click', function() {
    $(".modal").hide();
  });

  $('.import_gitlab_project').bind('click', function() {
    var _href = $("a.import_gitlab_project").attr("href");
    $(".import_gitlab_project").attr("href", _href + '?namespace_id=' + $("#project_namespace_id").val() + '&path=' + $("#project_path").val());
  });

  $('.import_gitlab_project').attr('disabled',true)
  $('.import_gitlab_project').attr('title', 'Project path required.');

  $('.import_gitlab_project').click(function( event ) {
    if($('.import_gitlab_project').attr('disabled')) {
      event.preventDefault();
      new Flash("Please enter a path for the project to be imported to.");
    }
  });

  $('#project_path').keyup(function(){
    if($(this).val().length !=0) {
      $('.import_gitlab_project').attr('disabled', false);
      $('.import_gitlab_project').attr('title','');
      $(".flash-container").html("")
    } else {
      $('.import_gitlab_project').attr('disabled',true);
      $('.import_gitlab_project').attr('title', 'Project path required.');
    }
  });

  $('.import_git').click(function( event ) {
    $projectImportUrl = $('#project_import_url')
    $projectImportUrl.attr('disabled', !$projectImportUrl.attr('disabled'))
  });