Initial Redmine tooling and local plugin forks
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
<% if User.current.allowed_to?(:view_helpdesk_tickets, @project) %>
|
||||
<% if tickets = HelpdeskTicket.includes(:issue => [:project]).where(:projects => {:id => @project}) %>
|
||||
<% customers = Contact.includes(:tickets => :project).where(:projects => {:id => @project}) %>
|
||||
<h3><%= l(:label_helpdesk_ticket_plural) %></h3>
|
||||
<p><span class="icon icon-helpdesk"><%= l(:text_helpdesk_ticket_count, :count => tickets.count) %></span></p>
|
||||
<p><span class="icon icon-company-contact"><%= l(:text_helpdesk_customer_count, :count => customers.count) %> </span></p>
|
||||
<p><%# link_to(l(:label_report), {:controller => "helpdesk_reports", :action => "tickets_report", :project_id => @project}) %></p>
|
||||
<%= call_hook(:view_projects_show_helpdesk_sidebar_bottom, :project => @project) %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
<%= error_messages_for 'helpdesk_settings' %>
|
||||
|
||||
<% if @project.module_enabled?(:contacts) && @project.module_enabled?(:issue_tracking) %>
|
||||
|
||||
<% if canned_responses = CannedResponse.visible.in_project_or_public(@project).order("#{CannedResponse.table_name}.name") %>
|
||||
<table class="list">
|
||||
<thead><tr>
|
||||
<th><%= l(:field_name) %></th>
|
||||
<th><%= l(:field_content) %></th>
|
||||
<th><%= l(:field_is_public) %></th>
|
||||
<th><%= l(:field_is_for_all) %></th>
|
||||
<th></th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<% canned_responses.each do |canned_response| %>
|
||||
<tr class="<%= cycle 'odd', 'even' %>">
|
||||
<td class="name"><%= canned_response.name %></td>
|
||||
<td class="name"><em class="info"><%= canned_response.content.gsub(/$/, ' ').truncate(250) %></em></td>
|
||||
<td class="tick"><%= checked_image canned_response.is_public? %></td>
|
||||
<td class="tick"><%= checked_image canned_response.project.blank? %></td>
|
||||
<td class="buttons">
|
||||
<% if User.current.allowed_to?(:manage_canned_responses, @project) %>
|
||||
<%= link_to l(:button_edit), edit_canned_response_path(canned_response), :class => 'icon icon-edit' %>
|
||||
<%= delete_link canned_response_path(canned_response, :project_id => @project) %>
|
||||
<% end %>
|
||||
</td>
|
||||
</tr>
|
||||
<% end %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% else %>
|
||||
<p class="nodata"><%= l(:label_no_data) %></p>
|
||||
<% end %>
|
||||
|
||||
<p><%= link_to l(:label_helpdesk_new_canned_response), new_project_canned_response_path(@project), :class => 'icon icon-add' if User.current.allowed_to?(:manage_canned_responses, @project) %></p>
|
||||
|
||||
<% else %>
|
||||
<p class="nodata"><%= l(:label_helpdesk_enable_modules) %></p>
|
||||
<% end %>
|
||||
|
||||
|
||||
|
||||
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
<div class="box" >
|
||||
|
||||
<p>
|
||||
<label><%= l(:field_mail_from) %></label>
|
||||
<%= text_field_tag "helpdesk_answer_from", HelpdeskSettings["helpdesk_answer_from", @project.id], :size => "60", :placeholder => RedmineHelpdesk.settings["helpdesk_answer_from"] %>
|
||||
<em class="info"><%= l(:text_helpdesk_answer_macros, :macro => HelpdeskSettings::FROM_MACRO_LIST.join(', ')) %></em>
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_answered_status) %></label>
|
||||
<%= select_tag "helpdesk_answered_status", ("<option value=\"\">#{l(:label_no_change_option)}</option>" + options_for_select(IssueStatus.all.collect {|p| [p.name, p.id.to_s]}, HelpdeskSettings["helpdesk_answered_status", @project.id])).html_safe %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_reopen_status) %></label>
|
||||
<%= select_tag "helpdesk_reopen_status", ("<option value=\"\">#{l(:label_no_change_option)}</option>" + options_for_select(IssueStatus.all.collect {|p| [p.name, p.id.to_s]}, HelpdeskSettings["helpdesk_reopen_status", @project.id])).html_safe %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_tracker) %></label>
|
||||
<%= select_tag "helpdesk_tracker", options_for_select([[l(:label_all), "all"]] + @project.trackers.collect {|t| [t.name, t.id.to_s]}, HelpdeskSettings["helpdesk_tracker", @project.id]), :include_blank => true %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_assigned_to) %></label>
|
||||
<%= select_tag "helpdesk_assigned_to", ("<option value=\"\">#{l(:label_no_change_option)}</option>" + options_for_select(@project.assignable_users.collect {|t| [t.name, t.id.to_s]}, HelpdeskSettings["helpdesk_assigned_to", @project.id])).html_safe %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_lifetime) %></label>
|
||||
<%= text_field_tag "helpdesk_lifetime", HelpdeskSettings["helpdesk_lifetime", @project.id], :size => "5" %> <%= l(:label_day_plural) %>
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_not_create_contacts) %></label>
|
||||
|
||||
<%= hidden_field_tag("helpdesk_is_not_create_contacts", 0) %>
|
||||
<%= check_box_tag "helpdesk_is_not_create_contacts", 1, HelpdeskSettings["helpdesk_is_not_create_contacts", @project.id].to_i > 0, :onclick => '$("#add_tags").toggle();' %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_blacklist) %></label>
|
||||
<%= text_area_tag "helpdesk_blacklist", HelpdeskSettings["helpdesk_blacklist", @project.id].blank? ? '' : HelpdeskSettings["helpdesk_blacklist", @project.id].split("\n").map{|u| u.strip}.join("\n"), :rows => 10 %>
|
||||
<br /><em class="info"><%= l(:text_custom_field_possible_values_info) %></em> </p>
|
||||
|
||||
|
||||
|
||||
<div id="add_tags" class="contacts-tags-edit" <%= "style=\"display: none;\"" if HelpdeskSettings["helpdesk_is_not_create_contacts", @project.id].to_i > 0 %>>
|
||||
<p>
|
||||
<label><%= l(:field_created_contact_tags) %></label>
|
||||
<%= text_field_tag "helpdesk_created_contact_tag", HelpdeskSettings["helpdesk_created_contact_tag", @project.id], :size => 10, :class => 'hol' %><%= tagsedit_for('#helpdesk_created_contact_tag', Contact.available_tags(:project => @project).map(&:name).join("\',\'").html_safe ) %>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
+184
@@ -0,0 +1,184 @@
|
||||
<fieldset class="box tabular"><legend><%= l(:label_helpdesk_incoming_mail_server) %></legend>
|
||||
<script type="text/javascript" charset="utf-8">
|
||||
function changeServerSettings(element) {
|
||||
$('#helpdesk_use_ssl_field').show();
|
||||
|
||||
if (element.value == 'pop3') {
|
||||
$('#server_settings').show();
|
||||
$('#imap_settings').hide();
|
||||
$('#pop3_settings').show();
|
||||
$('#host_settings').show();
|
||||
}
|
||||
|
||||
if (element.value == 'imap') {
|
||||
$('#server_settings').show();
|
||||
$('#pop3_settings').hide();
|
||||
$('#imap_settings').show();
|
||||
$('#host_settings').show();
|
||||
}
|
||||
|
||||
if (element.value == '') {
|
||||
$('#server_settings').hide();
|
||||
}
|
||||
|
||||
if (element.value == 'gmail' || element.value == 'yahoo' || element.value == 'yandex' ) {
|
||||
$('#server_settings').show();
|
||||
$('#host_settings').hide();
|
||||
$('#imap_settings').show();
|
||||
$('#pop3_settings').hide();
|
||||
$('#helpdesk_use_ssl_field').hide();
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_protocol) %></label>
|
||||
<%= select_tag :helpdesk_protocol, options_for_select([['', ""], ["pop3", "pop3"], ["imap", "imap"], ["Gmail", "gmail"], ["Yahoo", "yahoo"], ["Yandex", "yandex"]] , HelpdeskSettings[:helpdesk_protocol, @project.id]), :onchange => "changeServerSettings(this)" %>
|
||||
</p>
|
||||
|
||||
<span id="server_settings" <%= "style=\"display: none;\"".html_safe if HelpdeskSettings[:helpdesk_protocol, @project.id].blank? %>>
|
||||
|
||||
<span id="host_settings" <%= "style=\"display: none;\"".html_safe if ["gmail","yahoo", "yandex"].include?(HelpdeskSettings[:helpdesk_protocol, @project.id]) %>>
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_host) %></label>
|
||||
<%= text_field_tag :helpdesk_host, HelpdeskSettings[:helpdesk_host, @project.id] %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_port) %></label>
|
||||
<%= text_field_tag :helpdesk_port, HelpdeskSettings[:helpdesk_port, @project.id] %>
|
||||
</p>
|
||||
</span>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_username) %></label>
|
||||
<%= text_field_tag :helpdesk_username, HelpdeskSettings[:helpdesk_username, @project.id] %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_password) %></label>
|
||||
<%= link_to_function image_tag('edit.png'), '$(this).hide(); $("#helpdesk_password_field").show()' unless HelpdeskSettings[:helpdesk_username, @project.id].blank? %>
|
||||
<%= content_tag 'span', :id => "helpdesk_password_field", :style => (HelpdeskSettings[:helpdesk_username, @project.id].blank? ? nil : 'display:none') do %>
|
||||
<%= password_field_tag :helpdesk_password, '' %>
|
||||
<% end %>
|
||||
</p>
|
||||
<p <%= "style=\"display: none;\"".html_safe if ["gmail", "yahoo", "yandex"].include?(HelpdeskSettings[:helpdesk_protocol, @project.id]) %> id="helpdesk_use_ssl_field">
|
||||
<label><%= l(:label_helpdesk_ssl) %></label>
|
||||
|
||||
<%= hidden_field_tag(:helpdesk_use_ssl, 0) %>
|
||||
<%= check_box_tag :helpdesk_use_ssl, 1, HelpdeskSettings[:helpdesk_use_ssl, @project.id].to_i > 0 %>
|
||||
</p>
|
||||
|
||||
<span id="imap_settings" <%= "style=\"display: none;\"".html_safe if !["gmail", "yahoo", "yandex", "imap"].include?(HelpdeskSettings[:helpdesk_protocol, @project.id]) %>>
|
||||
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_imap_folder) %></label>
|
||||
<%= text_field_tag :helpdesk_imap_folder, HelpdeskSettings[:helpdesk_imap_folder, @project.id] %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_move_on_success) %></label>
|
||||
<%= text_field_tag :helpdesk_move_on_success, HelpdeskSettings[:helpdesk_move_on_success, @project.id] %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_move_on_failure) %></label>
|
||||
<%= text_field_tag :helpdesk_move_on_failure, HelpdeskSettings[:helpdesk_move_on_failure, @project.id] %>
|
||||
</p>
|
||||
</span>
|
||||
|
||||
<span id="pop3_settings" <%= "style=\"display: none;\"".html_safe if HelpdeskSettings[:helpdesk_protocol, @project.id] != "pop3" %>>
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_apop) %></label>
|
||||
|
||||
<%= hidden_field_tag(:helpdesk_apop, 0) %>
|
||||
<%= check_box_tag :helpdesk_apop, 1, HelpdeskSettings[:helpdesk_apop, @project.id].to_i > 0 %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_delete_unprocessed) %></label>
|
||||
|
||||
<%= hidden_field_tag(:helpdesk_delete_unprocessed, 0) %>
|
||||
<%= check_box_tag :helpdesk_delete_unprocessed, 1, HelpdeskSettings[:helpdesk_delete_unprocessed, @project.id].to_i > 0 %>
|
||||
</p>
|
||||
</span>
|
||||
|
||||
<div id="test_connection_messages">
|
||||
</div>
|
||||
|
||||
<%= link_to l(:label_helpdesk_get_mail),
|
||||
{},
|
||||
:remote => true,
|
||||
:onclick => "updateCustomForm('#{url_for(:controller => 'helpdesk', :action => 'get_mail', :project_id => @project)}', $('#helpdesk_settings'))" %>
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
</span> <!-- Server settings -->
|
||||
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="box tabular"><legend><%= l(:label_helpdesk_outgoing_mail_server) %> (experimental)</legend>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_smtp_use_default_settings) %></label>
|
||||
<%= hidden_field_tag(:helpdesk_smtp_use_default_settings, 1) %>
|
||||
<%= check_box_tag :helpdesk_smtp_use_default_settings, 0, HelpdeskSettings[:helpdesk_smtp_use_default_settings, @project.id].to_i == 0, :onchange => "$('.smtp-settings').toggle(); return false;" %>
|
||||
</p>
|
||||
|
||||
<span class="smtp-settings" <%= "style=\"display: none;\"".html_safe unless HelpdeskSettings[:helpdesk_smtp_use_default_settings, @project.id].to_i > 0 %>>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_smtp_server) %></label>
|
||||
<%= text_field_tag :helpdesk_smtp_server, HelpdeskSettings[:helpdesk_smtp_server, @project.id] %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_port) %></label>
|
||||
<%= text_field_tag :helpdesk_smtp_port, HelpdeskSettings[:helpdesk_smtp_port, @project.id] %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_smtp_domain) %></label>
|
||||
<%= text_field_tag :helpdesk_smtp_domain, HelpdeskSettings[:helpdesk_smtp_domain, @project.id] %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_authentication) %></label>
|
||||
<%= select_tag :helpdesk_smtp_authentication, options_for_select([[l(:label_helpdesk_authentication_plain), "plain"], [l(:label_helpdesk_authentication_login), "login"], [l(:label_helpdesk_authentication_cram_md5), "cram_md5"]] , HelpdeskSettings[:helpdesk_smtp_authentication, @project.id]) %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_username) %></label>
|
||||
<%= text_field_tag :helpdesk_smtp_username, HelpdeskSettings[:helpdesk_smtp_username, @project.id] %>
|
||||
</p>
|
||||
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_password) %></label>
|
||||
<%= link_to_function image_tag('edit.png'), '$(this).hide(); $("#helpdesk_smtp_password_field").show()' unless HelpdeskSettings[:helpdesk_smtp_username, @project.id].blank? %>
|
||||
<%= content_tag 'span', :id => "helpdesk_smtp_password_field", :style => (HelpdeskSettings[:helpdesk_smtp_username, @project.id].blank? ? nil : 'display:none') do %>
|
||||
<%= password_field_tag :helpdesk_smtp_password, '' %>
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_ssl) %></label>
|
||||
<%= hidden_field_tag(:helpdesk_smtp_ssl, 0) %>
|
||||
<%= check_box_tag :helpdesk_smtp_ssl, 1, HelpdeskSettings[:helpdesk_smtp_ssl, @project.id].to_i > 0 %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_smtp_tls) %></label>
|
||||
<%= hidden_field_tag(:helpdesk_smtp_tls, 0) %>
|
||||
<%= check_box_tag :helpdesk_smtp_tls, 1, HelpdeskSettings[:helpdesk_smtp_tls, @project.id].to_i > 0 %>
|
||||
</p>
|
||||
|
||||
</span> <!-- Server settings -->
|
||||
|
||||
</fieldset>
|
||||
|
||||
|
||||
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<%= error_messages_for 'helpdesk_settings' %>
|
||||
|
||||
<% errors = [] %>
|
||||
<% errors << l(:label_helpdesk_enable_modules) unless @project.module_enabled?(:contacts) && @project.module_enabled?(:issue_tracking) %>
|
||||
|
||||
<% if errors.empty? %>
|
||||
<%= form_tag({:controller => :helpdesk, :action => :save_settings, :project_id => @project, :tab => 'helpdesk'}, :method => :put, :class => "tabular", :multipart => true, :id => 'helpdesk_settings') do %>
|
||||
|
||||
<div class="splitcontentleft">
|
||||
<h3><%=l(:label_helpdesk)%></h3>
|
||||
<%= render :partial => 'projects/settings/helpdesk_general' %>
|
||||
</div>
|
||||
|
||||
<div class="splitcontentright">
|
||||
<h3><%=l(:label_helpdesk_server_settings)%></h3>
|
||||
<%= render :partial => 'projects/settings/helpdesk_server' %>
|
||||
</div>
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
|
||||
<% end %>
|
||||
|
||||
<% else %>
|
||||
<p class="nodata"><%= errors.join("<br/>").html_safe %></p>
|
||||
<% end %>
|
||||
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
<%= error_messages_for 'helpdesk_settings' %>
|
||||
|
||||
<% if @project.module_enabled?(:contacts) && @project.module_enabled?(:issue_tracking) %>
|
||||
<%= form_tag({:controller => :helpdesk, :action => :save_settings, :project_id => @project, :tab => 'helpdesk_template'}, :method => :put, :class => "tabular", :multipart => true, :id => 'helpdesk_template') do %>
|
||||
|
||||
<fieldset class="box tabular"><legend><%= l(:label_helpdesk_answer_template) %></legend>
|
||||
|
||||
<p>
|
||||
<label><%= l(:field_subject) %></label>
|
||||
<%= text_field_tag "helpdesk_answer_subject", HelpdeskSettings["helpdesk_answer_subject", @project.id], :style => "width:100%" %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:setting_emails_header) %></label>
|
||||
<%= text_area_tag "helpdesk_emails_header", HelpdeskSettings["helpdesk_emails_header", @project.id], :class => 'wiki-edit', :rows => 5 %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:setting_emails_footer) %></label>
|
||||
<%= text_area_tag "helpdesk_emails_footer", HelpdeskSettings["helpdesk_emails_footer", @project.id], :class => 'wiki-edit', :rows => 5 %>
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<fieldset class="box" style="background-color: #FFD;"><legend><%= l(:label_helpdesk_auto_answer_template) %></legend>
|
||||
<p>
|
||||
<label><%= l(:label_send_auto_answer) %></label>
|
||||
|
||||
<%= hidden_field_tag("helpdesk_send_notification", 0) %>
|
||||
<%= check_box_tag "helpdesk_send_notification", 1, ContactsSetting["helpdesk_send_notification", @project.id].to_i > 0 %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:field_subject) %></label>
|
||||
<%= text_field_tag "helpdesk_first_answer_subject", HelpdeskSettings["helpdesk_first_answer_subject", @project.id], :style => "width:100%" %>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<label><%= l(:label_helpdesk_first_answer_template) %></label>
|
||||
<%= text_area_tag "helpdesk_first_answer_template", HelpdeskSettings["helpdesk_first_answer_template", @project.id], :class => 'wiki-edit', :rows => 15 %>
|
||||
<%= wikitoolbar_for 'helpdesk_first_answer_template' %>
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
|
||||
<div> <em class="info"><%= l(:text_helpdesk_answer_macros, :macro => HelpdeskSettings::MACRO_LIST.join(', ')) %></em></div>
|
||||
|
||||
<br/>
|
||||
|
||||
<%= submit_tag l(:button_save) %>
|
||||
|
||||
<% end %>
|
||||
|
||||
<% else %>
|
||||
<p class="nodata"><%= l(:label_helpdesk_enable_modules) %></p>
|
||||
<% end %>
|
||||
|
||||
|
||||
<% content_for :header_tags do %>
|
||||
<%= javascript_include_tag :"tag-it", :plugin => 'redmine_contacts' %>
|
||||
<%= stylesheet_link_tag :"jquery.tagit.css", :plugin => 'redmine_contacts' %>
|
||||
<%= javascript_include_tag :contacts, :plugin => 'redmine_contacts' %>
|
||||
<%= stylesheet_link_tag :contacts, :plugin => 'redmine_contacts' %>
|
||||
<% end %>
|
||||
Reference in New Issue
Block a user