Initial Redmine tooling and local plugin forks

This commit is contained in:
Jason Thistlethwaite
2026-04-24 22:01:18 +00:00
commit 9f682af0eb
683 changed files with 56878 additions and 0 deletions
@@ -0,0 +1,8 @@
<%= labelled_form_for @journal, :url => public_ticket_add_comment_path(:id => @ticket.id, :hash => @ticket.token) , :html => {:id => 'add_comment_form', :multipart => true} do |f| %>
<%= error_messages_for 'journal', 'journal_message' %>
<div class="box">
<%= f.text_area 'notes', :cols => 60, :rows => 10, :class => 'wiki-edit' %>
<%= wikitoolbar_for 'journal_notes' %>
</div>
<%= submit_tag l(:button_submit) %>
<% end %>
@@ -0,0 +1,13 @@
<div class="attachments">
<% for attachment in attachments %>
<p><%= link_to_attachment_with_hash attachment, :class => 'icon icon-attachment', :download => true -%>
<% if attachment.is_text? %>
<%= link_to image_tag('magnifier.png'),
:controller => 'attachments', :action => 'show',
:id => attachment, :filename => attachment.filename %>
<% end %>
<%= h(" - #{attachment.description}") unless attachment.description.blank? %>
<span class="size">(<%= number_to_human_size attachment.filesize %>)</span>
</p>
<% end %>
</div>
@@ -0,0 +1,11 @@
<% for journal in journals %>
<div id="change-<%= journal.id %>" class="<%= journal.css_classes %> <%= journal.journal_message.is_incoming? ? 'incoming' : 'outgoing' %>">
<div id="note-<%= journal.indice %>">
<h4><%= link_to "##{journal.indice}", {:anchor => "note-#{journal.indice}"}, :class => "journal-link" %>
<%= authoring_public journal, :label => :label_updated_time_by %></h4>
<div class="wiki" id="journal-<%= journal.id %>-notes">
<%= textilizable(journal, :notes) unless journal.notes.blank? %>
</div>
</div>
</div>
<% end %>
@@ -0,0 +1,19 @@
<% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
<% if (RedmineHelpdesk.public_spent_time? && @total_spent_hours.to_i > 0) || !@previous_tickets.blank? %>
<% content_for :sidebar do %>
<% if RedmineHelpdesk.public_spent_time? && @total_spent_hours.to_i > 0 %>
<h3><%= l(:label_spent_time) %></h3>
<p><span class="icon icon-time"><%= l_hours(@total_spent_hours) %></span></p>
<% end %>
<% unless @previous_tickets.empty? %>
<h3>
<%= l(:label_helpdesk_previous_tickets) %>
</h3>
<% @previous_tickets.each do |previous_ticket| %>
<p><%= link_to "##{previous_ticket.id} - #{previous_ticket.subject} (#{previous_ticket.status.name})", public_ticket_path(previous_ticket.helpdesk_ticket, :hash => previous_ticket.helpdesk_ticket.token), :class => previous_ticket.css_classes %></p>
<% end %>
<% end %>
<% end %>
<% end %>
@@ -0,0 +1,79 @@
<h2><%= issue_heading(@issue) %></h2>
<div class="<%= @issue.css_classes %> details">
<%= avatar(@ticket.from_address, :size => "50") %>
<div class="subject">
<h3><%= @issue.subject %></h3>
</div>
<p class="author">
<%= l(:label_added_time_by, :author => mail_to(@ticket.from_address), :age => content_tag('acronym', distance_of_time_in_words(Time.now, @issue.created_on), :title => format_time(@issue.created_on))).html_safe %>.
<%# authoring @issue.created_on, mail_to(@ticket.from_address) %>
<% if @issue.created_on != @issue.updated_on %>
<%= l(:label_updated_time, ticket_time_tag(@issue.updated_on)).html_safe %>.
<% end %>
</p>
<<%= Redmine::VERSION.to_s > '3.2' ? 'div' : 'table' %> class="attributes">
<%= issue_fields_rows do |rows|
rows.left l(:field_status), h(@issue.status.name), :class => 'status'
unless @issue.disabled_core_fields.include?('assigned_to_id')
rows.left l(:field_assigned_to), (@issue.assigned_to ? @issue.assigned_to.name : "-"), :class => 'assigned-to'
end
unless @issue.disabled_core_fields.include?('done_ratio')
rows.right l(:field_done_ratio), progress_bar(@issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%"), :class => 'progress'
end
if RedmineHelpdesk.public_spent_time?
unless @issue.disabled_core_fields.include?('estimated_hours')
if RedmineHelpdesk.public_spent_time? && !@issue.estimated_hours.blank?
rows.right l(:field_estimated_hours), l_hours(@issue.estimated_hours), :class => 'estimated-hours'
end
end
rows.right l(:label_spent_time), (@issue.total_spent_hours > 0 ? l_hours(@issue.total_spent_hours) : "-"), :class => 'spent-time'
end
end %>
<%# render_custom_fields_rows(@issue) %>
</<%= Redmine::VERSION.to_s > '3.2' ? 'div' : 'table' %>>
<% if @issue.description? || @issue.attachments.any? -%>
<hr />
<% if @issue.description? %>
<p><strong><%=l(:field_description)%></strong></p>
<div class="wiki">
<%= textilizable @issue, :description, :attachments => @issue.attachments %>
</div>
<% end %>
<% if @issue.attachments.any? %>
<fieldset class="collapsible collapsed">
<legend onclick="toggleFieldset(this);"><%= l(:label_attachment_plural) %></legend>
<div style="display: none;">
<%= link_to_attachments_with_hash @issue, :thumbnails => true %>
</div>
</fieldset>
<% end %>
<% end -%>
</div>
<% if @journals.present? %>
<div id="history" class="ticket-history">
<h3><%=l(:label_history)%></h3>
<%= render :partial => 'public_tickets/history', :locals => { :issue => @issue, :journals => @journals } %>
</div>
<% end %>
<div style="clear: both;"></div>
<% if RedmineHelpdesk.public_comments? %>
<p><%= toggle_link l(:label_comment_add), "update", :focus => "journal_notes" %></p>
<div id="update" style="display:none;">
<h3><%= l(:label_comment_add) %></h3>
<%= render :partial => 'add_comment' %>
</div>
<% end %>
<%= render :partial => 'sidebar_content' %>