summaryrefslogtreecommitdiff
path: root/app/views/projects/issues/_form.html.haml
blob: 91d0de8e47cfb6c163360b91a5b0775a939816d2 (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
%div.issue-form-holder
  %h3.page-title= @issue.new_record? ? "New Issue" : "Edit Issue ##{@issue.iid}"
  %hr
  - if @repository.exists? && !@repository.empty? && @repository.contribution_guide && !@issue.persisted?
    - contribution_guide_url = project_blob_path(@project, tree_join(@repository.root_ref, @repository.contribution_guide.name))
    .alert.alert-info.col-sm-10.col-sm-offset-2
      ="Please review the <strong>#{link_to "guidelines for contribution", contribution_guide_url}</strong> to this repository.".html_safe
  = form_for [@project, @issue], html: { class: 'form-horizontal issue-form' } do |f|
    -if @issue.errors.any?
      .alert.alert-danger
        - @issue.errors.full_messages.each do |msg|
          %span= msg
          %br
    .form-group
      = f.label :title, class: 'control-label' do
        %strong= "Subject *"
      .col-sm-10
        = f.text_field :title, maxlength: 255, class: "form-control js-gfm-input", autofocus: true, required: true
    .form-group
      = f.label :description, "Details", class: 'control-label'
      .col-sm-10
        = f.text_area :description, class: "form-control js-gfm-input", rows: 14
        %p.hint Issues are parsed with #{link_to "GitLab Flavored Markdown", help_markdown_path, target: '_blank'}.
    %hr
    .form-group
      .issue-assignee
        = f.label :assignee_id, class: 'control-label' do
          %i.icon-user
          Assign to
        .col-sm-10
          = project_users_select_tag('issue[assignee_id]', placeholder: 'Select a user', class: 'custom-form-control', selected: @issue.assignee_id)
          &nbsp;
          = link_to 'Assign to me', '#', class: 'btn btn-small assign-to-me-link'
    .form-group
      .issue-milestone
        = f.label :milestone_id, class: 'control-label' do
          %i.icon-time
          Milestone
        .col-sm-10= f.select(:milestone_id, milestone_options(@issue), { include_blank: "Select milestone" }, {class: 'select2'})

    .form-group
      = f.label :label_list, class: 'control-label' do
        %i.icon-tag
        Labels
      .col-sm-10
        = f.text_field :label_list, maxlength: 2000, class: "form-control"
        %p.hint Separate labels with commas.



    .form-actions
      - if @issue.new_record?
        = f.submit 'Submit new issue', class: "btn btn-create"
      -else
        = f.submit 'Save changes', class: "btn-save btn"

      - cancel_path = @issue.new_record? ? project_issues_path(@project) : project_issue_path(@project, @issue)
      = link_to "Cancel", cancel_path, class: 'btn btn-cancel'




:javascript
  $("#issue_label_list")
    .bind( "keydown", function( event ) {
      if ( event.keyCode === $.ui.keyCode.TAB &&
        $( this ).data( "autocomplete" ).menu.active ) {
        event.preventDefault();
      }
    })
    .bind("click", function(event) {
      $(this).autocomplete("search", "");
    })
    .autocomplete({
      minLength: 0,
      source: function( request, response ) {
        response( $.ui.autocomplete.filter(
          #{raw labels_autocomplete_source}, extractLast( request.term ) ) );
      },
      focus: function() {
        return false;
      },
      select: function(event, ui) {
        var terms = split( this.value );
        terms.pop();
        terms.push( ui.item.value );
        terms.push( "" );
        this.value = terms.join( ", " );
        return false;
      }
    });

  $('.assign-to-me-link').on('click', function(e){
    $('#issue_assignee_id').val("#{current_user.id}").trigger("change");
    e.preventDefault();
  });