diff options
Diffstat (limited to 'app/views/issues')
-rw-r--r-- | app/views/issues/_history.rhtml | 11 | ||||
-rw-r--r-- | app/views/issues/_list_simple.rhtml | 28 | ||||
-rw-r--r-- | app/views/issues/_pdf.rfpdf | 100 | ||||
-rw-r--r-- | app/views/issues/change_status.rhtml | 37 | ||||
-rw-r--r-- | app/views/issues/edit.rhtml | 49 | ||||
-rw-r--r-- | app/views/issues/export_pdf.rfpdf | 9 | ||||
-rw-r--r-- | app/views/issues/history.rhtml | 6 | ||||
-rw-r--r-- | app/views/issues/show.rhtml | 133 |
8 files changed, 373 insertions, 0 deletions
diff --git a/app/views/issues/_history.rhtml b/app/views/issues/_history.rhtml new file mode 100644 index 000000000..6dc2a84be --- /dev/null +++ b/app/views/issues/_history.rhtml @@ -0,0 +1,11 @@ +<% for journal in journals %>
+ <h4><%= format_time(journal.created_on) %> - <%= journal.user.name %></h4>
+ <ul>
+ <% for detail in journal.details %>
+ <li><%= show_detail(detail) %></li>
+ <% end %>
+ </ul>
+ <% if journal.notes? %>
+ <%= simple_format auto_link journal.notes %>
+ <% end %>
+<% end %>
diff --git a/app/views/issues/_list_simple.rhtml b/app/views/issues/_list_simple.rhtml new file mode 100644 index 000000000..94b63d613 --- /dev/null +++ b/app/views/issues/_list_simple.rhtml @@ -0,0 +1,28 @@ +<% if issues.length > 0 %>
+<table cellspacing="0" cellpadding="1" width="100%" border="0" class="listTable">
+ <tr><td>
+ <table class="listTableContent">
+ <tr class="ListHead">
+ <th>#</th>
+ <th><%=l(:field_tracker)%></th>
+ <th><%=l(:field_subject)%></th>
+ </tr>
+ <% for issue in issues %> + <tr class="<%= cycle("odd", "even") %>">
+ <td align="center" style="font-weight:bold;color:#<%= issue.status.html_color %>;">
+ <%= link_to issue.id, :controller => 'issues', :action => 'show', :id => issue %><br />
+ </td>
+ <td><p class="small"><%= issue.project.name %> - <%= issue.tracker.name %><br /> + <%= issue.status.name %> - <%= format_time(issue.updated_on) %></p></td>
+ <td>
+ <p class="small"><%= link_to issue.subject, :controller => 'issues', :action => 'show', :id => issue %></p>
+ </td> + </tr> + <% end %> + </table> + </td>
+ </tr>
+</table>
+<% else %>
+ <i><%=l(:label_no_data)%></i>
+<% end %>
\ No newline at end of file diff --git a/app/views/issues/_pdf.rfpdf b/app/views/issues/_pdf.rfpdf new file mode 100644 index 000000000..1f6a12283 --- /dev/null +++ b/app/views/issues/_pdf.rfpdf @@ -0,0 +1,100 @@ +<% pdf.SetFont('Arial','B',11)
+ pdf.Cell(190,10, "#{issue.project.name} - #{issue.tracker.name} # #{issue.long_id} - #{issue.subject}")
+ pdf.Ln
+
+ y0 = pdf.GetY
+
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_status) + ":","LT")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(60,5, issue.status.name,"RT")
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_priority) + ":","LT")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(60,5, issue.priority.name,"RT")
+ pdf.Ln
+
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_author) + ":","L")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(60,5, issue.author.name,"R")
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_category) + ":","L")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(60,5, (issue.category ? issue.category.name : "-"),"R")
+ pdf.Ln
+
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_created_on) + ":","L")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(60,5, format_date(issue.created_on),"R")
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_assigned_to) + ":","L")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(60,5, (issue.assigned_to ? issue.assigned_to.name : "-"),"R")
+ pdf.Ln
+
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_updated_on) + ":","LB")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(60,5, format_date(issue.updated_on),"RB")
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_due_date) + ":","LB")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(60,5, format_date(issue.due_date),"RB")
+ pdf.Ln
+
+ for custom_value in issue.custom_values
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, custom_value.custom_field.name + ":","L")
+ pdf.SetFont('Arial','',9)
+ pdf.MultiCell(155,5, (show_value custom_value),"R")
+ end
+
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_subject) + ":","LTB")
+ pdf.SetFont('Arial','',9)
+ pdf.Cell(155,5, issue.subject,"RTB")
+ pdf.Ln
+
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(35,5, l(:field_description) + ":")
+ pdf.SetFont('Arial','',9)
+ pdf.MultiCell(155,5, issue.description,"BR")
+
+ pdf.Line(pdf.GetX, y0, pdf.GetX, pdf.GetY)
+ pdf.Line(pdf.GetX, pdf.GetY, 170, pdf.GetY)
+
+ pdf.Ln
+
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(190,5, l(:label_history), "B")
+ pdf.Ln
+ for journal in issue.journals.find(:all, :include => :user, :order => "journals.created_on desc")
+ pdf.SetFont('Arial','B',8)
+ pdf.Cell(190,5, format_time(journal.created_on) + " - " + journal.user.name)
+ pdf.Ln
+ pdf.SetFont('Arial','I',8)
+ for detail in journal.details
+ pdf.Cell(190,5, "- " + show_detail(detail, true))
+ pdf.Ln
+ end
+ if journal.notes?
+ pdf.SetFont('Arial','',8)
+ pdf.MultiCell(190,5, journal.notes)
+ end
+ pdf.Ln
+ end
+
+ pdf.SetFont('Arial','B',9)
+ pdf.Cell(190,5, l(:label_attachment_plural), "B")
+ pdf.Ln
+ for attachment in issue.attachments
+ pdf.SetFont('Arial','',8)
+ pdf.Cell(80,5, attachment.filename)
+ pdf.Cell(20,5, human_size(attachment.filesize),0,0,"R")
+ pdf.Cell(20,5, format_date(attachment.created_on),0,0,"R")
+ pdf.Cell(70,5, attachment.author.name,0,0,"R")
+ pdf.Ln
+ end
+%>
\ No newline at end of file diff --git a/app/views/issues/change_status.rhtml b/app/views/issues/change_status.rhtml new file mode 100644 index 000000000..2ef87183d --- /dev/null +++ b/app/views/issues/change_status.rhtml @@ -0,0 +1,37 @@ +<h2><%=l(:label_issue)%> #<%= @issue.id %>: <%= @issue.subject %></h2> +
+<%= error_messages_for 'issue' %>
+<%= start_form_tag({:action => 'change_status', :id => @issue}, :class => "tabular") %>
+
+<%= hidden_field_tag 'confirm', 1 %>
+<%= hidden_field_tag 'new_status_id', @new_status.id %> + +<div class="box">
+<p><label><%=l(:label_issue_status_new)%></label> <%= @new_status.name %></p>
+
+<p><label for="issue_assigned_to_id"><%=l(:field_assigned_to)%></label> +<select name="issue[assigned_to_id]">
+<option value=""></option>
+<%= options_from_collection_for_select @assignable_to, "id", "display_name", @issue.assigned_to_id %></p> +</select></p>
+ + +<p><label for="issue_done_ratio"><%=l(:field_done_ratio)%></label> +<%= select("issue", "done_ratio", ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) ) %> +</select></p> + +
+<p><label for="issue_fixed_version"><%=l(:field_fixed_version)%></label> +<select name="issue[fixed_version_id]">
+<option value="">--none--</option>
+<%= options_from_collection_for_select @issue.project.versions, "id", "name", @issue.fixed_version_id %>
+</select></p> + +<p><label for="notes"><%= l(:field_notes) %></label> +<%= text_area_tag 'notes', @notes, :cols => 60, :rows => 10 %></p> + +</div> +
+<%= hidden_field 'issue', 'lock_version' %> +<%= submit_tag l(:button_save) %>
+<%= end_form_tag %>
diff --git a/app/views/issues/edit.rhtml b/app/views/issues/edit.rhtml new file mode 100644 index 000000000..60cdafc1e --- /dev/null +++ b/app/views/issues/edit.rhtml @@ -0,0 +1,49 @@ +<h2><%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %></h2> + +<% labelled_tabular_form_for :issue, @issue, :url => {:action => 'edit'} do |f| %> +<%= error_messages_for 'issue' %> +<div class="box"> +<!--[form:issue]--> +<div class="splitcontentleft"> +<p><label><%=l(:field_status)%></label> <%= @issue.status.name %></p> +<p><%= f.select :priority_id, (@priorities.collect {|p| [p.name, p.id]}), :required => true %></p> +<p><%= f.select :assigned_to_id, (@issue.project.members.collect {|m| [m.name, m.user_id]}), :include_blank => true %></p> +<p><%= f.select :category_id, (@project.issue_categories.collect {|c| [c.name, c.id]}) %></p> +</div> + +<div class="splitcontentright"> +<p><%= f.text_field :start_date, :size => 10 %><%= calendar_for('issue_start_date') %></p> +<p><%= f.text_field :due_date, :size => 10 %><%= calendar_for('issue_due_date') %></p> +<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }) %></p> +</div> + +<div class="clear"> +<p><%= f.text_field :subject, :size => 80, :required => true %></p> +<p><%= f.text_area :description, :cols => 60, :rows => [[10, @issue.description.length / 50].max, 100].min, :required => true %></p> + +<% for @custom_value in @custom_values %> + <p><%= custom_field_tag_with_label @custom_value %></p> +<% end %> + +<p><%= f.select :fixed_version_id, (@project.versions.collect {|v| [v.name, v.id]}), { :include_blank => true } %> +</select></p> +</div> +<!--[eoform:issue]--> +</div> +<%= f.hidden_field :lock_version %> +<%= submit_tag l(:button_save) %> +<% end %> + +<% unless $RDM_TEXTILE_DISABLED %> +<%= javascript_include_tag 'jstoolbar' %> +<script type="text/javascript"> +//<![CDATA[ +if (document.getElementById) { + if (document.getElementById('issue_description')) { + var commentTb = new jsToolBar(document.getElementById('issue_description')); + commentTb.draw(); + } +} +//]]> +</script> +<% end %>
\ No newline at end of file diff --git a/app/views/issues/export_pdf.rfpdf b/app/views/issues/export_pdf.rfpdf new file mode 100644 index 000000000..a8622dd51 --- /dev/null +++ b/app/views/issues/export_pdf.rfpdf @@ -0,0 +1,9 @@ +<% pdf=IfpdfHelper::IFPDF.new
+ pdf.AliasNbPages
+ pdf.footer_date = format_date(Date.today)
+ pdf.AddPage
+
+ render :partial => 'issues/pdf', :locals => { :pdf => pdf, :issue => @issue }
+%>
+
+<%= pdf.Output %>
\ No newline at end of file diff --git a/app/views/issues/history.rhtml b/app/views/issues/history.rhtml new file mode 100644 index 000000000..2443cc739 --- /dev/null +++ b/app/views/issues/history.rhtml @@ -0,0 +1,6 @@ +<h3><%=l(:label_history)%></h3>
+<div id="history">
+<%= render :partial => 'history', :locals => { :journals => @journals } %>
+</div>
+<br />
+<p><%= link_to l(:button_back), :action => 'show', :id => @issue %></p>
\ No newline at end of file diff --git a/app/views/issues/show.rhtml b/app/views/issues/show.rhtml new file mode 100644 index 000000000..8128b74a9 --- /dev/null +++ b/app/views/issues/show.rhtml @@ -0,0 +1,133 @@ +<h2><%= @issue.tracker.name %> #<%= @issue.id %> - <%= @issue.subject %></h2>
+<div class="topright">
+<small>
+<%= link_to 'PDF', :action => 'export_pdf', :id => @issue %>
+</small>
+</div>
+ +<div class="box">
+<table width="100%">
+<tr>
+ <td width="15%"><b><%=l(:field_status)%> :</b></td><td width="35%"><%= @issue.status.name %></td>
+ <td width="15%"><b><%=l(:field_priority)%> :</b></td><td width="35%"><%= @issue.priority.name %></td>
+</tr>
+<tr>
+ <td><b><%=l(:field_assigned_to)%> :</b></td><td><%= @issue.assigned_to ? @issue.assigned_to.name : "-" %></td>
+ <td><b><%=l(:field_category)%> :</b></td><td><%= @issue.category ? @issue.category.name : "-" %></td>
+</tr>
+<tr>
+ <td><b><%=l(:field_author)%> :</b></td><td><%= link_to_user @issue.author %></td>
+ <td><b><%=l(:field_start_date)%> :</b></td><td><%= format_date(@issue.start_date) %></td>
+</tr>
+<tr>
+ <td><b><%=l(:field_created_on)%> :</b></td><td><%= format_date(@issue.created_on) %></td>
+ <td><b><%=l(:field_due_date)%> :</b></td><td><%= format_date(@issue.due_date) %></td>
+</tr>
+<tr>
+ <td><b><%=l(:field_updated_on)%> :</b></td><td><%= format_date(@issue.updated_on) %></td>
+ <td><b><%=l(:field_done_ratio)%> :</b></td><td><%= @issue.done_ratio %> %</td>
+</tr>
+<tr>
+<% n = 0
+for custom_value in @custom_values %>
+ <td><b><%= custom_value.custom_field.name %> :</b></td><td><%= show_value custom_value %></td>
+<% n = n + 1
+ if (n > 1)
+ n = 0 %>
+ </tr><tr>
+ <%end
+end %>
+</tr>
+</table>
+<hr />
+<br />
+
+<b><%=l(:field_description)%> :</b><br /><br />
+<%= textilizable @issue.description %>
+<br />
+<div style="float:left;">
+<% if authorize_for('issues', 'edit') %>
+ <%= start_form_tag ({:controller => 'issues', :action => 'edit', :id => @issue}, :method => "get" ) %>
+ <%= submit_tag l(:button_edit) %>
+ <%= end_form_tag %>
+
+<% end %>
+
+<% if authorize_for('issues', 'change_status') and @status_options and !@status_options.empty? %>
+ <%= start_form_tag ({:controller => 'issues', :action => 'change_status', :id => @issue}) %>
+ <%=l(:label_change_status)%> :
+ <select name="new_status_id">
+ <%= options_from_collection_for_select @status_options, "id", "name" %>
+ </select>
+ <%= submit_tag l(:button_change) %>
+ <%= end_form_tag %>
+
+<% end %>
+
+<% if authorize_for('projects', 'move_issues') %>
+ <%= start_form_tag ({:controller => 'projects', :action => 'move_issues', :id => @project} ) %>
+ <%= hidden_field_tag "issue_ids[]", @issue.id %>
+ <%= submit_tag l(:button_move) %>
+ <%= end_form_tag %>
+
+<% end %>
+</div>
+<div style="float:right;">
+<% if authorize_for('issues', 'destroy') %>
+ <%= start_form_tag ({:controller => 'issues', :action => 'destroy', :id => @issue} ) %>
+ <%= submit_tag l(:button_delete) %>
+ <%= end_form_tag %>
+
+<% end %>
+</div>
+<div class="clear"></div>
+</div>
+
+<div id="history" class="box">
+<h3><%=l(:label_history)%>
+<% if @journals_count > @journals.length %>(<%= l(:label_last_changes, @journals.length) %>)<% end %></h3>
+<%= render :partial => 'history', :locals => { :journals => @journals } %>
+<% if @journals_count > @journals.length %>
+ <p><center><small>[ <%= link_to l(:label_change_view_all), :action => 'history', :id => @issue %> ]</small></center></p>
+<% end %> +</div>
+
+<div class="box">
+<h3><%=l(:label_attachment_plural)%></h3>
+<table width="100%">
+<% for attachment in @issue.attachments %>
+<tr>
+<td><%= image_tag('attachment') %> <%= link_to attachment.filename, :action => 'download', :id => @issue, :attachment_id => attachment %> (<%= human_size(attachment.filesize) %>)</td>
+<td><%= format_date(attachment.created_on) %></td>
+<td><%= attachment.author.display_name %></td>
+<% if authorize_for('issues', 'destroy_attachment') %>
+ <td>
+ <%= start_form_tag :action => 'destroy_attachment', :id => @issue, :attachment_id => attachment %>
+ <%= submit_tag l(:button_delete), :class => "button-small" %>
+ <%= end_form_tag %>
+ </td>
+<% end %>
+</tr>
+<% end %> +</table>
+<br />
+<% if authorize_for('issues', 'add_attachment') %>
+ <%= start_form_tag ({ :controller => 'issues', :action => 'add_attachment', :id => @issue }, :multipart => true, :class => "tabular") %>
+ <p id="attachments_p"><label><%=l(:label_attachment_new)%>
+ <%= link_to_function image_tag('add'), "addFileField()" %></label>
+ <%= file_field_tag 'attachments[]', :size => 30 %></p>
+ <%= submit_tag l(:button_add) %>
+ <%= end_form_tag %>
+<% end %>
+</div>
+
+<% if authorize_for('issues', 'add_note') %>
+ <div class="box">
+ <h3><%= l(:label_add_note) %></h3>
+ <%= start_form_tag ({:controller => 'issues', :action => 'add_note', :id => @issue}, :class => "tabular" ) %>
+ <p><label for="notes"><%=l(:field_notes)%></label>
+ <%= text_area_tag 'notes', '', :cols => 60, :rows => 10 %></p>
+ <%= submit_tag l(:button_add) %>
+ <%= end_form_tag %>
+ </div>
+<% end %>
|