forked from extern/django-helpdesk
Merge branch 'master' of https://github.com/rossp/django-helpdesk into custom-staff-filter
This commit is contained in:
commit
cba43db882
@ -29,11 +29,14 @@ Bootstrap overrides
|
||||
|
||||
#searchtabs {margin-bottom: 20px;}
|
||||
|
||||
.row_tablehead {background-color: #dbd5d9;}
|
||||
.row_tablehead, table.table caption {background-color: #dbd5d9;}
|
||||
table.table caption {height: 2em; line-height: 2em; font-weight: bold;}
|
||||
table.ticket-stats caption {color: #fbff00; font-style: italic;}
|
||||
table.ticket-stats tbody th, table.ticket-stats tbody tr {padding-left: 20px}
|
||||
|
||||
.errorlist {list-style: none; }
|
||||
.errorlist {list-style: none;}
|
||||
.errorlist {padding: 0;}
|
||||
.has-error .input-group input, .has-error .input-group select, .has-error .input-group textarea {border-color: #b94a48}
|
||||
.has-error .input-group input, .has-error .input-group select, .has-error .input-group textarea {border-color: #b94a48}
|
||||
|
||||
#helpdesk-nav-collapse #searchform {
|
||||
padding-top: 0;
|
||||
|
@ -1,7 +0,0 @@
|
||||
$(document).ready(function() {
|
||||
$("tr.row_hover").mouseover(function() {
|
||||
$(this).addClass("hover");
|
||||
}).mouseout(function() {
|
||||
$(this).removeClass("hover");
|
||||
});
|
||||
});
|
@ -1,141 +1,30 @@
|
||||
{% extends "helpdesk/base.html" %}{% load i18n humanize %}{% load url from future %}
|
||||
{% extends "helpdesk/base.html" %}{% load i18n %}
|
||||
{% block helpdesk_title %}{% trans "Helpdesk Dashboard" %}{% endblock %}
|
||||
{% block helpdesk_head %}
|
||||
<script type='text/javascript' language='javascript' src='{{ STATIC_URL }}helpdesk/hover.js'></script>
|
||||
{% endblock %}
|
||||
|
||||
{% block helpdesk_body %}
|
||||
|
||||
<div class="alert alert-warning">
|
||||
<p>{% trans "Welcome to your Helpdesk Dashboard! From here you can quickly see tickets submitted by you, tickets you are working on, and those tickets that have no owner." %}</p>
|
||||
</div>
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='5'>{% trans "Helpdesk Summary" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>{% trans "Queue" %}</th><th>{% trans "Open" %}</th><th>{% trans "Resolved" %}</th><th>{% trans "Closed" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for queue in dash_tickets %}
|
||||
<tr class='row_{% cycle odd,even %} row_hover '>
|
||||
<th><a href='{% url 'helpdesk_list' %}?queue={{ queue.queue }}&status=1&status=2'>{{ queue.name }}</a></th>
|
||||
<td align="center">{% if queue.open %}<a href='{% url 'helpdesk_list' %}?queue={{ queue.queue }}&status=1&status=2'>{% endif %}{{ queue.open }}{% if queue.open %}</a>{% endif %}</td>
|
||||
<td align="center">{% if queue.resolved %}<a href='{% url 'helpdesk_list' %}?queue={{ queue.queue }}&status=3'>{% endif %}{{ queue.resolved }}{% if queue.resolved %}</a>{% endif %}</td>
|
||||
<td align="center">{% if queue.closed %}<a href='{% url 'helpdesk_list' %}?queue={{ queue.queue }}&status=4'>{% endif %}{{ queue.closed }}{% if queue.closed %}</a>{% endif %}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
<br style='clear: both;' />
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class='row_tablehead' style="color: #fbff00;"><td colspan='2'><i>{% trans "Current Ticket Stats" %}</i></td></tr>
|
||||
<tr><td colspan='2'>- {% trans "Average number of days until ticket is closed (all tickets): " %}<strong style="color: red;">{{ basic_ticket_stats.average_nbr_days_until_ticket_closed }}</strong>.</td></tr>
|
||||
<tr><td colspan='2'>- {% trans "Average number of days until ticket is closed (tickets opened in last 60 days): " %}<strong style="color: red;">{{ basic_ticket_stats.average_nbr_days_until_ticket_closed_last_60_days }}</strong>.
|
||||
{% trans "Click" %} <strong><a href="{% url 'helpdesk_report_index' %}daysuntilticketclosedbymonth">here</a></strong> {% trans "for detailed average by month." %} </td></tr>
|
||||
<tr><td colspan='2'>- {% trans "Distribution of open tickets, grouped by time period:" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>{% trans "Days since opened" %}</th><th>{% trans "Number of open tickets" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for entry in basic_ticket_stats.open_ticket_stats %}
|
||||
<tr class='row_{% cycle odd,even %} row_hover'>
|
||||
<th style="padding-left: 20px;">{{ entry.0 }}</th>
|
||||
<td style="padding-left: 20px;"><span style="color: {{ entry.2 }};">{% if entry.1 > 0 %}<a href="{% url 'helpdesk_list' %}?{{ entry.3 }}">{{ entry.1 }}</a>{% else %}{{ entry.1 }}{% endif %}</span></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% include 'helpdesk/include/summary.html' %}
|
||||
|
||||
{% include 'helpdesk/include/stats.html' %}
|
||||
|
||||
{% if all_tickets_reported_by_current_user %}
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='6'>{% trans "All Tickets submitted by you" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>#</th><th>{% trans "Pr" %}</th><th>{% trans "Title" %}</th><th>{% trans "Queue" %}</th><th>{% trans "Status" %}</th><th>{% trans "Last Update" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ticket in all_tickets_reported_by_current_user %}
|
||||
<tr class='row_{% cycle odd,even %} row_hover'>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.ticket }}</a></th>
|
||||
<td>{{ ticket.get_priority_span }}</td>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.title }}</a></th>
|
||||
<td>{{ ticket.queue }}</td>
|
||||
<td>{{ ticket.get_status }}</td>
|
||||
<td><span title='{{ ticket.modified|date:"r" }}'>{{ ticket.modified|naturaltime }}</span></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% trans "All Tickets submitted by you" as ticket_list_caption %}
|
||||
{% include 'helpdesk/include/tickets.html' with ticket_list=all_tickets_reported_by_current_user ticket_list_empty_message="" %}
|
||||
{% endif %}
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='6'>{% trans "Open Tickets assigned to you (you are working on this ticket)" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>#</th><th>{% trans "Pr" %}</th><th>{% trans "Title" %}</th><th>{% trans "Queue" %}</th><th>{% trans "Status" %}</th><th>{% trans "Last Update" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ticket in user_tickets %}
|
||||
<tr class='row_{% cycle odd,even %} row_hover'>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.ticket }}</a></th>
|
||||
<td>{{ ticket.get_priority_span }}</td>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.title }}</a></th>
|
||||
<td>{{ ticket.queue }}</td>
|
||||
<td>{{ ticket.get_status }}</td>
|
||||
<td><span title='{{ ticket.modified|date:"r" }}'>{{ ticket.modified|naturaltime }}</span></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if not user_tickets %}
|
||||
<tr class='row_odd'><td colspan='6'>{% trans "You have no tickets assigned to you." %}</td></tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='6'>{% trans "Unassigned Tickets" %} {% trans "(pick up a ticket if you start to work on it)" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>#</th><th>{% trans "Pr" %}</th><th>{% trans "Title" %}</th><th>{% trans "Queue" %}</th><th>{% trans "Created" %}</th><th> </th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ticket in unassigned_tickets %}
|
||||
<tr class='row_{% cycle odd,even %} row_hover'>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.ticket }}</a></th>
|
||||
<td>{{ ticket.get_priority_span }}</td>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.title }}</a></th>
|
||||
<td>{{ ticket.queue }}</td>
|
||||
<td><span title='{{ ticket.created|date:"r" }}'>{{ ticket.created|naturaltime }}</span></td>
|
||||
<th><a href='{{ ticket.get_absolute_url }}?take'><span class='button button_take'>{% trans "Take" %}</span></a> | <a href='{% url 'helpdesk_delete' ticket.id %}'><span class='button button_delete'>{% trans "Delete" %}</span></a></th>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if not unassigned_tickets %}
|
||||
<tr class='row_odd'><td colspan='6'>{% trans "There are no unassigned tickets." %}</td></tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% trans "Open Tickets assigned to you (you are working on this ticket)" as ticket_list_caption %}
|
||||
{% trans "You have no tickets assigned to you." as no_assigned_tickets %}
|
||||
{% include 'helpdesk/include/tickets.html' with ticket_list=user_tickets ticket_list_empty_message=no_assigned_tickets %}
|
||||
|
||||
{% include 'helpdesk/include/unassigned.html' %}
|
||||
|
||||
{% if user_tickets_closed_resolved %}
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='6'>{% trans "Closed & resolved Tickets you used to work on" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>#</th><th>{% trans "Pr" %}</th><th>{% trans "Title" %}</th><th>{% trans "Queue" %}</th><th>{% trans "Status" %}</th><th>{% trans "Last Update" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ticket in user_tickets_closed_resolved %}
|
||||
<tr class='row_{% cycle odd,even %} row_hover'>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.ticket }}</a></th>
|
||||
<td>{{ ticket.get_priority_span }}</td>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.title }}</a></th>
|
||||
<td>{{ ticket.queue }}</td>
|
||||
<td>{{ ticket.get_status }}</td>
|
||||
<td><span title='{{ ticket.modified|date:"r" }}'>{{ ticket.modified|naturaltime }}</span></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% trans "Closed & resolved Tickets you used to work on" as ticket_list_caption %}
|
||||
{% include 'helpdesk/include/tickets.html' with ticket_list=user_tickets_closed_resolved ticket_list_empty_message="" %}
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
@ -8,9 +8,9 @@
|
||||
<p>The following e-mail addresses are currently being ignored by the incoming e-mail processor. You can <a href='add/'>add a new e-mail address to the list</a> or delete any of the items below as required.</p>{% endblocktrans %}
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<caption>{% trans "Ignored E-Mail Addresses" %}</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='5'>{% trans "Ignored E-Mail Addresses" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>{% trans "Name" %}</th><th>{% trans "E-Mail Address" %}</th><th>{% trans "Date Added" %}</th><th>{% trans "Queues" %}</th><th>{% trans "Keep in mailbox?" %}</th><th>{% trans "Delete" %}</th></tr>
|
||||
<tr><th>{% trans "Name" %}</th><th>{% trans "E-Mail Address" %}</th><th>{% trans "Date Added" %}</th><th>{% trans "Queues" %}</th><th>{% trans "Keep in mailbox?" %}</th><th>{% trans "Delete" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ignore in ignore_list %}
|
||||
@ -18,7 +18,7 @@
|
||||
<td>{{ ignore.name }}</td>
|
||||
<td>{{ ignore.email_address }}</td>
|
||||
<td>{{ ignore.date }}</td>
|
||||
<td>{% for queue in ignore.queues.all %}{{ queue.slug }}{% if not forloop.last %}, {% endif %}{% endfor %}{% if not ignore.queues.all %}{% trans "All" %}{% endif %}</td>
|
||||
<td>{% for queue in ignore.queues.all %}{{ queue.slug }}{% if not forloop.last %}, {% endif %}{% empty %}{% trans "All" %}{% endfor %}</td>
|
||||
<td>{% if ignore.keep_in_mailbox %}{% trans "Keep" %}{% endif %}</td>
|
||||
<td><a href='{% url 'helpdesk_email_ignore_del' ignore.id %}'>{% trans "Delete" %}</a></td>
|
||||
</tr>
|
||||
|
19
helpdesk/templates/helpdesk/include/stats.html
Normal file
19
helpdesk/templates/helpdesk/include/stats.html
Normal file
@ -0,0 +1,19 @@
|
||||
{% load i18n %}{% load url from future %}
|
||||
<table class="table table-hover table-bordered table-striped ticket-stats">
|
||||
<caption>{% trans "Current Ticket Stats" %}</caption>
|
||||
<thead>
|
||||
<tr><td colspan='2'>- {% trans "Average number of days until ticket is closed (all tickets): " %}<strong style="color: red;">{{ basic_ticket_stats.average_nbr_days_until_ticket_closed }}</strong>.</td></tr>
|
||||
<tr><td colspan='2'>- {% trans "Average number of days until ticket is closed (tickets opened in last 60 days): " %}<strong style="color: red;">{{ basic_ticket_stats.average_nbr_days_until_ticket_closed_last_60_days }}</strong>.
|
||||
{% trans "Click" %} <strong><a href="{% url 'helpdesk_report_index' %}daysuntilticketclosedbymonth">here</a></strong> {% trans "for detailed average by month." %} </td></tr>
|
||||
<tr><td colspan='2'>- {% trans "Distribution of open tickets, grouped by time period:" %}</td></tr>
|
||||
<tr><th>{% trans "Days since opened" %}</th><th>{% trans "Number of open tickets" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for entry in basic_ticket_stats.open_ticket_stats %}
|
||||
<tr>
|
||||
<th>{{ entry.0 }}</th>
|
||||
<td><span style="color: {{ entry.2 }};">{% if entry.1 > 0 %}<a href="{% url 'helpdesk_list' %}?{{ entry.3 }}">{{ entry.1 }}</a>{% else %}{{ entry.1 }}{% endif %}</span></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
17
helpdesk/templates/helpdesk/include/summary.html
Normal file
17
helpdesk/templates/helpdesk/include/summary.html
Normal file
@ -0,0 +1,17 @@
|
||||
{% load i18n %}
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<caption>{% trans "Helpdesk Summary" %}</caption>
|
||||
<thead>
|
||||
<tr><th>{% trans "Queue" %}</th><th>{% trans "Open" %}</th><th>{% trans "Resolved" %}</th><th>{% trans "Closed" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for queue in dash_tickets %}
|
||||
<tr>{% url 'helpdesk_list' as hdlist %}
|
||||
<th><a href='{{ hdlist }}?queue={{ queue.queue }}&status=1&status=2'>{{ queue.name }}</a></th>
|
||||
<td align="center">{% if queue.open %}<a href='{{ hdlist }}?queue={{ queue.queue }}&status=1&status=2'>{% endif %}{{ queue.open }}{% if queue.open %}</a>{% endif %}</td>
|
||||
<td align="center">{% if queue.resolved %}<a href='{{ hdlist }}?queue={{ queue.queue }}&status=3'>{% endif %}{{ queue.resolved }}{% if queue.resolved %}</a>{% endif %}</td>
|
||||
<td align="center">{% if queue.closed %}<a href='{{ hdlist }}?queue={{ queue.queue }}&status=4'>{% endif %}{{ queue.closed }}{% if queue.closed %}</a>{% endif %}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
21
helpdesk/templates/helpdesk/include/tickets.html
Normal file
21
helpdesk/templates/helpdesk/include/tickets.html
Normal file
@ -0,0 +1,21 @@
|
||||
{% load i18n humanize %}{% load url from future %}
|
||||
<table class="table table-hover table-bordered table-striped">{% if ticket_list_caption %}
|
||||
<caption>{{ ticket_list_caption }}</caption>{% endif %}
|
||||
<thead>
|
||||
<tr><th>#</th><th>{% trans "Pr" %}</th><th>{% trans "Title" %}</th><th>{% trans "Queue" %}</th><th>{% trans "Status" %}</th><th>{% trans "Last Update" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ticket in ticket_list %}
|
||||
<tr>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.ticket }}</a></th>
|
||||
<td>{{ ticket.get_priority_span }}</td>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.title }}</a></th>
|
||||
<td>{{ ticket.queue }}</td>
|
||||
<td>{{ ticket.get_status }}</td>
|
||||
<td><span title='{{ ticket.modified|date:"r" }}'>{{ ticket.modified|naturaltime }}</span></td>
|
||||
</tr>
|
||||
{% empty %}{% if ticket_list_empty_message %}
|
||||
<tr><td colspan='6'>{{ ticket_list_empty_message }}</td></tr>
|
||||
{% endif %}{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
21
helpdesk/templates/helpdesk/include/unassigned.html
Normal file
21
helpdesk/templates/helpdesk/include/unassigned.html
Normal file
@ -0,0 +1,21 @@
|
||||
{% load i18n humanize %}{% load url from future %}
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<caption>{% trans "Unassigned Tickets" %} {% trans "(pick up a ticket if you start to work on it)" %}</caption>
|
||||
<thead>
|
||||
<tr><th>#</th><th>{% trans "Pr" %}</th><th>{% trans "Title" %}</th><th>{% trans "Queue" %}</th><th>{% trans "Created" %}</th><th> </th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ticket in unassigned_tickets %}
|
||||
<tr>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.ticket }}</a></th>
|
||||
<td>{{ ticket.get_priority_span }}</td>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.title }}</a></th>
|
||||
<td>{{ ticket.queue }}</td>
|
||||
<td><span title='{{ ticket.created|date:"r" }}'>{{ ticket.created|naturaltime }}</span></td>
|
||||
<th><a href='{{ ticket.get_absolute_url }}?take'><span class='button button_take'>{% trans "Take" %}</span></a> | <a href='{% url 'helpdesk_delete' ticket.id %}'><span class='button button_delete'>{% trans "Delete" %}</span></a></th>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan='6'>{% trans "There are no unassigned tickets." %}</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
@ -7,15 +7,15 @@
|
||||
|
||||
<p>{{ category.description }}</p>
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<caption>{% blocktrans with category.title as kbcat %}Knowledgebase Category: {{ kbcat }}{% endblocktrans %}</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='3'>{% blocktrans with category.title as kbcat %}Knowledgebase Category: {{ kbcat }}{% endblocktrans %}</td></tr>
|
||||
<tr class='row_columnheads'><th colspan='3'>{% trans "Article" %}</th></tr>
|
||||
<tr><th colspan='3'>{% trans "Article" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in items %}
|
||||
<tr class='row_even row_hover'><th><a href='{{ item.get_absolute_url }}'>{{ item.title }}</a></th><td>Rating: {{ item.score }}</td><td>Last Update: {{ item.last_updated|naturaltime }}</td></tr>
|
||||
<tr class='row_odd'><td colspan='3'>{{ item.question }}</td></tr>
|
||||
<tr><th><a href='{{ item.get_absolute_url }}'>{{ item.title }}</a></th><td>Rating: {{ item.score }}</td><td>Last Update: {{ item.last_updated|naturaltime }}</td></tr>
|
||||
<tr><td colspan='3'>{{ item.question }}</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -5,15 +5,15 @@
|
||||
|
||||
<p>{% trans "We have listed a number of knowledgebase articles for your perusal in the following categories. Please check to see if any of these articles address your problem prior to opening a support ticket." %}</p>
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<caption>{% trans "Knowledgebase Categories" %}</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td>{% trans "Knowledgebase Categories" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>{% trans "Category" %}</th></tr>
|
||||
<tr><th>{% trans "Category" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for category in kb_categories %}
|
||||
<tr class='row_even row_hover'><th><a href='{{ category.get_absolute_url }}'>{{ category.title }}</a></th></tr>
|
||||
<tr class='row_odd'><td>{{ category.description }}</td></tr>
|
||||
<tr><th><a href='{{ category.get_absolute_url }}'>{{ category.title }}</a></th></tr>
|
||||
<tr><td>{{ category.description }}</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -3,13 +3,11 @@
|
||||
{% block helpdesk_body %}
|
||||
<h2>{% blocktrans with item.title as item %}Knowledgebase: {{ item }}{% endblocktrans %}</h2>
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td>{{ item.title }}</td></tr>
|
||||
</thead>
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<caption>{{ item.title }}</caption>
|
||||
<tbody>
|
||||
<tr class='row_even row_hover'><th>{{ item.question }}</th></tr>
|
||||
<tr class='row_odd'><td>{{ item.answer|markdown }}</td></tr>
|
||||
<tr><th>{{ item.question }}</th></tr>
|
||||
<tr><td>{{ item.answer|markdown }}</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
@ -16,12 +16,12 @@
|
||||
<li><a href='{% url 'helpdesk_dashboard' %}'><span class="glyphicon glyphicon-dashboard"></span> <span class="nav-text">{% trans "Dashboard" %}</span></a></li>
|
||||
<li><a href='{% url 'helpdesk_list' %}'><span class="glyphicon glyphicon-tags"></span> <span class="nav-text">{% trans "Tickets" %}</span></a></li>
|
||||
<li><a href='{% url 'helpdesk_submit' %}'><span class="glyphicon glyphicon-plus"></span> <span class="nav-text">{% trans "New Ticket" %}</span></a></li>
|
||||
<li><a href='{% url 'helpdesk_report_index' %}'><span class="glyphicon glyphicon-stats"></span><span class="nav-text"> {% trans "Stats" %}</span></a></li>
|
||||
<li><a href='{% url 'helpdesk_report_index' %}'><span class="glyphicon glyphicon-stats"></span> <span class="nav-text"> {% trans "Stats" %}</span></a></li>
|
||||
{% if helpdesk_settings.HELPDESK_KB_ENABLED %}
|
||||
<li><a href='{% url 'helpdesk_kb_index' %}'><span class="glyphicon glyphicon-tree-deciduous"></span><span class="nav-text">{% trans "Knowledgebase" %}</span></a></li>
|
||||
<li><a href='{% url 'helpdesk_kb_index' %}'><span class="glyphicon glyphicon-tree-deciduous"></span> <span class="nav-text">{% trans "Knowledgebase" %}</span></a></li>
|
||||
{% endif %}
|
||||
{% if user_saved_queries_ %}
|
||||
<li class="headerlink dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-filter"></span><span class="nav-text"> {% trans "Saved Query" %} <b class="caret"></b></span></a>
|
||||
<li class="headerlink dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-filter"></span> <span class="nav-text">{% trans "Saved Query" %} <b class="caret"></b></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
{% for q in user_saved_queries_ %}
|
||||
<li><a href="{% url 'helpdesk_list' %}?saved_query={{ q.id }}">{{ q.title }}
|
||||
@ -32,7 +32,7 @@
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
<li class="headerlink dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-user"></span><span class="nav-text"> {{ user.get_full_name|default:user.username }} <b class="caret"></b></span></a>
|
||||
<li class="headerlink dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-user"></span> <span class="nav-text">{{ user.get_full_name|default:user.username }} <b class="caret"></b></span></a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a href='{% url 'helpdesk_user_settings' %}'>{% trans "User Settings" %}</a></li>
|
||||
{% if helpdesk_settings.HELPDESK_SHOW_CHANGE_PASSWORD and user.has_usable_password %}
|
||||
|
@ -5,15 +5,15 @@
|
||||
{% if kb_categories %}
|
||||
<h2>{% trans "Knowledgebase Articles" %}</h2>
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<caption>{% trans "Knowledgebase Categories" %}</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td>{% trans "Knowledgebase Categories" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>{% trans "Category" %}</th></tr>
|
||||
<tr><th>{% trans "Category" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for category in kb_categories %}
|
||||
<tr class='row_even row_hover'><th><a href='{{ category.get_absolute_url }}'>{{ category.title }}</a></th></tr>
|
||||
<tr class='row_odd'><td>{{ category.description }}</td></tr>
|
||||
<tr><th><a href='{{ category.get_absolute_url }}'>{{ category.title }}</a></th></tr>
|
||||
<tr><td>{{ category.description }}</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
@ -49,7 +49,7 @@
|
||||
|
||||
{% endfor %}
|
||||
{% endcomment %}
|
||||
|
||||
|
||||
<div class='buttons form-group'>
|
||||
<input type='submit' class="btn btn-primary" value='{% trans "Submit Ticket" %}' />
|
||||
</div>
|
||||
|
@ -3,51 +3,51 @@
|
||||
|
||||
{% block helpdesk_body %}
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<caption>{{ ticket.ticket }} . {{ ticket.title }} [{{ ticket.get_status }}]</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='2'>{{ ticket.ticket }} . {{ ticket.title }} [{{ ticket.get_status }}]</td></tr>
|
||||
<tr class='row_columnheads'><th colspan='2'>{% blocktrans with ticket.queue as queue_name %}Queue: {{ queue_name }}{% endblocktrans %}</th></tr>
|
||||
<tr><th colspan='2'>{% blocktrans with ticket.queue as queue_name %}Queue: {{ queue_name }}{% endblocktrans %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="{% cycle 'row_odd' 'row_even' as rowcolors %}">
|
||||
<tr>
|
||||
<th>{% trans "Submitted On" %}</th>
|
||||
<td>{{ ticket.created|date:"r" }} ({{ ticket.created|naturaltime }})</td>
|
||||
</tr>
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Submitter E-Mail" %}</th>
|
||||
<td>{{ ticket.submitter_email }}</td>
|
||||
</tr>
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Priority" %}</th>
|
||||
<td>{{ ticket.get_priority_display }}</td>
|
||||
</tr>
|
||||
|
||||
{% for customfield in ticket.ticketcustomfieldvalue_set.all %}
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{{ customfield.field.label }}</th>
|
||||
<td>{{ customfield.value }}</td>
|
||||
</tr>{% endfor %}
|
||||
|
||||
{% if tags_enabled %}
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Tags" %}</th>
|
||||
<td>{{ ticket.tags }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th colspan='2'>{% trans "Description" %}</th>
|
||||
</tr>
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<td colspan='2'>{{ ticket.description|force_escape|urlizetrunc:50|linebreaksbr }}</td>
|
||||
</tr>
|
||||
|
||||
{% if ticket.resolution %}<tr class='{% cycle rowcolors %}'>
|
||||
{% if ticket.resolution %}<tr>
|
||||
<th colspan='2'>{% trans "Resolution" %}{% ifequal ticket.get_status_display "Resolved" %} <a href='{{ ticket.ticket_url }}&close'><img src='{{ STATIC_URL }}/helpdesk/buttons/accept.png' alt='{% trans "Accept" %}' title='{% trans "Accept and Close" %}' width='60' height='15' /></a>{% endifequal %}</th>
|
||||
</tr>
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<td colspan='2'>{{ ticket.resolution|urlizetrunc:50|linebreaksbr }}</td>
|
||||
</tr>{% endif %}
|
||||
</tbody>
|
||||
|
@ -3,7 +3,7 @@
|
||||
{% block helpdesk_title %}{% trans "Reports & Statistics" %}{% endblock %}
|
||||
|
||||
{% block helpdesk_head %}
|
||||
<!--[if IE]><script language="javascript" type="text/javascript" src="{{ STATIC_URL }}helpdesk/jquery.jqplot/excanvas.min.js"></script><![endif]-->
|
||||
<!--[if IE]><script language="javascript" type="text/javascript" src="{{ STATIC_URL }}helpdesk/jquery.jqplot/excanvas.min.js"></script><![endif]-->
|
||||
<script src='{{ STATIC_URL }}helpdesk/jquery.jqplot/jquery.jqplot.min.js' type='text/javascript' language='javascript'></script>
|
||||
<link rel='stylesheet' typ='text/css' href='{{ STATIC_URL }}helpdesk/jquery.jqplot/jquery.jqplot.min.css' />
|
||||
<script type="text/javascript" src="{{ STATIC_URL }}helpdesk/jquery.jqplot/plugins/jqplot.categoryAxisRenderer.min.js"></script>
|
||||
@ -30,9 +30,9 @@
|
||||
{% endif %}
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<caption>{{ title }}</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='{{ headings|length }}'>{{ title }}</td></tr>
|
||||
<tr class='row_columnheads'>{% for h in headings %}<th>{% if forloop.first %}{{ h|title }}{% else %}{{ h }}{% endif %}</th>{% endfor %}</tr>
|
||||
<tr>{% for h in headings %}<th>{% if forloop.first %}{{ h|title }}{% else %}{{ h }}{% endif %}</th>{% endfor %}</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for d in data %}
|
||||
@ -68,7 +68,7 @@
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
{% endifequal %}
|
||||
{% ifequal charttype "bar" %}
|
||||
@ -99,7 +99,7 @@
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
{% endifequal %}
|
||||
|
||||
|
@ -19,9 +19,9 @@
|
||||
<p>{% trans "These RSS feeds allow you to view a summary of either your own tickets, or all tickets, for each of the queues in your helpdesk. For example, if you manage the staff who utilise a particular queue, this may be used to view new tickets coming into that queue." %}</p>
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<caption>{% trans "Per-Queue Feeds" %}</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='4'>{% trans "Per-Queue Feeds" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>{% trans "Queue" %}</th><th align='center'>{% trans "All Open Tickets" %}</th><th align='center'>{% trans "My Open Tickets" %}</th></tr>
|
||||
<tr><th>{% trans "Queue" %}</th><th align='center'>{% trans "All Open Tickets" %}</th><th align='center'>{% trans "My Open Tickets" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for queue in queues %}
|
||||
|
@ -10,9 +10,9 @@
|
||||
<p>You can <a href='add/'>add a new e-mail address to the list</a> or delete any of the items below as required.</p>{% endblocktrans %}
|
||||
|
||||
<table class="table table-hover table-bordered">
|
||||
<caption>{% trans "Ticket CC List" %}</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='4'>{% trans "Ticket CC List" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>{% trans "E-Mail Address" %}</th><th>{% trans "View?" %}</th><th>{% trans "Update?" %}</th><th>{% trans "Delete" %}</th></tr>
|
||||
<tr><th>{% trans "E-Mail Address" %}</th><th>{% trans "View?" %}</th><th>{% trans "Update?" %}</th><th>{% trans "Delete" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for person in copies_to %}
|
||||
|
@ -1,59 +1,59 @@
|
||||
{% load i18n humanize %}{% load url from future %}
|
||||
<table class="table table-hover table-bordered">
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='2'><h3>{{ ticket.id }}. {{ ticket.title }} [{{ ticket.get_status }}]</h3> <span class='ticket_toolbar'>
|
||||
<a href='{% url 'helpdesk_edit' ticket.id %}' class="ticket-edit"><span class="glyphicon glyphicon-pencil"></span> Edit</a>
|
||||
| <a href='{% url 'helpdesk_delete' ticket.id %}' class="ticket-delete"><span class="glyphicon glyphicon-remove"></span> Delete</a>
|
||||
{% if ticket.on_hold %} | <a href='unhold/' class="ticket-hold">{% trans "Unhold" %}</a>{% else %} | <a href='hold/' class="ticket-hold">{% trans "Hold" %}</a>{% endif %}
|
||||
</span></td></tr>
|
||||
<tr class='row_columnheads'><th colspan='2'>{% blocktrans with ticket.queue as queue %}Queue: {{ queue }}{% endblocktrans %}</th></tr>
|
||||
<tr><th colspan='2'>{% blocktrans with ticket.queue as queue %}Queue: {{ queue }}{% endblocktrans %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for customfield in ticket.ticketcustomfieldvalue_set.all %}
|
||||
<tr class='{% cycle 'row_odd' 'row_even' as rowcolors %}'>
|
||||
<tr>
|
||||
<th>{{ customfield.field.label }}</th>
|
||||
<td>{% ifequal customfield.field.data_type "url" %}<a href='{{ customfield.value }}'>{{ customfield.value }}</a>{% else %}{{ customfield.value }}{% endifequal %}</td>
|
||||
</tr>{% endfor %}
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th colspan='2'>{% trans "Description" %}</th>
|
||||
</tr>
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<td id="ticket-description" colspan='2'>{{ ticket.description|force_escape|urlizetrunc:50|linebreaksbr }}</td>
|
||||
</tr>
|
||||
|
||||
{% if ticket.resolution %}<tr class='{% cycle rowcolors %}'>
|
||||
{% if ticket.resolution %}<tr>
|
||||
<th colspan='2'>{% trans "Resolution" %}{% ifequal ticket.get_status_display "Resolved" %} <a href='?close'><img src='{{ STATIC_URL }}helpdesk/buttons/accept.png' alt='{% trans "Accept" %}' title='{% trans "Accept and Close" %}' width='60' height='15' /></a>{% endifequal %}</th>
|
||||
</tr>
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<td colspan='2'>{{ ticket.resolution|force_escape|urlizetrunc:50|linebreaksbr }}</td>
|
||||
</tr>{% endif %}
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Submitted On" %}</th>
|
||||
<td>{{ ticket.created|date:"r" }} ({{ ticket.created|naturaltime }})</td>
|
||||
</tr>
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Assigned To" %}</th>
|
||||
<td>{{ ticket.get_assigned_to }}{% ifequal ticket.get_assigned_to _('Unassigned') %} <strong><a href='?take'><span class='button button_take'>{% trans "Take" %}</span></a></strong>{% endifequal %}</td>
|
||||
</tr>
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Submitter E-Mail" %}</th>
|
||||
<td>{{ ticket.submitter_email }}{% if user.is_superuser %} <strong><a href='{% url 'helpdesk_email_ignore_add' %}?email={{ ticket.submitter_email }}'>{% trans "Ignore" %}</a></strong>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Priority" %}</th>
|
||||
<td>{{ ticket.get_priority_display }}</td>
|
||||
</tr>
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Copies To" %}</th>
|
||||
<td>{{ ticketcc_string }} <strong><a class='tooltip' href='{% url 'helpdesk_ticket_cc' ticket.id %}'>{% trans "Manage" %}<span>{% trans "Click here to add / remove people who should receive an e-mail whenever this ticket is updated." %}</span></a></strong>{% if SHOW_SUBSCRIBE %}, <strong><a class='tooltip' href='?subscribe'>{% trans "Subscribe" %}<span>{% trans "Click here to subscribe yourself to this ticket, if you want to receive an e-mail whenever this ticket is updated." %}</span></a></strong>{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
<tr class='{% cycle rowcolors %}'>
|
||||
<tr>
|
||||
<th>{% trans "Dependencies" %}</th>
|
||||
<td>{% for dep in ticket.ticketdependency.all %}
|
||||
{% if forloop.first %}<p>{% trans "This ticket cannot be resolved until the following ticket(s) are resolved" %}</p><ul>{% endif %}
|
||||
|
@ -3,7 +3,6 @@
|
||||
{% block helpdesk_head %}
|
||||
|
||||
<script type='text/javascript' language='javascript' src='{{ STATIC_URL }}helpdesk/filter.js'></script>
|
||||
<script type='text/javascript' language='javascript' src='{{ STATIC_URL }}helpdesk/hover.js'></script>
|
||||
|
||||
<script type='text/javascript' language='javascript'>
|
||||
$(document).ready(function() {
|
||||
@ -218,14 +217,14 @@ $(document).ready(function() {
|
||||
|
||||
{{ search_message|safe }}
|
||||
<form method='post' action='{% url 'helpdesk_mass_update' %}' id="ticket_mass_update">
|
||||
<table class="table table-hover table-bordered">
|
||||
<table class="table table-hover table-bordered table-striped">
|
||||
<caption>{% trans "Tickets" %}</caption>
|
||||
<thead>
|
||||
<tr class='row_tablehead'><td colspan='9'>{% trans "Tickets" %}</td></tr>
|
||||
<tr class='row_columnheads'><th>#</th><th> </th><th>{% trans "Pr" %}</th><th>{% trans "Title" %}</th><th>{% trans "Queue" %}</th><th>{% trans "Status" %}</th><th>{% trans "Created" %}</th><th>{% trans "Owner" %}</th></tr>
|
||||
<tr><th>#</th><th> </th><th>{% trans "Pr" %}</th><th>{% trans "Title" %}</th><th>{% trans "Queue" %}</th><th>{% trans "Status" %}</th><th>{% trans "Created" %}</th><th>{% trans "Owner" %}</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% if tickets %}{% for ticket in tickets.object_list %}
|
||||
<tr class='row_{% cycle odd,even %} row_hover'>
|
||||
{% for ticket in tickets.object_list %}
|
||||
<tr>
|
||||
<th><a href='{{ ticket.get_absolute_url }}'>{{ ticket.ticket }}</a></th>
|
||||
<td><input type='checkbox' name='ticket_id' value='{{ ticket.id }}' class='ticket_multi_select' /></td>
|
||||
<td>{{ ticket.get_priority_span }}</td>
|
||||
@ -235,9 +234,9 @@ $(document).ready(function() {
|
||||
<td><span title='{{ ticket.created|date:"r" }}'>{{ ticket.created|naturaltime }}</span></td>
|
||||
<td>{{ ticket.get_assigned_to }}</td>
|
||||
</tr>
|
||||
{% endfor %}{% else %}
|
||||
<tr class='row_odd'><td colspan='5'>{% trans "No Tickets Match Your Selection" %}</td></tr>
|
||||
{% endif %}
|
||||
{% empty %}
|
||||
<tr><td colspan='5'>{% trans "No Tickets Match Your Selection" %}</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pagination">
|
||||
|
Loading…
Reference in New Issue
Block a user