Initial Redmine tooling and local plugin forks
|
After Width: | Height: | Size: 677 B |
|
After Width: | Height: | Size: 795 B |
|
After Width: | Height: | Size: 438 B |
|
After Width: | Height: | Size: 439 B |
|
After Width: | Height: | Size: 792 B |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 754 B |
|
After Width: | Height: | Size: 766 B |
|
After Width: | Height: | Size: 615 B |
|
After Width: | Height: | Size: 794 B |
|
After Width: | Height: | Size: 565 B |
|
After Width: | Height: | Size: 837 B |
|
After Width: | Height: | Size: 743 B |
|
After Width: | Height: | Size: 923 B |
@@ -0,0 +1,59 @@
|
||||
function togglePrivateTicketsOnChange() {
|
||||
var checked = $(this).is(':checked');
|
||||
$('.private_tikets').attr('disabled', !checked);
|
||||
}
|
||||
|
||||
function togglePrivateTicketsInit() {
|
||||
$('.assign_contact_user').each(togglePrivateTicketsOnChange);
|
||||
}
|
||||
|
||||
function toggleStatusesForAutoclose(node) {
|
||||
if ($(node).val() == ''){
|
||||
$('#statuses_autoclose').hide();
|
||||
} else {
|
||||
$('#statuses_autoclose').show();
|
||||
}
|
||||
}
|
||||
|
||||
function ccEmailTagResult (opt) {
|
||||
if (opt.name){
|
||||
var formated_tag = $('<span>' + opt.avatar + ' ' + opt.text + '</span>');;
|
||||
} else {
|
||||
var formated_tag = opt.text;
|
||||
}
|
||||
return formated_tag
|
||||
};
|
||||
|
||||
function ccEmailTagSelection (opt) {
|
||||
if (opt.name){
|
||||
var formated_tag = opt.name + ' <' + opt.email + '>';
|
||||
} else {
|
||||
var formated_tag = opt.text;
|
||||
}
|
||||
return formated_tag
|
||||
};
|
||||
|
||||
function showWithSendAndScrollTo(id, focus) {
|
||||
showAndScrollTo(id, focus);
|
||||
send_mail_input = $('#helpdesk_is_send_mail');
|
||||
send_mail_input.prop( "checked", true );
|
||||
send_mail_input.checked = true;
|
||||
toggleSendMail(send_mail_input);
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
$('#content').on('change', '.assign_contact_user', togglePrivateTicketsOnChange);
|
||||
togglePrivateTicketsInit();
|
||||
|
||||
$('#history .contextual a[title="Quote"]').click(function(){
|
||||
if ($('#ticket_data').length > 0) {
|
||||
var journal_id = this.href.match(/journal_id=(\d*)/)[1];
|
||||
console.log(journal_id);
|
||||
$.ajax({
|
||||
method: 'GET',
|
||||
url: '/helpdesk/update_customer_email',
|
||||
data: { journal_id: journal_id }
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,370 @@
|
||||
|
||||
span.attachment img {
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
|
||||
div#contacts_previous_issues {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
/* TICKETS DATA SHOW ISSUE
|
||||
/**********************************************************************/
|
||||
|
||||
span.helpdesk-message-date {
|
||||
font-size: 0.9em;
|
||||
color: #888;
|
||||
}
|
||||
/**********************************************************************/
|
||||
/* TICKETS DATA FORM
|
||||
/**********************************************************************/
|
||||
|
||||
form#ticket_data_form {
|
||||
background:
|
||||
#ffffff;
|
||||
display: block;
|
||||
padding: 6px;
|
||||
margin-bottom: 6px;
|
||||
margin-right: 10px;
|
||||
border: 1px solid
|
||||
#d7d7d7;
|
||||
}
|
||||
|
||||
.contact_auto_complete > span {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/* TICKETS EXCERPT LIST
|
||||
/**********************************************************************/
|
||||
table.list.issues td.helpdesk_ticket {white-space: normal; text-align: left;}
|
||||
table.list.issues td.helpdesk_ticket .gravatar {float: left;}
|
||||
table.list.issues td.helpdesk_ticket .ticket-data {margin-left: 45px;}
|
||||
table.list.issues td.helpdesk_ticket .ticket-data .ticket-name {margin: 0px;font-weight: bold;}
|
||||
table.list.issues td.helpdesk_ticket .ticket-status {float: left;}
|
||||
table.list.issues td.last_message {vertical-align: top}
|
||||
|
||||
/**********************************************************************/
|
||||
/* PUBCLIV TICKETS
|
||||
/**********************************************************************/
|
||||
div.ticket-history div.journal {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
div.ticket-history div.journal.incoming,
|
||||
div.ticket-history div.journal.outgoing {
|
||||
padding: 6px;
|
||||
margin-bottom: 6px;
|
||||
border: 1px solid #d7d7d7;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
div.ticket-history div.journal.incoming {
|
||||
background: #ececec;
|
||||
margin-right: 30px;
|
||||
margin-left: 4px;
|
||||
|
||||
}
|
||||
div.ticket-history div.journal.outgoing {
|
||||
background: #f1faff;
|
||||
margin-left: 30px;
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
div.ticket-history div.journal.incoming:after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left:-7px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #ececec;
|
||||
border-left:1px solid #d7d7d7;
|
||||
border-bottom:1px solid #d7d7d7;
|
||||
-moz-transform:rotate(45deg);
|
||||
-webkit-transform:rotate(45deg);
|
||||
}
|
||||
|
||||
div.ticket-history div.journal.outgoing:after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right:-7px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
background: #f1faff;
|
||||
border-right:1px solid #d7d7d7;
|
||||
border-bottom:1px solid #d7d7d7;
|
||||
-moz-transform:rotate(-45deg);
|
||||
-webkit-transform:rotate(-45deg);
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
/* TICKET DATA
|
||||
/**********************************************************************/
|
||||
span.ticket-status {
|
||||
padding: 3px 4px;
|
||||
font-size: 10px;
|
||||
white-space: nowrap;
|
||||
margin-right: 4px;
|
||||
color: white;
|
||||
}
|
||||
|
||||
div#ticket_data > div.contextual {
|
||||
margin-top: initial;
|
||||
}
|
||||
|
||||
form.new_issue .email-template {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
span.ticket-status.status-1 {background-color: #CD5C5C;}
|
||||
span.ticket-status.status-2 {background-color: deepSkyBlue;}
|
||||
span.ticket-status.status-3 {background-color: green;}
|
||||
span.ticket-status.status-4 {background-color: #FF8C00;}
|
||||
span.ticket-status.status-5 {background-color: #AAA;}
|
||||
span.ticket-status.status-6 {background-color: #8A2BE2;}
|
||||
|
||||
/**********************************************************************/
|
||||
/* SHOW TICKET
|
||||
/**********************************************************************/
|
||||
|
||||
#ticket-history .ticket-avatar {float: left;}
|
||||
#ticket-history .ticket-note-content {margin-left: 50px;}
|
||||
#ticket-history .ticket-note {border-top: 1px solid #d7d7d7; padding-top: 8px;}
|
||||
|
||||
/**********************************************************************/
|
||||
/* SEND RESPONSE
|
||||
/**********************************************************************/
|
||||
|
||||
.cc-list-edit .is-cc {
|
||||
float: left;
|
||||
min-width: 25px;
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.cc-list-edit {
|
||||
margin-top: -8px;
|
||||
}
|
||||
|
||||
.cc-list-edit .select2 {
|
||||
margin-left: 60px;
|
||||
width: 90% !important;
|
||||
-moz-border-radius: 0px;
|
||||
-webkit-border-radius: 0px;
|
||||
-khtml-border-radius: 0px;
|
||||
border-radius: 0px;
|
||||
background: white;
|
||||
padding: 0px;
|
||||
}
|
||||
.cc-list-edit .select2 .select2-selection__choice {
|
||||
background-color: #D7E7F9;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.cc-list-edit ul.tagit li.tagit-choice .tagit-close .text-icon:hover {
|
||||
color: black;
|
||||
}
|
||||
|
||||
.cc-list-edit ul.tagit li.tagit-new input {
|
||||
font-size: 11px;
|
||||
background: white;
|
||||
margin-bottom: 2px;
|
||||
margin-left: 2px;
|
||||
width: 200px;
|
||||
}
|
||||
|
||||
.cc-list-edit ul.tagit li.tagit-new {
|
||||
padding: 0px;
|
||||
}*/
|
||||
|
||||
p#helpdesk_send_response {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/* ISSUES LIST
|
||||
/**********************************************************************/
|
||||
|
||||
tr.issue td.customer, tr.issue td.customer_company {
|
||||
white-space: normal;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table.list.issue td.last_message img.gravatar{
|
||||
vertical-align: middle;
|
||||
margin: 0 4px 2px 0;
|
||||
}
|
||||
|
||||
div.email-template {
|
||||
background-color: #FFD;
|
||||
border: 1px solid #E4E4E4;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
tr.issue td.last_message {
|
||||
text-align: left;
|
||||
white-space: normal;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
tr.issue td.last_message_date {
|
||||
text-align: left;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
tr.issue.context-menu-selection td.last_message span.description {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/**********************************************************************/
|
||||
/* ICONS
|
||||
/**********************************************************************/
|
||||
|
||||
#admin-menu a.helpdesk { background-image: url(../images/support.png)}
|
||||
.icon-public-link { background-image: url(../../../images/external.png);padding-left: 14px;}
|
||||
.icon-email-spam { background-image: url(../images/email_error.png); }
|
||||
.icon-email-to { background-image: url(../images/email_go.png); }
|
||||
.icon-email-from { background-image: url(../images/email_from.png); }
|
||||
.icon-helpdesk { background-image: url(../images/user_comment.png); }
|
||||
.icon-split { background-image: url(../images/arrow_divide.png); }
|
||||
.icon-web { background-image: url(../images/world.png); }
|
||||
.icon-support { background-image: url(../images/support.png); }
|
||||
.icon-reply { background-image: url(../images/reply.png); }
|
||||
|
||||
/**********************************************************************/
|
||||
/* VOTE
|
||||
/**********************************************************************/
|
||||
|
||||
.vote_form {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.submit, #vote_comment {
|
||||
margin-top: 5px;
|
||||
width: 40%;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.vote-value .icon {
|
||||
padding-left: 20px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
.icon-awesome { background-image: url(../images/awesome.png); }
|
||||
.icon-justok { background-image: url(../images/just_ok.png); }
|
||||
.icon-notgood { background-image: url(../images/not_good.png); }
|
||||
|
||||
.error-text { color: red; }
|
||||
|
||||
/**********************************************************************/
|
||||
/* CHARTS
|
||||
/**********************************************************************/
|
||||
|
||||
.helpdesk_chart { text-align: center; width: 100%; }
|
||||
|
||||
.center { text-align: center; }
|
||||
.chart_table { margin: auto; border-collapse:collapse; text-align: center }
|
||||
.chart_table .header { height: 50px; background-color: #eee }
|
||||
.chart_table .header .column_data { border: 1px solid #c0c0c0; padding: 0px; }
|
||||
.chart_table .header .column_data .issues_count { font-weight: bold; }
|
||||
.chart_table .main_block { height: 200px }
|
||||
.chart_table .main_block .column_data { vertical-align: bottom; width: 80px; border: 1px solid #c0c0c0; padding: 0px; }
|
||||
.chart_table .main_block .column_data .percents { background-color: #BAE0BA; }
|
||||
.chart_table .footer { height: 50px }
|
||||
.chart_table .footer .column_data { font-weight: bold; padding: 0px; }
|
||||
|
||||
/* Metrics*/
|
||||
|
||||
table.metrics {
|
||||
border-collapse: separate;
|
||||
table-layout: fixed;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.metrics.box {
|
||||
background-color: #eee;
|
||||
width: 250px;
|
||||
margin: 15px;
|
||||
border: 1px solid #c0c0c0;
|
||||
display: inline-block;
|
||||
padding: 20px 5px;
|
||||
}
|
||||
|
||||
.metrics td {
|
||||
padding: 25px 0;
|
||||
border-top: 1px solid #dbdde1;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.metrics .num {
|
||||
color: #444;
|
||||
font-size: 29px;
|
||||
margin-right: 8px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.metrics .change {
|
||||
display: inline-block;
|
||||
color: #999;
|
||||
font-size: 13px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.metrics p {
|
||||
color: #999;
|
||||
margin: 2px;
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
.change>.caret {
|
||||
border-width: 6px;
|
||||
display: block;
|
||||
margin: 0 auto 4px
|
||||
}
|
||||
|
||||
.change>.neg {
|
||||
border-top-color: #ed5a5a
|
||||
}
|
||||
|
||||
.change>.pos {
|
||||
border-top: 0;
|
||||
border-bottom: 6px solid #43ac6d
|
||||
}
|
||||
|
||||
.change>.mirror_pos {
|
||||
border-top: 0;
|
||||
border-bottom: 6px solid #ed5a5a
|
||||
}
|
||||
|
||||
.change>.mirror_neg {
|
||||
border-top-color: #43ac6d
|
||||
}
|
||||
|
||||
.caret {
|
||||
display: inline-block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
vertical-align: top;
|
||||
border-top: 4px solid #2b2b2b;
|
||||
border-right: 4px solid transparent;
|
||||
border-left: 4px solid transparent;
|
||||
content: ""
|
||||
}
|
||||
|
||||
.metrics .num>span {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#customer_previous_issues ul {margin: 0; padding: 0;}
|
||||
#customer_previous_issues ul li {position: relative; margin-bottom: 10px}
|
||||
#customer_previous_issues ul li .ticket-meta {color: #888; font-size: 0.9em;display: block}
|
||||