summaryrefslogtreecommitdiffstats
path: root/app/views/timelog/_form.html.erb
blob: 712c7bde7db2b6e6b1d102670f5b62c3b9c060ac (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
<%= error_messages_for 'time_entry' %>
<%= back_url_hidden_field_tag %>

<div class="box tabular">
  <% if @time_entry.new_record? %>
    <% if params[:project_id] %>
      <%= hidden_field_tag 'project_id', params[:project_id] %>
    <% elsif params[:issue_id] %>
      <%= hidden_field_tag 'issue_id', params[:issue_id] %>
    <% else %>
      <p><%= f.select :project_id, project_tree_options_for_select(Project.allowed_to(:log_time).to_a, :selected => @time_entry.project, :include_blank => true), :required => true %></p>
    <% end %>
  <% end %>
  <p>
    <%= f.text_field :issue_id, :size => 6 %>
    <span id="time_entry_issue">
      <%=  link_to_issue(@time_entry.issue) if @time_entry.issue.try(:visible?) %>
    </span>
  </p>
  <p><%= f.date_field :spent_on, :size => 10, :required => true %><%= calendar_for('time_entry_spent_on') %></p>
  <p><%= f.hours_field :hours, :size => 6, :required => true %></p>
  <p><%= f.text_field :comments, :size => 100, :maxlength => 1024 %></p>
  <p><%= f.select :activity_id, activity_collection_for_select_options(@time_entry), :required => true %></p>
  <% @time_entry.custom_field_values.each do |value| %>
    <p><%= custom_field_tag_with_label :time_entry, value %></p>
  <% end %>
  <%= call_hook(:view_timelog_edit_form_bottom, { :time_entry => @time_entry, :form => f }) %>
</div>

<%= javascript_tag do %>
  $(document).ready(function(){
    $('#time_entry_project_id, #time_entry_issue_id').change(function(){
      $.ajax({
        url: '<%= escape_javascript(@time_entry.new_record? ? new_time_entry_path(:format => 'js') : edit_time_entry_path(:format => 'js')) %>',
        type: 'post',
        data: $(this).closest('form').serialize()
      });
    });
  });

  observeAutocompleteField('time_entry_issue_id',
    function(request, callback) {
      var url = '<%= j auto_complete_issues_path %>';
      var data = {
        term: request.term
      };
      var project_id;
      <% if @project %>
        project_id = '<%= @project.id %>';
      <% else %>
        project_id = $('#time_entry_project_id').val();
      <% end %>
      if(project_id){
        data['project_id'] = project_id;
      } else {
        data['scope'] = 'all';
      }

      $.get(url, data, null, 'json')
        .done(function(data){
          callback(data);
        })
        .fail(function(jqXHR, status, error){
          callback([]);
        });
    },
    {
      select: function(event, ui) {
        $('#time_entry_issue').text('');
        $('#time_entry_issue_id').val(ui.item.value).change();
      }
    }
  );
<% end %>