forked from extern/django-helpdesk
* Add interface for filtering mechanism - now only shows the filtering
options that are being used, allowing users to add or remove more options rather than just display the lot on screen. * Break out filtering and row hover into separate javascript files (hover is used in the ticket list & dashboard - same code was used in both places. Anti-DRY)
This commit is contained in:
parent
14b2c59093
commit
c626b22f4d
21
htdocs/filter.js
Normal file
21
htdocs/filter.js
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
$(document).ready(function() {
|
||||||
|
$("#filterBuilderButton").click(function() {
|
||||||
|
var boxName = "#filterBox" + $("#filterBuilderSelect").val();
|
||||||
|
$(boxName).slideDown();
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
$(".filterBuilderRemove").click(function() {
|
||||||
|
var boxName = "#" + $(this).parent().attr('id');
|
||||||
|
$(boxName).slideUp();
|
||||||
|
$(boxName).children("input:text").each(function() {
|
||||||
|
$(this).val("");
|
||||||
|
});
|
||||||
|
$(boxName).children("input:checkbox").each(function() {
|
||||||
|
this.checked = false;
|
||||||
|
});
|
||||||
|
$(boxName).children("select").each(function() {
|
||||||
|
this.selectedIndex = -1;
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
});
|
@ -156,31 +156,6 @@ a.ticket_link_status {
|
|||||||
font: 12pt Garamond;
|
font: 12pt Garamond;
|
||||||
}
|
}
|
||||||
|
|
||||||
.priority1 {
|
|
||||||
background-color: #fcc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.priority2 {
|
|
||||||
background-color: #FFE5CE;
|
|
||||||
}
|
|
||||||
|
|
||||||
.priority3 {
|
|
||||||
background-color: #CEE0FF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.priority4 {
|
|
||||||
background-color: #CEF5FF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.prority5 {
|
|
||||||
background-color: #CEE0FF;
|
|
||||||
}
|
|
||||||
|
|
||||||
.priority1, .priority2, .priority3, .priority4, .priority5 {
|
|
||||||
color: #6C79A0;
|
|
||||||
border-bottom: solid #d5e7fd 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
a img {
|
a img {
|
||||||
border: none;
|
border: none;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
@ -189,3 +164,10 @@ a img {
|
|||||||
textarea#commentBox {
|
textarea#commentBox {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.filterBox {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.filterBoxShow {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
7
htdocs/hover.js
Normal file
7
htdocs/hover.js
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
$(document).ready(function() {
|
||||||
|
$("tr.row_hover").mouseover(function() {
|
||||||
|
$(this).addClass("hover");
|
||||||
|
}).mouseout(function() {
|
||||||
|
$(this).removeClass("hover");
|
||||||
|
});
|
||||||
|
});
|
@ -1,10 +1,8 @@
|
|||||||
{% extends "helpdesk/base.html" %}
|
{% extends "helpdesk/base.html" %}
|
||||||
{% block helpdesk_title %}Helpdesk Dashboard{% endblock %}
|
{% block helpdesk_title %}Helpdesk Dashboard{% endblock %}
|
||||||
{% block helpdesk_head %}<script type='text/javascript' language='javascript'>
|
{% block helpdesk_head %}
|
||||||
$(document).ready(function() {
|
<script type='text/javascript' language='javascript' src='{{ MEDIA_URL }}/helpdesk/hover.js'></script>
|
||||||
$("tr.row_hover").mouseover(function() {$(this).addClass("hover");}).mouseout(function() {$(this).removeClass("hover");});
|
{% endblock %}
|
||||||
});
|
|
||||||
</script>{% endblock %}
|
|
||||||
{% block helpdesk_body %}
|
{% block helpdesk_body %}
|
||||||
<table width='30%'>
|
<table width='30%'>
|
||||||
<tr class='row_tablehead'><td colspan='4'>Helpdesk Summary</td></tr>
|
<tr class='row_tablehead'><td colspan='4'>Helpdesk Summary</td></tr>
|
||||||
|
@ -1,15 +1,24 @@
|
|||||||
{% extends "helpdesk/base.html" %}
|
{% extends "helpdesk/base.html" %}
|
||||||
{% block helpdesk_title %}Ticket Listing{% endblock %}
|
{% block helpdesk_title %}Ticket Listing{% endblock %}
|
||||||
{% block helpdesk_head %}<script type='text/javascript' language='javascript'>
|
{% block helpdesk_head %}
|
||||||
$(document).ready(function() {
|
<script type='text/javascript' language='javascript' src='{{ MEDIA_URL }}/helpdesk/filter.js'></script>
|
||||||
$("tr.row_hover").mouseover(function() {$(this).addClass("hover");}).mouseout(function() {$(this).removeClass("hover");});
|
<script type='text/javascript' language='javascript' src='{{ MEDIA_URL }}/helpdesk/hover.js'></script>
|
||||||
});
|
{% endblock %}
|
||||||
</script>{% endblock %}
|
|
||||||
{% block helpdesk_body %}
|
{% block helpdesk_body %}
|
||||||
|
|
||||||
{% load in_list %}
|
{% load in_list %}
|
||||||
|
|
||||||
|
<form><select name='select' id='filterBuilderSelect'>
|
||||||
|
<option value='Sort'>Sorting</option>
|
||||||
|
<option value='Owner'>Owner</option>
|
||||||
|
<option value='Queue'>Queue</option>
|
||||||
|
<option value='Status'>Status</option>
|
||||||
|
<option value='Keywords'>Keywords</option>
|
||||||
|
</select>
|
||||||
|
<input type='button' id='filterBuilderButton' value='+' /></form>
|
||||||
|
|
||||||
<form method='get' action='./'>
|
<form method='get' action='./'>
|
||||||
|
<div class='filterBox{% if sort %} filterBoxShow{% endif %}' id='filterBoxSort'>
|
||||||
<label for='id_sort'>Sorting</label> <select id='id_sort' name='sort'>
|
<label for='id_sort'>Sorting</label> <select id='id_sort' name='sort'>
|
||||||
<option value='created'{% ifequal sort "created"%} selected='selected'{% endifequal %}>Created</option>
|
<option value='created'{% ifequal sort "created"%} selected='selected'{% endifequal %}>Created</option>
|
||||||
<option value='title'{% ifequal sort "title"%} selected='selected'{% endifequal %}>Title</option>
|
<option value='title'{% ifequal sort "title"%} selected='selected'{% endifequal %}>Title</option>
|
||||||
@ -18,14 +27,29 @@ $(document).ready(function() {
|
|||||||
<option value='priority'{% ifequal sort "priority"%} selected='selected'{% endifequal %}>Priority</option>
|
<option value='priority'{% ifequal sort "priority"%} selected='selected'{% endifequal %}>Priority</option>
|
||||||
<option value='assigned_to'{% ifequal sort "assigned_to"%} selected='selected'{% endifequal %}>Owner</option>
|
<option value='assigned_to'{% ifequal sort "assigned_to"%} selected='selected'{% endifequal %}>Owner</option>
|
||||||
</select>
|
</select>
|
||||||
|
<input type='button' class='filterBuilderRemove' value='-' />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='filterBox{% if owners %} filterBoxShow{% endif %}' id='filterBoxOwner'>
|
||||||
<label for='id_owners'>Owner(s)</label> <select id='id_owners' name='assigned_to' multiple='selected' size='5'>{% for u in user_choices %}<option value='{{ u.id }}'{% if u.id|in_list:owners %} selected='selected'{% endif %}>{{ u.username }}</option>{% endfor %}</select>
|
<label for='id_owners'>Owner(s)</label> <select id='id_owners' name='assigned_to' multiple='selected' size='5'>{% for u in user_choices %}<option value='{{ u.id }}'{% if u.id|in_list:owners %} selected='selected'{% endif %}>{{ u.username }}</option>{% endfor %}</select>
|
||||||
|
<input type='button' class='filterBuilderRemove' value='-' />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='filterBox{% if queues %} filterBoxShow{% endif %}' id='filterBoxQueue'>
|
||||||
<label for='id_queues'>Queue(s)</label> <select id='id_queues' name='queue' multiple='selected' size='5'>{% for q in queue_choices %}<option value='{{ q.id }}'{% if q.id|in_list:queues %} selected='selected'{% endif %}>{{ q.title }}</option>{% endfor %}</select>
|
<label for='id_queues'>Queue(s)</label> <select id='id_queues' name='queue' multiple='selected' size='5'>{% for q in queue_choices %}<option value='{{ q.id }}'{% if q.id|in_list:queues %} selected='selected'{% endif %}>{{ q.title }}</option>{% endfor %}</select>
|
||||||
|
<input type='button' class='filterBuilderRemove' value='-' />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class='filterBox{% if statuses %} filterBoxShow{% endif %}' id='filterBoxStatus'>
|
||||||
<label for='id_statuses'>Status(es)</label> {% for s in status_choices %}<input type='checkbox' name='status' value='{{ s.0 }}'{% if s.0|in_list:statuses %} checked='checked'{% endif %}> {{ s.1 }}{% endfor %}
|
<label for='id_statuses'>Status(es)</label> {% for s in status_choices %}<input type='checkbox' name='status' value='{{ s.0 }}'{% if s.0|in_list:statuses %} checked='checked'{% endif %}> {{ s.1 }}{% endfor %}
|
||||||
|
<input type='button' class='filterBuilderRemove' value='-' />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class='filterBox{% if query %} filterBoxShow{% endif %}' id='filterBoxKeywords'>
|
||||||
<label for='id_query'>Keywords</label> <input type='text' name='q' value='{{ query }}' id='id_query' />
|
<label for='id_query'>Keywords</label> <input type='text' name='q' value='{{ query }}' id='id_query' />
|
||||||
|
<input type='button' class='filterBuilderRemove' value='-' />
|
||||||
|
</div>
|
||||||
|
|
||||||
<input type='submit' value='Go!' />
|
<input type='submit' value='Go!' />
|
||||||
</form>
|
</form>
|
||||||
|
Loading…
Reference in New Issue
Block a user