New changes.
parent
45e37b64f5
commit
c57a3434ad
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 1.5 KiB |
@ -0,0 +1,22 @@
|
||||
var swiper = new Swiper('.swiper-container', {
|
||||
scrollbar: {
|
||||
el: '.swiper-scrollbar',
|
||||
hide: false,
|
||||
draggable: true,
|
||||
},
|
||||
loop: false,
|
||||
slidesPerView: 'auto',
|
||||
initialSlide: 0
|
||||
});
|
||||
|
||||
// FOR THE BUTTONS
|
||||
var swiperRightButton = document.getElementById('sliderRight');
|
||||
var swiperLeftButton = document.getElementById('sliderLeft');
|
||||
|
||||
swiperRightButton.addEventListener('click', function() {
|
||||
swiper.slideNext();
|
||||
});
|
||||
|
||||
swiperLeftButton.addEventListener('click', function() {
|
||||
swiper.slidePrev();
|
||||
});
|
@ -0,0 +1,46 @@
|
||||
|
||||
$(document).ready(function () {
|
||||
// Function to fetch related tasks based on epic ID
|
||||
function fetchRelatedTasks(epicId) {
|
||||
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/get_tasks/" + epicId + "/",
|
||||
success: function (data) {
|
||||
// console.log("Ajax call success. Data received:", data);
|
||||
|
||||
$("#epicRelatedTasksContainer").html(data);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.log("Ajax call failed. Error details:");
|
||||
console.log("XHR Object:", xhr);
|
||||
console.log("Status:", status);
|
||||
console.log("Error:", error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("select#epicSelect").change(function () {
|
||||
// Get the selected option's value
|
||||
var selectedEpicId = $(this).val();
|
||||
|
||||
if (selectedEpicId) {
|
||||
// Fetch related tasks based on the selected epic
|
||||
fetchRelatedTasks(selectedEpicId);
|
||||
}
|
||||
});
|
||||
|
||||
$('#epicSelect').change(function () {
|
||||
var selectedEpic = $(this).find(':selected');
|
||||
var startDate = selectedEpic.data('start-date');
|
||||
var endDate = selectedEpic.data('end-date');
|
||||
|
||||
if (startDate && endDate) {
|
||||
$('#epicDetails').removeClass('hidden');
|
||||
$('#epicDetails span#startDate').text(startDate);
|
||||
$('#epicDetails span#endDate').text(endDate);
|
||||
} else {
|
||||
$('#epicDetails').addClass('hidden');
|
||||
}
|
||||
});
|
||||
});
|
@ -0,0 +1,156 @@
|
||||
{% load static %}
|
||||
|
||||
|
||||
{% for task in related_tasks %}
|
||||
<div class="w-full h-fit bg-white p-3 rounded-md shadow-md mb-5">
|
||||
<div class="w-full bg-white h-fit rounded-md border border-gray-200">
|
||||
<!-- TABLE HEADER -->
|
||||
<div class="w-full h-[70px] rounded-t-md grid grid-cols-2">
|
||||
<div
|
||||
class="flex justify-center items-center border-r border-b border-gray-200 bg-slate-600 rounded-tl-md text-xl text-white font-semibold">
|
||||
<p>{{task.name}}</p>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-3">
|
||||
{% if task.status == 'Closed' %}
|
||||
<div class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-green-700">
|
||||
<p>{{task.status}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if task.status == 'Open' %}
|
||||
<div class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-red-500">
|
||||
<p>{{task.status}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if task.status == 'Working On' %}
|
||||
<div
|
||||
class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-orange-500">
|
||||
<p>{{task.status}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if task.status == 'Closed' %}
|
||||
<div class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-green-700">
|
||||
<p>{{task.formatted_start_date}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if task.status == 'Open' %}
|
||||
<div class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-red-500">
|
||||
<p>{{task.formatted_start_date}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if task.status == 'Working On' %}
|
||||
<div
|
||||
class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-orange-500">
|
||||
<p>{{task.formatted_start_date}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if task.status == 'Closed' %}
|
||||
<div class="flex justify-center items-center border-r border-b border-gray-200 text-white bg-green-700 rounded-tr-md">
|
||||
<p>{{task.formatted_end_date}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if task.status == 'Open' %}
|
||||
<div
|
||||
class="flex justify-center items-center border-b border-gray-200 text-white bg-red-500 rounded-tr-md">
|
||||
<p>{{task.formatted_end_date}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if task.status == 'Working On' %}
|
||||
<div
|
||||
class="flex justify-center items-center border-b border-gray-200 text-white bg-orange-500 rounded-tr-md">
|
||||
<p>{{task.formatted_end_date}}</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- TABLE BODY -->
|
||||
<div class="w-full h-fit grid grid-cols-2">
|
||||
<!-- LEFT SIDE OF TABLE BODY -->
|
||||
<div class="h-fit bg-white p-3 rounded-bl-md">
|
||||
<!-- 1st row -->
|
||||
<div class="w-full flex flex-col gap-2">
|
||||
<div class="flex justify-start items-center gap-2">
|
||||
<p class="text-gray-400 text-base">Project:</p>
|
||||
<p class="text-slate-700 text-base">{{task.project.name}}</p>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-start items-center gap-2">
|
||||
<p class="text-gray-400 text-base">Epic:</p>
|
||||
<p class="text-slate-700 text-base">{{task.epic.title}}</p>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-start items-center gap-2">
|
||||
<p class="text-gray-400 text-base">Assigned To:</p>
|
||||
<p class="text-slate-700 text-base">{{task.assigned_to.user.first_name}}
|
||||
{{task.assigned_to.user.last_name}}</p>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-start items-center gap-2">
|
||||
<p class="text-gray-400 text-base">Files:</p>
|
||||
<p class="text-slate-700 text-base"></p>
|
||||
</div>
|
||||
<div class="flex justify-start items-center gap-2">
|
||||
<p class="text-gray-400 text-base">Tags:</p>
|
||||
<p class="text-slate-700 text-base"></p>
|
||||
</div>
|
||||
|
||||
<div class="flex justify-start items-center gap-2">
|
||||
<p class="text-gray-400 text-base">Extra:</p>
|
||||
<p class="text-slate-700 text-base">{{task.extra}}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- RIGHT SIDE OF TABLE BODY -->
|
||||
<div class="h-fit bg-white grid grid-cols-3 rounded-br-md">
|
||||
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500">Close</button>
|
||||
|
||||
<button
|
||||
class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 updateStatusButton"
|
||||
data-modal-url="{% url 'updatestatus' task.task_id %}">Update
|
||||
Status</button>
|
||||
|
||||
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 addTimeButton"
|
||||
data-modal-url="{% url 'addtime' %}">Add
|
||||
Time</button>
|
||||
|
||||
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 deleteTaskButton"
|
||||
data-modal-url="{% url 'deletetask' %}">Delete</button>
|
||||
|
||||
<a href="{% url 'edittask' %}">
|
||||
<button
|
||||
class="w-full p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500">Edit</button>
|
||||
</a>
|
||||
|
||||
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 showPointsButton"
|
||||
data-modal-url="{% url 'showpoints' task.task_id %}">Show
|
||||
Points</button>
|
||||
|
||||
<button class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 addPointButton"
|
||||
data-modal-url="{% url 'addpoint' task.task_id %}">Add
|
||||
Point</button>
|
||||
|
||||
<a href="{% url 'detailed-task' task.task_id %}">
|
||||
<button
|
||||
class="w-full p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500">Details</button>
|
||||
</a>
|
||||
|
||||
<button
|
||||
class="p-2 border border-gray-200 text-base h-[70px] bg-gray-100 text-gray-500 rounded-br-md timelineButton"
|
||||
data-modal-url="{% url 'timeline' %}">Timeline</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
@ -0,0 +1,21 @@
|
||||
{% load static %}
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Osina</title>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href='{% static "dist/output.css" %}'>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="hiddenContent">
|
||||
<h1 class="text-slate-700 text-2xl font-semibold text-center">You are only allowed to add a status on Desktop.</h1>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
Loading…
Reference in New Issue