Merge branch 'jones-dev' of https://gitea.corbz.dev/corbz/ticket-website into jones-dev
This commit is contained in:
commit
4890d7a4c3
@ -1,204 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "0725deef-d48c-4e38-814a-ae35fcbad152",
|
||||
"fields": {
|
||||
"title": "Software Compatibility Challenge",
|
||||
"description": "Attempting to integrate a new software tool into our existing workflow, but facing compatibility challenges with other applications. Providing a detailed overview of the software stack and the specific issues encountered during integration attempts. Seeking expert guidance to resolve compatibility issues and ensure smooth workflow integration.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "a680328f-0680-456c-8e26-f594e05989ad",
|
||||
"create_timestamp": "2024-01-09T00:11:40Z",
|
||||
"edit_timestamp": "2024-01-09T00:11:40Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"72fb255c-132f-4124-802d-f4c051620540",
|
||||
"cc473838-acaf-43f9-a601-dc4ab1f9026c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "1e648e67-ddf6-4007-bb68-4a863961a827",
|
||||
"fields": {
|
||||
"title": "Security Patch Installation",
|
||||
"description": "There's a critical security patch that needs to be installed on all workstations to address recent vulnerabilities. Attempted to deploy the patch, but facing challenges on certain machines. Need high-priority assistance to ensure all systems are promptly updated for enhanced security measures.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "a680328f-0680-456c-8e26-f594e05989ad",
|
||||
"create_timestamp": "2024-01-09T00:09:20Z",
|
||||
"edit_timestamp": "2024-01-09T00:09:20Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"72fb255c-132f-4124-802d-f4c051620540",
|
||||
"cc473838-acaf-43f9-a601-dc4ab1f9026c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "433200a2-3a62-4e81-86cc-cd5e31fecd8b",
|
||||
"fields": {
|
||||
"title": "Network Connectivity Issue",
|
||||
"description": "Experiencing intermittent connection drops in the office. Several users affected. Need urgent assistance to resolve the issue.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "d140a5be-cf24-4250-8b38-31338e69dffd",
|
||||
"create_timestamp": "2024-01-09T00:05:54Z",
|
||||
"edit_timestamp": "2024-01-09T00:05:54Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"28b160b5-5c8b-43a5-84d1-4179bde87e6f",
|
||||
"72fb255c-132f-4124-802d-f4c051620540"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "4b893b70-8fce-49a1-b546-d1960ef97f9c",
|
||||
"fields": {
|
||||
"title": "New Software Request",
|
||||
"description": "Requesting the installation of a new software tool for project management. Providing specific details on the software requirements and its relevance to project workflows. Seeking guidance on the installation process and any potential compatibility issues. Your assistance in this matter is highly appreciated.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "0ebc194c-b856-4e4f-9def-cd190d1e8d43",
|
||||
"create_timestamp": "2024-01-09T00:09:59Z",
|
||||
"edit_timestamp": "2024-01-09T17:38:15Z",
|
||||
"tags": [
|
||||
"72fb255c-132f-4124-802d-f4c051620540",
|
||||
"cc473838-acaf-43f9-a601-dc4ab1f9026c",
|
||||
"dc4dc2d5-2784-4726-8a4e-99df35a143d2"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "587b35a3-1b47-4716-99bf-ebe22da283a1",
|
||||
"fields": {
|
||||
"title": "Database Query Performance",
|
||||
"description": "Users are reporting slow response times when querying the database. This issue is impacting productivity across multiple teams. Detailed logs and steps taken to troubleshoot are provided within the description. Urgently seeking assistance to optimize database performance and resolve the slowdown.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "d140a5be-cf24-4250-8b38-31338e69dffd",
|
||||
"create_timestamp": "2024-01-09T00:08:32Z",
|
||||
"edit_timestamp": "2024-01-09T00:08:32Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"28b160b5-5c8b-43a5-84d1-4179bde87e6f",
|
||||
"72fb255c-132f-4124-802d-f4c051620540",
|
||||
"cc473838-acaf-43f9-a601-dc4ab1f9026c",
|
||||
"e8c7e801-57c3-4699-a4f4-4308fb489f60"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "5f39644f-0356-4818-aa07-ee6f07f36553",
|
||||
"fields": {
|
||||
"title": "Hardware Malfunction",
|
||||
"description": "The printer on the third floor is not responding. Checked cables and power source, but issue persists. Need assistance to fix the hardware problem.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "e79687c6-9054-4706-b9a2-34afccfaa7c8",
|
||||
"create_timestamp": "2024-01-09T00:06:58Z",
|
||||
"edit_timestamp": "2024-01-09T00:44:49Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"72fb255c-132f-4124-802d-f4c051620540",
|
||||
"e8c7e801-57c3-4699-a4f4-4308fb489f60"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "68fa33a7-9ac0-4612-8d92-71201c1dd5d5",
|
||||
"fields": {
|
||||
"title": "Printer Configuration Error",
|
||||
"description": "Encountering issues with configuring a new printer for the design team. Detailed steps taken to set up the printer and the specific error messages received are provided. Urgently seeking assistance to ensure the printer is operational and meets the team's printing requirements.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "d140a5be-cf24-4250-8b38-31338e69dffd",
|
||||
"create_timestamp": "2024-01-09T00:10:25Z",
|
||||
"edit_timestamp": "2024-01-09T00:10:25Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"72fb255c-132f-4124-802d-f4c051620540",
|
||||
"e8c7e801-57c3-4699-a4f4-4308fb489f60"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "9f72bd78-2d1f-4fd6-89fc-d9ecf8c69b3c",
|
||||
"fields": {
|
||||
"title": "VPN Connection Issue",
|
||||
"description": "Remote team members are encountering difficulties establishing a VPN connection. This is hindering their ability to access essential resources. Providing detailed information on the error messages received and troubleshooting steps taken so far. Requesting immediate attention to restore seamless VPN functionality.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "e79687c6-9054-4706-b9a2-34afccfaa7c8",
|
||||
"create_timestamp": "2024-01-09T00:09:39Z",
|
||||
"edit_timestamp": "2024-01-09T00:13:27Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"28b160b5-5c8b-43a5-84d1-4179bde87e6f",
|
||||
"72fb255c-132f-4124-802d-f4c051620540"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "b0142315-b5c4-46a9-b02e-bdfdd6dffc37",
|
||||
"fields": {
|
||||
"title": "IT Training Request",
|
||||
"description": "Requesting IT training sessions for the marketing team to enhance their proficiency in utilizing specific software tools. Providing a detailed outline of the desired training topics and the anticipated benefits for the team. Seeking assistance in scheduling and conducting the training sessions.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "0ebc194c-b856-4e4f-9def-cd190d1e8d43",
|
||||
"create_timestamp": "2024-01-09T00:12:17Z",
|
||||
"edit_timestamp": "2024-01-09T00:12:17Z",
|
||||
"tags": [
|
||||
"72fb255c-132f-4124-802d-f4c051620540",
|
||||
"cc473838-acaf-43f9-a601-dc4ab1f9026c"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "c470a8b3-ca54-4324-abdf-1cfa4cdf70d6",
|
||||
"fields": {
|
||||
"title": "Email Configuration Assistance",
|
||||
"description": "Need assistance in configuring email settings for a new team member. Providing the email client details and steps taken so far. Urgently seeking guidance to ensure the seamless setup of email accounts and communication channels for the new team member.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "e79687c6-9054-4706-b9a2-34afccfaa7c8",
|
||||
"create_timestamp": "2024-01-09T00:11:57Z",
|
||||
"edit_timestamp": "2024-01-09T00:12:57Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"72fb255c-132f-4124-802d-f4c051620540"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "dd5764ad-e765-4f9b-9a9b-a3a27e60c6dd",
|
||||
"fields": {
|
||||
"title": "General Inquiry",
|
||||
"description": "Have a question regarding the new IT policies. Need clarification on specific guidelines. Please provide assistance at your earliest convenience.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "0ebc194c-b856-4e4f-9def-cd190d1e8d43",
|
||||
"create_timestamp": "2024-01-09T00:07:26Z",
|
||||
"edit_timestamp": "2024-01-09T00:07:26Z",
|
||||
"tags": [
|
||||
"dc4dc2d5-2784-4726-8a4e-99df35a143d2"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "home.ticket",
|
||||
"pk": "fd8a4ad9-04fb-4a0c-beac-e60e0739e881",
|
||||
"fields": {
|
||||
"title": "Software Update Problem",
|
||||
"description": "Unable to install the latest software update on my workstation. Getting error code XYZ. Detailed steps attempted are listed in the description.",
|
||||
"author": "4965745e-b82a-4496-80e1-055217a780b0",
|
||||
"priority": "a680328f-0680-456c-8e26-f594e05989ad",
|
||||
"create_timestamp": "2024-01-09T00:06:32Z",
|
||||
"edit_timestamp": "2024-01-09T00:06:32Z",
|
||||
"tags": [
|
||||
"0ac68e5d-9000-4fcb-bb44-40b1b0faaa2b",
|
||||
"72fb255c-132f-4124-802d-f4c051620540",
|
||||
"cc473838-acaf-43f9-a601-dc4ab1f9026c"
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
@ -55,8 +55,6 @@ class Ticket(models.Model):
|
||||
max_length=650,
|
||||
)
|
||||
|
||||
# Dirty Foreigers
|
||||
|
||||
author = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
verbose_name=_("author"),
|
||||
|
7
apps/static/bootstrap.min.js
vendored
7
apps/static/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
@ -121,44 +121,19 @@ body {
|
||||
|
||||
.ticket-item .ticket-item-complex {
|
||||
transition: all 0.3s ease;
|
||||
overflow: visible;
|
||||
overflow: hidden;
|
||||
width: 2rem;
|
||||
}
|
||||
|
||||
#ticketsContainer:not(.complex-items) .ticket-item .ticket-item-complex {
|
||||
margin: 0 !important;
|
||||
width: 0 !important;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.ticket-item .ticket-item-complex .badge {
|
||||
min-width: 1.8rem;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ticket-item .ticket-item-complex .badge:hover {
|
||||
margin-left: 2rem;
|
||||
}
|
||||
|
||||
.ticket-item .ticket-item-complex .badge .ticket-item-complex-expand {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ticket-item .ticket-item-complex .badge:hover .ticket-item-complex-expand {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
.ticket-item .ticket-item-complex .badge:hover .ticket-item-complex-expand,
|
||||
.ticket-item .ticket-item-complex .badge .ticket-item-complex-expand:hover {
|
||||
display: inline;
|
||||
width: fit-content;
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
.ticket-item .ticket-item-icon {
|
||||
width: 2rem;
|
||||
height: 2rem;
|
||||
|
@ -1,15 +1,22 @@
|
||||
$("#themeToggle").on("click", function() {
|
||||
const currentTheme = $("body").attr("data-bs-theme");
|
||||
$(document).ready(function() {
|
||||
// Activate all tooltips
|
||||
$('[data-bs-toggle="tooltip"]').tooltip();
|
||||
|
||||
if (currentTheme == "light") {
|
||||
$("body").attr("data-bs-theme", "dark");
|
||||
// Apply the user preferred theme
|
||||
const theme = localStorage.getItem("theme");
|
||||
if (theme == "light" || theme == "dark") {
|
||||
$("body").attr("data-bs-theme", theme);
|
||||
}
|
||||
else {
|
||||
$("body").attr("data-bs-theme", "light");
|
||||
}
|
||||
});
|
||||
|
||||
$(document).ready(function() {
|
||||
// Activate all tooltips
|
||||
$('[data-bs-toggle="tooltip"]').tooltip();
|
||||
$("#themeToggle").on("click", function() {
|
||||
var theme = $("body").attr("data-bs-theme");
|
||||
|
||||
theme = theme == "light" ? "dark" : "light";
|
||||
|
||||
localStorage.setItem("theme", theme)
|
||||
$("body").attr("data-bs-theme", theme);
|
||||
});
|
7
apps/static/js/bootstrap.bundle.min.js
vendored
Normal file
7
apps/static/js/bootstrap.bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -6,6 +6,7 @@ var filters = {"ordering": "-edit_timestamp", "strict-tags": true};
|
||||
|
||||
$(document).ready(function() {
|
||||
initSearchBar();
|
||||
toggleComplexItems(localStorage.getItem("hideComplexTickets") === "true");
|
||||
|
||||
setupFilter("#filterSidebar .filter-department", "author__department");
|
||||
setupFilter("#filterSidebar .filter-tags", "tags");
|
||||
@ -230,6 +231,13 @@ $("#strictTags").on("change", function() {
|
||||
loadTicketItems();
|
||||
});
|
||||
|
||||
|
||||
/**
|
||||
* Loads the list of ticket items using the current filters.
|
||||
*
|
||||
* @function loadTicketItems
|
||||
* @param {Number} page For pagination, an invalid page will result in an error.
|
||||
*/
|
||||
function loadTicketItems(page=1) {
|
||||
|
||||
if (global_loadingTickets) {
|
||||
@ -277,44 +285,9 @@ function loadTicketItems(page=1) {
|
||||
|
||||
// Iterate over and handle each ticket
|
||||
response.results.forEach(function(ticket) {
|
||||
|
||||
// Create a copy of the template using the ticket data
|
||||
var template = $($("#ticketItemTemplate").html());
|
||||
template.find(".ticket-item-author").text(`${ticket.author.forename} ${ticket.author.surname}`);
|
||||
template.find(".ticket-item-datetime").text(ticket.display_datetime);
|
||||
template.find(".ticket-item-title").text(ticket.title);
|
||||
template.find(".ticket-item-desc").html(ticket.short_description);
|
||||
template.find(".ticket-item-icon").attr("src", ticket.author.icon);
|
||||
template.attr("data-uuid", ticket.uuid);
|
||||
|
||||
// Add tickets using the badge template
|
||||
ticket.tags.forEach(function(tag) {
|
||||
var tagTemplate = $($("#ticketContentBadgeTemplate").html());
|
||||
tagTemplate.find(".ticket-content-badge-text").text(tag.title);
|
||||
tagTemplate.css({ "color": tag.colour, "background-color": tag.backgroundcolour });
|
||||
template.find(".ticket-item-tags").append(tagTemplate);
|
||||
});
|
||||
|
||||
var priorityElem = template.find(".ticket-item-priority");
|
||||
priorityElem.css("color", ticket.priority.colour);
|
||||
priorityElem.css("background-color", ticket.priority.backgroundcolour);
|
||||
// priorityElem.attr("data-bs-title", ticket.priority.title);
|
||||
// priorityElem.attr("data-bs-toggle", "tooltip");
|
||||
// priorityElem.tooltip();
|
||||
|
||||
var departmentElem = template.find(".ticket-item-department");
|
||||
departmentElem.css("color", ticket.author.department.colour);
|
||||
departmentElem.css("background-color", ticket.author.department.backgroundcolour);
|
||||
// departmentElem.attr("data-bs-title", ticket.author.department.title);
|
||||
// departmentElem.attr("data-bs-toggle", "tooltip");
|
||||
// departmentElem.tooltip();
|
||||
|
||||
// Add the content to the interface
|
||||
$("#ticketsContainer .content").append(template);
|
||||
$("#ticketsContainer .content").append(createTicketItem(ticket));
|
||||
});
|
||||
|
||||
$("body").tooltip();
|
||||
|
||||
// Make tickets clickable
|
||||
applyTicketClickFunction();
|
||||
|
||||
@ -323,6 +296,62 @@ function loadTicketItems(page=1) {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a jquery object representing an element for a ticket item, constructed using the passed
|
||||
* ticket and a predefined template.
|
||||
*
|
||||
* @function createTicketItem
|
||||
* @param {Object} ticket An object representing a ticket.
|
||||
* @return {jQuery} ticketElement to be appeneded as content.
|
||||
*/
|
||||
function createTicketItem(ticket) {
|
||||
// Create a copy of the template using the ticket data
|
||||
var template = $($("#ticketItemTemplate").html());
|
||||
template.find(".ticket-item-author").text(`${ticket.author.forename} ${ticket.author.surname}`);
|
||||
template.find(".ticket-item-datetime").text(ticket.display_datetime);
|
||||
template.find(".ticket-item-title").text(ticket.title);
|
||||
template.find(".ticket-item-desc").html(ticket.short_description);
|
||||
template.find(".ticket-item-icon").attr("src", ticket.author.icon);
|
||||
template.attr("data-uuid", ticket.uuid);
|
||||
|
||||
// Add tickets using the badge template
|
||||
ticket.tags.forEach(function(tag) {
|
||||
var tagTemplate = $($("#ticketContentBadgeTemplate").html());
|
||||
tagTemplate.find(".ticket-content-badge-text").text(tag.title);
|
||||
tagTemplate.css({ "color": tag.colour, "background-color": tag.backgroundcolour });
|
||||
template.find(".ticket-item-tags").append(tagTemplate);
|
||||
});
|
||||
|
||||
const priority = ticket.priority;
|
||||
|
||||
var priorityElem = template.find(".ticket-item-priority");
|
||||
priorityElem.css("color", priority.colour);
|
||||
priorityElem.css("background-color", priority.backgroundcolour);
|
||||
priorityElem.attr("data-bs-title", priority.title + " Priority");
|
||||
priorityElem.tooltip();
|
||||
|
||||
const department = ticket.author.department;
|
||||
|
||||
var departmentElem = template.find(".ticket-item-department");
|
||||
if (department === null) {
|
||||
departmentElem.hide();
|
||||
}
|
||||
else {
|
||||
departmentElem.css("color", ticket.author.department.colour);
|
||||
departmentElem.css("background-color", ticket.author.department.backgroundcolour);
|
||||
departmentElem.attr("data-bs-title", ticket.author.department.title + " Department");
|
||||
departmentElem.tooltip();
|
||||
}
|
||||
|
||||
return template;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load the content of a selected ticket.
|
||||
*
|
||||
* @function loadTicketContent
|
||||
* @param {String} uuid A string representation of the ticket's UUID.
|
||||
*/
|
||||
function loadTicketContent(uuid) {
|
||||
updateContentState("loading");
|
||||
|
||||
@ -336,32 +365,38 @@ function loadTicketContent(uuid) {
|
||||
|
||||
fetchTicketsPromise({uuid: uuid}).then((response) => {
|
||||
ticket = response.results[0];
|
||||
|
||||
// Create a copy of the template using the ticket data
|
||||
var template = $($("#ticketContentTemplate").html());
|
||||
template.find(".ticket-content-author").text(`${ticket.author.forename} ${ticket.author.surname}`);
|
||||
template.find(".ticket-content-datetime").text(ticket.display_datetime);
|
||||
template.find(".ticket-content-title").text(ticket.title);
|
||||
template.find(".ticket-content-desc").html(ticket.description);
|
||||
template.find(".ticket-content-icon").attr("src", ticket.author.icon);
|
||||
console.debug(ticket.description);
|
||||
|
||||
ticket.tags.forEach(function(tag) {
|
||||
var tagTemplate = $($("#ticketContentBadgeTemplate").html());
|
||||
tagTemplate.find(".ticket-content-badge-text").text(tag.title);
|
||||
tagTemplate.css({ "color": tag.colour, "background-color": tag.backgroundcolour });
|
||||
template.find(".ticket-content-badges").append(tagTemplate);
|
||||
});
|
||||
|
||||
$("#ticketContent .content").append(template);
|
||||
|
||||
$("#ticketContent .content").append(createTicketContent(ticket));
|
||||
updateContentState("content");
|
||||
global_loadingTickets = false;
|
||||
});
|
||||
}
|
||||
|
||||
// $("#ticketContent").empty();
|
||||
/**
|
||||
* Returns a jquery object representing an element for a ticket content, constructed using the
|
||||
* passed ticket and a predefined template.
|
||||
*
|
||||
* @function createTicketItem
|
||||
* @param {Object} ticket An object representing a ticket.
|
||||
* @return {jQuery} ticketElement to be shown as content.
|
||||
*/
|
||||
function createTicketContent(ticket) {
|
||||
// Create a copy of the template using the ticket data
|
||||
var template = $($("#ticketContentTemplate").html());
|
||||
template.find(".ticket-content-author").text(`${ticket.author.forename} ${ticket.author.surname}`);
|
||||
template.find(".ticket-content-datetime").text(ticket.display_datetime);
|
||||
template.find(".ticket-content-title").text(ticket.title);
|
||||
template.find(".ticket-content-desc").html(ticket.description);
|
||||
template.find(".ticket-content-icon").attr("src", ticket.author.icon);
|
||||
console.debug(ticket.description);
|
||||
|
||||
// updateInterfaceState("showing-content");
|
||||
ticket.tags.forEach(function(tag) {
|
||||
var tagTemplate = $($("#ticketContentBadgeTemplate").html());
|
||||
tagTemplate.find(".ticket-content-badge-text").text(tag.title);
|
||||
tagTemplate.css({ "color": tag.colour, "background-color": tag.backgroundcolour });
|
||||
template.find(".ticket-content-badges").append(tagTemplate);
|
||||
});
|
||||
|
||||
return template;
|
||||
}
|
||||
|
||||
function fetchTicketsPromise(queryFilters) {
|
||||
@ -395,13 +430,13 @@ $(".dropdown-menu.prevent-click-close").on("click", function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
function toggleComplexItems() {
|
||||
complexItems = !complexItems;
|
||||
function toggleComplexItems(hideComplex=null) {
|
||||
if (hideComplex === null) {
|
||||
hideComplex = !(localStorage.getItem("hideComplexTickets") === "true");
|
||||
}
|
||||
|
||||
if (complexItems) {
|
||||
$("#ticketsContainer").addClass("complex-items");
|
||||
}
|
||||
else {
|
||||
$("#ticketsContainer").removeClass("complex-items");
|
||||
}
|
||||
}
|
||||
if (hideComplex) $("#ticketsContainer").removeClass("complex-items");
|
||||
else $("#ticketsContainer").addClass("complex-items");
|
||||
|
||||
localStorage.setItem("hideComplexTickets", hideComplex);
|
||||
}
|
||||
|
@ -407,14 +407,13 @@
|
||||
<div class="ticket-item fxw-nw bdB peers fxw-nw p-20 w-100" data-uuid="-1">
|
||||
<div class="ticket-item-complex peer mR-20 d-flex flex-column align-items-center align-self-stretch pos-r">
|
||||
<img src="" alt="" class="ticket-item-icon">
|
||||
<div class="ticket-item-department badge rounded mt-auto">
|
||||
<i class="fa fa-users"></i>
|
||||
<div class="ticket-item-complex-expand">
|
||||
THis is a TEST
|
||||
<div class="mt-auto">
|
||||
<div class="ticket-item-department badge rounded mb-2" data-bs-toggle="tooltip">
|
||||
<i class="fa fa-users"></i>
|
||||
</div>
|
||||
<div class="ticket-item-priority badge rounded" data-bs-toggle="tooltip">
|
||||
<i class="fa fa-folder"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ticket-item-priority badge rounded mt-2">
|
||||
<i class="fa fa-folder"></i>
|
||||
</div>
|
||||
</div>
|
||||
<div class="peer peer-greed ov-h">
|
||||
@ -429,7 +428,7 @@
|
||||
<h5 class="ticket-item-title mb-0"></h5>
|
||||
<div class="ticket-item-desc mt-2"></div>
|
||||
<div class="peers">
|
||||
<div class="ticket-item-tags peer d-flex flex-wrap mw-100" data-bs-toggle="tooltip"></div>
|
||||
<div class="ticket-item-tags peer d-flex flex-wrap mw-100"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -10,6 +10,8 @@
|
||||
|
||||
<script src="{% static '/js/perfectscrollbar.js' %}"></script>
|
||||
|
||||
<script src="{% static '/js/bootstrap.bundle.min.js' %}"></script>
|
||||
|
||||
<script src="{% static '/js/index.js' %}"></script>
|
||||
|
||||
<script src="{% static '/js/base.js' %}"></script>
|
||||
|
21
scripts/fixtures.bat
Normal file
21
scripts/fixtures.bat
Normal file
@ -0,0 +1,21 @@
|
||||
@echo off
|
||||
|
||||
echo migrating
|
||||
python manage.py migrate
|
||||
|
||||
echo installing authentication fixtures
|
||||
python manage.py loaddata apps\authentication\fixtures\department.json
|
||||
|
||||
echo installing default users
|
||||
python manage.py loaddata apps\authentication\fixtures\user.json
|
||||
|
||||
echo installing ticket priorities
|
||||
python manage.py loaddata apps\home\fixtures\ticketpriority.json
|
||||
|
||||
echo installing ticket tags
|
||||
python manage.py loaddata apps\home\fixtures\tickettag.json
|
||||
|
||||
echo installing default tickets
|
||||
python manage.py loaddata apps\home\fixtures\ticket.json
|
||||
|
||||
echo all done!
|
19
scripts/fixtures.ps1
Normal file
19
scripts/fixtures.ps1
Normal file
@ -0,0 +1,19 @@
|
||||
Write-Host "migrating"
|
||||
python manage.py migrate
|
||||
|
||||
Write-Host "installing authentication fixtures"
|
||||
python manage.py loaddata apps\authentication\fixtures\department.json
|
||||
|
||||
Write-Host "installing default users"
|
||||
python manage.py loaddata apps\authentication\fixtures\user.json
|
||||
|
||||
Write-Host "installing ticket priorities"
|
||||
python manage.py loaddata apps\home\fixtures\ticketpriority.json
|
||||
|
||||
Write-Host "installing ticket tags"
|
||||
python manage.py loaddata apps\home\fixtures\tickettag.json
|
||||
|
||||
Write-Host "installing default tickets"
|
||||
python manage.py loaddata apps\home\fixtures\ticket.json
|
||||
|
||||
Write-Host "all done!"
|
@ -5,7 +5,7 @@ echo installing authentication fixtures
|
||||
python manage.py loaddata apps/authentication/fixtures/department.json
|
||||
|
||||
echo installing default users
|
||||
python manage.py loaddata apps/authentication/fixtures/defaultuser.json
|
||||
python manage.py loaddata apps/authentication/fixtures/user.json
|
||||
|
||||
echo installing ticket priorities
|
||||
python manage.py loaddata apps/home/fixtures/ticketpriority.json
|
||||
@ -14,6 +14,6 @@ echo installing ticket tags
|
||||
python manage.py loaddata apps/home/fixtures/tickettag.json
|
||||
|
||||
echo installing default tickets
|
||||
python manage.py loaddata apps/home/fixtures/newtickets.json
|
||||
python manage.py loaddata apps/home/fixtures/ticket.json
|
||||
|
||||
echo all done!
|
7
scripts/runserver.bat
Normal file
7
scripts/runserver.bat
Normal file
@ -0,0 +1,7 @@
|
||||
@echo off
|
||||
|
||||
echo Migrating database...
|
||||
python manage.py migrate
|
||||
|
||||
echo Running without reload...
|
||||
python manage.py runserver 0.0.0.0:8000 --noreload
|
5
scripts/runserver.ps1
Normal file
5
scripts/runserver.ps1
Normal file
@ -0,0 +1,5 @@
|
||||
Write-Host "Migrating database..."
|
||||
python manage.py migrate
|
||||
|
||||
Write-Host "Running without reload..."
|
||||
python manage.py runserver 0.0.0.0:8000 --noreload
|
Loading…
x
Reference in New Issue
Block a user