You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			497 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			HTML
		
	
			
		
		
	
	
			497 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			HTML
		
	
| {% extends "main.html" %}
 | |
| {%load static%}
 | |
| {% block content %}
 | |
| 
 | |
| <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
 | |
| 
 | |
| 
 | |
| <div class="w-full xxlg1:w-[74.5%] bg-white h-fit rounded-md shadow-md p-5">
 | |
|     {% if project.status == 'Completed' %}
 | |
|     <div class="w-full bg-green-700 rounded-t-md flex flex-col justify-center items-center py-2">
 | |
|         <h1 class="text-xl md:text-3xl text-white font-semibold text-center">{{project.name}}</h1>
 | |
|         <p class="text-white text-center text-base">{{project.project_id}}</p>
 | |
|     </div>
 | |
|     {% endif %}
 | |
|     {% if project.status == 'Cancelled' %}
 | |
|     <div class="w-full  bg-red-500 rounded-t-md flex flex-col justify-center items-center py-2">
 | |
|         <h1 class="text-xl md:text-3xl text-white font-semibold text-center">{{project.name}}</h1>
 | |
|         <p class="text-white text-center text-base">{{project.project_id}}</p>
 | |
|     </div>
 | |
|     {% endif %}
 | |
|     {% if project.status == 'Active' %}
 | |
|     <div class="w-full  bg-orange-500 rounded-t-md flex flex-col justify-center items-center py-2">
 | |
|         <h1 class="text-xl md:text-3xl text-white font-semibold text-center">{{project.name}}</h1>
 | |
|         <p class="text-white text-center text-base">{{project.project_id}}</p>
 | |
|     </div>
 | |
|     {% endif %}
 | |
|     {% if project.status == 'Pending' %}
 | |
|     <div class="w-full bg-yellow-400 rounded-t-md flex flex-col justify-center items-center py-2">
 | |
|         <h1 class="text-xl md:text-3xl text-white font-semibold text-center">{{project.name}}</h1>
 | |
|         <p class="text-white text-center text-base">{{project.project_id}}</p>
 | |
|     </div>
 | |
|     {% endif %}
 | |
|     <div class="w-full rounded-b-md flex xll:hidden items-center">
 | |
|         <button
 | |
|             class="w-[50%] text-base px-3 py-2 bg-red-500 text-white outline-none border border-red-500 rounded-bl-md cursor-pointer hover:bg-white hover:text-red-500 duration-300 deleteProjectButton"
 | |
|             data-modal-url="{% url 'deleteprojectmodal' project.id %}">Delete
 | |
|             Project</button>
 | |
|         <a href="{% url 'editproject' project.project_id %}" class="w-[50%]">
 | |
|             <button
 | |
|                 class="w-full text-base px-3 py-2 bg-fifthosiblue text-white outline-none border border-fifthosiblue rounded-br-md cursor-pointer hover:bg-white hover:text-fifthosiblue duration-300">Edit
 | |
|                 Project</button>
 | |
|         </a>
 | |
|     </div>
 | |
| 
 | |
|     <p id="projectId" class="hidden">{{project.id}}</p>
 | |
| 
 | |
|     <!-- PROJECT PROGRESS BAR -->
 | |
|     <div class="w-full h-[10px] bg-gray-100 shadow-md mt-3 xll:mt-1 mainBar rounded-md xll:rounded-none">
 | |
|         <div class="h-full rounded-md xll:rounded-none progressBar">
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
|     <div
 | |
|         class="w-full h-fit md:h-[70px] flex justify-between items-center bg-gray-100 shadow-md rounded-md px-3 py-3 md:py-1 mt-4">
 | |
|         <div class="w-full md:w-fit flex flex-col md:flex-row justify-start items-center gap-3">
 | |
|             <a href="{% url 'addepic' project.project_id %}" class="w-full md:w-fit">
 | |
|                 <button
 | |
|                     class="w-full md:w-fit text-base px-3 py-2 bg-transparent text-osiblue outline-none border border-osiblue duration-300 rounded-md cursor-pointer hover:bg-osiblue hover:text-white">Create
 | |
|                     Epic</button>
 | |
|             </a>
 | |
|             <a href="{% url 'addprojecttask' project.project_id  %}" class="w-full md:w-fit">
 | |
|                 <button
 | |
|                     class="w-full md:w-fit text-base px-3 py-2 bg-transparent text-osiblue outline-none border border-osiblue duration-300 rounded-md cursor-pointer hover:bg-osiblue hover:text-white">Create
 | |
|                     Task</button>
 | |
|             </a>
 | |
|             <button
 | |
|                 class="w-full md:w-fit text-base px-3 py-2 bg-transparent text-osiblue outline-none border border-osiblue duration-300 rounded-md cursor-pointer hover:bg-osiblue hover:text-white">Create
 | |
|                 Story</button>
 | |
|             <button
 | |
|                 class="w-full md:w-fit text-base px-3 py-2 bg-transparent text-osiblue outline-none border border-osiblue duration-300 rounded-md cursor-pointer hover:bg-osiblue hover:text-white">Create
 | |
|                 Milestone</button>
 | |
|         </div>
 | |
|         <div class="hidden xll:flex justify-end items-center gap-3">
 | |
|             <button
 | |
|                 class="w-fit text-base px-3 py-2 bg-red-500 text-white outline-none border border-red-500 rounded-md cursor-pointer hover:bg-white hover:text-red-500 duration-300 deleteProjectButton"
 | |
|                 data-modal-url="{% url 'deleteprojectmodal' project.id %}">Delete
 | |
|                 Project</button>
 | |
|             <a href="{% url 'editproject' project.project_id %}">
 | |
|                 <button
 | |
|                     class="w-fit text-base px-3 py-2 bg-fifthosiblue text-white outline-none border border-fifthosiblue rounded-md cursor-pointer hover:bg-white hover:text-fifthosiblue duration-300">Edit
 | |
|                     Project</button>
 | |
|             </a>
 | |
|         </div>
 | |
|     </div>
 | |
| 
 | |
|     <div class="w-full flex flex-col gap-5 mt-5">
 | |
|         <div>
 | |
|             <p class="text-gray-500 text-xl">Client: <span
 | |
|                     class="text-secondosiblue text-xl font-semibold">{{project.customer.user.first_name}}
 | |
|                     {{project.customer.user.last_name}}</span></p>
 | |
|         </div>
 | |
| 
 | |
|         <div>
 | |
|             <p class="text-gray-500 text-xl">Project Manager: <span
 | |
|                     class="text-secondosiblue text-xl font-semibold">{{project.manager.user.first_name}}
 | |
|                     {{project.manager.last_name}}</span></p>
 | |
|         </div>
 | |
| 
 | |
| 
 | |
|         <div>
 | |
|             <p class="text-gray-500 text-xl">Member(s):
 | |
|                 {% for member in project.members.all %}
 | |
|                 <span class="text-secondosiblue text-xl font-semibold">
 | |
|                     {{member.user.first_name}} {{member.user.last_name}} {% if not forloop.last %}, {% endif %}
 | |
|                     {% endfor %}</span>
 | |
|             </p>
 | |
|         </div>
 | |
| 
 | |
|         <div>
 | |
|             <p class="text-gray-500 text-xl">Type:
 | |
|                 {% for type in project.project_type.all %}
 | |
|                 <span class="text-secondosiblue text-xl font-semibold">
 | |
|                     {{type.name}} {% if not forloop.last %}, {% endif %}
 | |
|                     {% endfor %}</span>
 | |
|             </p>
 | |
|         </div>
 | |
| 
 | |
|         <div>
 | |
|             <p class="text-gray-500 text-xl">Status:
 | |
|                 {% if project.status == 'Cancelled' %}
 | |
|                 <span class="text-red-500 text-xl font-semibold">{{project.status}}</span>
 | |
|                 {% endif %}
 | |
|                 {% if project.status == 'Completed' %}
 | |
|                 <span class="text-green-700 text-xl font-semibold">{{project.status}}</span>
 | |
|                 {% endif %}
 | |
|                 {% if project.status == 'Active' %}
 | |
|                 <span class="text-orange-500 text-xl font-semibold">{{project.status}}</span>
 | |
|                 {% endif %}
 | |
|                 {% if project.status == 'Pending' %}
 | |
|                 <span class="text-yellow-400 text-xl font-semibold">{{project.status}}</span>
 | |
|                 {% endif %}
 | |
|             </p>
 | |
|         </div>
 | |
| 
 | |
|         <div>
 | |
|             <p class="text-gray-500 text-xl">Start Date: <span
 | |
|                     class="text-secondosiblue text-xl font-semibold startDate">{{project.start_date}}</span></p>
 | |
|         </div>
 | |
| 
 | |
|         <div>
 | |
|             <p class="text-gray-500 text-xl">End Date: <span
 | |
|                     class="text-secondosiblue text-xl font-semibold endDate">{{project.end_date}}</span></p>
 | |
|         </div>
 | |
| 
 | |
|         <!-- PROJECT DETAILS -->
 | |
|         <div>
 | |
|             <div>
 | |
|                 <p class="text-gray-500 text-xl">Project Details:</p>
 | |
|                 <div class="w-full pr-8">
 | |
|                     <p class="text-secondosiblue font-semibold">
 | |
|                         {{project.details}}
 | |
|                     </p>
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
| 
 | |
| 
 | |
|         <!-- TAGS -->
 | |
|         <div>
 | |
|             <p class="text-gray-500 text-xl">Tags:</p>
 | |
|             <div class="w-full h-fit px-4 mt-3 flex flex-wrap justify-start items-center gap-3">
 | |
|                 <button
 | |
|                     class="text-sm text-gray-400 border border-gray-400 rounded-md w-fit py-2 px-3 outline-none">Media
 | |
|                     Streaming</button>
 | |
| 
 | |
|                 <button
 | |
|                     class="text-sm text-gray-400 border border-gray-400 rounded-md w-fit py-2 px-3 outline-none">Live
 | |
|                     Streaming</button>
 | |
| 
 | |
|                 <button
 | |
|                     class="text-sm text-gray-400 border border-gray-400 rounded-md w-fit py-2 px-3 outline-none">Audio
 | |
|                     On Demand</button>
 | |
|             </div>
 | |
|         </div>
 | |
| 
 | |
| 
 | |
|         <!-- USER STORIES -->
 | |
|         <div class="w-full mt-5">
 | |
|             <div class="overflow-x-auto border border-gray-300 rounded-md mt-5">
 | |
|                 <div
 | |
|                     class=" bg-gray-200 rounded-t-md flex justify-between items-center text-white text-xl font-bold h-[50px]">
 | |
|                     <div class="px-3">
 | |
|                         <p class="text-secondosiblue uppercase font-bold">User Stories</p>
 | |
|                     </div>
 | |
| 
 | |
|                     <button
 | |
|                         class="h-full rounded-tr-md px-4 bg-secondosiblue text-gray-200 text-[18px] outline-none border-none cursor-pointer flex justify-center items-center addUserStoryButton"
 | |
|                         data-modal-url="{% url 'adduserstorymodal' project.project_id %}">
 | |
|                         <i class="fa fa-plus"></i>
 | |
|                     </button>
 | |
|                 </div>
 | |
|                 <table class="min-w-full divide-y">
 | |
|                     <!-- TABLE HEADER -->
 | |
|                     <thead class="bg-gray-50">
 | |
|                         <tr>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap">
 | |
|                                 Story
 | |
|                             </th>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap">
 | |
|                                 Related Task
 | |
|                             </th>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase whitespace-nowrap">
 | |
|                                 Actions
 | |
|                             </th>
 | |
|                         </tr>
 | |
|                     </thead>
 | |
| 
 | |
|                     <!-- TABLE BODY -->
 | |
|                     <tbody class="bg-white divide-y divide-gray-200">
 | |
|                         <!-- 1st row -->
 | |
|                         {% if project.projectrequirement_set.all %}
 | |
|                         {% for requirement in project.projectrequirement_set.all %}
 | |
|                         <tr>
 | |
|                             <td class="px-6 py-4 text-center text-sm border-r border-gray-300">
 | |
|                                 <p class="text-secondosiblue">{{requirement.content}}</p>
 | |
|                             </td>
 | |
| 
 | |
|                             <td class="px-6 py-4 text-center text-sm border-r border-gray-300">
 | |
|                                 {% if requirement.task_set.all %}
 | |
|                                 {% for task in requirement.task_set.all %}
 | |
|                                 <a class="text-blue-500 underline"
 | |
|                                     href="{% url 'detailed-task' task.task_id %}">{{task.name}} <i
 | |
|                                         class="fas fa-angle-double-right"></i></a>
 | |
|                                 {% endfor %}
 | |
|                                 {%else%}
 | |
|                                 <p class="text-secondosiblue">None</p>
 | |
|                                 {% endif %}
 | |
| 
 | |
|                             </td>
 | |
| 
 | |
| 
 | |
|                             <td class="px-6 py-4 text-center text-sm">
 | |
|                                 <div class="w-full flex justify-center items-center gap-3">
 | |
|                                     <a href="{% url 'adduserstorytask' project.project_id requirement.id %}">
 | |
|                                         <button
 | |
|                                             class="w-fit py-2 px-3 bg-green-700 border border-green-700 text-white rounded-md cursor-pointer hover:bg-white hover:text-green-700">Add
 | |
|                                             Task</button>
 | |
|                                     </a>
 | |
| 
 | |
|                                     <a href="">
 | |
|                                         <div class="text-[15px] text-blue-500 cursor-pointer">
 | |
|                                             <i class="fa fa-edit"></i>
 | |
|                                         </div>
 | |
|                                     </a>
 | |
| 
 | |
|                                     <div class="text-[15px] text-red-500 cursor-pointer">
 | |
|                                         <i class="fa fa-trash"></i>
 | |
|                                     </div>
 | |
|                                 </div>
 | |
|                             </td>
 | |
|                         </tr>
 | |
|                         {% endfor %}
 | |
|                         {% else %}
 | |
|                         <tr>
 | |
|                             <td colspan="3" class="px-6 py-4 text-center text-sm text-secondosiblue">
 | |
|                                 No Requirements at the moment
 | |
|                             </td>
 | |
|                         </tr>
 | |
|                         {% endif %}
 | |
|                     </tbody>
 | |
|                 </table>
 | |
|             </div>
 | |
|         </div>
 | |
| 
 | |
| 
 | |
|         <!-- CREDENTIALS -->
 | |
|         <div class="mt-5 relative">
 | |
|             <div
 | |
|                 class=" bg-gray-200 rounded-t-md flex justify-between items-center text-white text-xl font-bold h-[50px]">
 | |
|                 <div class="px-3">
 | |
|                     <p class="text-secondosiblue uppercase font-bold">Credentials</p>
 | |
|                 </div>
 | |
| 
 | |
|                 <button
 | |
|                     class="h-full rounded-tr-md px-4 bg-secondosiblue text-gray-200 text-[18px] outline-none border-none cursor-pointer flex justify-center items-center addCredentialsButton"
 | |
|                     data-modal-url="{% url 'addcredentialmodal' %}">
 | |
|                     <i class="fa fa-plus"></i>
 | |
|                 </button>
 | |
|             </div>
 | |
| 
 | |
|             <div class="overflow-x-auto border border-gray-300 rounded-b-md">
 | |
|                 <table class="min-w-full divide-y">
 | |
|                     <!-- TABLE HEADER -->
 | |
|                     <thead class="bg-gray-50">
 | |
|                         <tr>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap">
 | |
|                                 Email or Username
 | |
|                             </th>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap">
 | |
|                                 Password
 | |
|                             </th>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase whitespace-nowrap">
 | |
|                                 Used For
 | |
|                             </th>
 | |
|                         </tr>
 | |
|                     </thead>
 | |
| 
 | |
|                     <!-- TABLE BODY -->
 | |
|                     <tbody class="bg-white divide-y divide-gray-200">
 | |
|                         <!-- 1st row -->
 | |
|                         {% if project.projectcredential_set.all %}
 | |
|                         {% for credential in project.projectcredential_set.all %}
 | |
|                         <tr>
 | |
|                             <td class="px-6 py-4 text-center text-sm border-r border-gray-300">
 | |
|                                 <p class="text-secondosiblue">{{credential.emailorusername}}</p>
 | |
|                             </td>
 | |
| 
 | |
|                             <td class="px-6 py-4 text-center text-sm border-r border-gray-300">
 | |
|                                 <a class="text-secondosiblue">{{credential.password}}</a>
 | |
|                             </td>
 | |
| 
 | |
|                             <td class="px-6 py-4 text-center text-sm border-r border-gray-300">
 | |
|                                 <a class="text-secondosiblue">{{credential.usedfor}}</a>
 | |
|                             </td>
 | |
|                         </tr>
 | |
|                         {% endfor %}
 | |
|                         {% else %}
 | |
|                         <tr>
 | |
|                             <td colspan="3" class="px-6 py-4 text-center text-sm text-secondosiblue">
 | |
|                                 No Available Credentials
 | |
|                             </td>
 | |
|                         </tr>
 | |
|                         {% endif %}
 | |
|                     </tbody>
 | |
|                 </table>
 | |
|             </div>
 | |
|         </div>
 | |
| 
 | |
| 
 | |
|         <!-- RELATED FILES -->
 | |
|         <div class="w-full mt-5">
 | |
|             <div class="overflow-x-auto border border-gray-300 rounded-md mt-5">
 | |
|                 <div
 | |
|                     class=" bg-gray-200 rounded-t-md flex justify-between items-center text-white text-xl font-bold h-[50px]">
 | |
|                     <div class="px-3">
 | |
|                         <p class="text-secondosiblue uppercase font-bold">Related files</p>
 | |
|                     </div>
 | |
| 
 | |
|                     <button
 | |
|                         class="h-full rounded-tr-md px-4 bg-secondosiblue text-gray-200 text-[18px] outline-none border-none cursor-pointer flex justify-center items-center addFileButton"
 | |
|                         data-modal-url="{% url 'addfilemodal' %}">
 | |
|                         <i class="fa fa-plus"></i>
 | |
|                     </button>
 | |
|                 </div>
 | |
| 
 | |
|                 <table class="min-w-full divide-y">
 | |
|                     <!-- TABLE HEADER -->
 | |
|                     <thead class="bg-gray-50">
 | |
|                         <tr>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap">
 | |
|                                 File Name
 | |
|                             </th>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase border-r border-gray-300 whitespace-nowrap">
 | |
|                                 File
 | |
|                             </th>
 | |
|                             <th scope="col"
 | |
|                                 class="px-6 py-3 text-sm font-medium text-gray-500 uppercase whitespace-nowrap">
 | |
|                                 Date Entered
 | |
|                             </th>
 | |
|                         </tr>
 | |
|                     </thead>
 | |
| 
 | |
|                     <!-- TABLE BODY -->
 | |
|                     <tbody class="bg-white divide-y divide-gray-200">
 | |
|                         <!-- 1st row -->
 | |
|                         {% if project.projectfile_set.all %}
 | |
|                         {% for file in project.projectfile_set.all %}
 | |
|                         <tr>
 | |
|                             <td class="px-6 py-4 text-center text-sm border-r border-gray-300">
 | |
|                                 <p class="text-secondosiblue">{{file.name}}</p>
 | |
|                             </td>
 | |
| 
 | |
|                             <td class="px-6 py-4 text-center text-sm border-r border-gray-300">
 | |
|                                 <a class="text-secondosiblue">{{file.file}}</a>
 | |
|                             </td>
 | |
| 
 | |
|                             <td class="px-6 py-4 text-center text-sm border-r border-gray-300">
 | |
|                                 <a class="text-secondosiblue">{{file.date}}</a>
 | |
|                             </td>
 | |
|                         </tr>
 | |
|                         {% endfor %}
 | |
|                         {% else %}
 | |
|                         <tr>
 | |
|                             <td colspan="3" class="px-6 py-4 text-center text-sm text-secondosiblue">
 | |
|                                 No Available Files
 | |
|                             </td>
 | |
|                         </tr>
 | |
|                         {% endif %}
 | |
|                     </tbody>
 | |
|                 </table>
 | |
|             </div>
 | |
|         </div>
 | |
| 
 | |
|         <!-- NOTES -->
 | |
|         <div class="w-full mt-5">
 | |
|             <div
 | |
|                 class=" bg-gray-200 rounded-t-md flex justify-between items-center text-white text-xl font-bold h-[50px]">
 | |
|                 <div class="px-3">
 | |
|                     <p class="text-secondosiblue uppercase font-bold">Notes</p>
 | |
|                 </div>
 | |
| 
 | |
|                 <button
 | |
|                     class="h-full rounded-tr-md px-4 bg-secondosiblue text-gray-200 text-[18px] outline-none border-none cursor-pointer flex justify-center items-center addProjectNoteButton"
 | |
|                     data-modal-url="{% url 'addprojectnotemodal' project.project_id  %}"> 
 | |
|                     <i class="fa fa-plus"></i>
 | |
|                 </button>
 | |
|             </div>
 | |
| 
 | |
|             <div class="w-full h-fit mt-3 grid grid-cols-3 gap-5">
 | |
|                 {% for note in project_notes %}
 | |
|                 <div>
 | |
|                     <div class="w-full rounded-t-md px-3 py-2 flex justify-between items-center border-b border-white border-opacity-30"
 | |
|                         style="background-color: {{note.color}}">
 | |
|                         <p class="text-sm text-gray-500">{{ note.date|date:"F j, Y" }}</p>
 | |
|                         <button
 | |
|                             class="w-[30px] h-[30px] bg-white shadow-md rounded-md p-2 flex justify-center items-center cursor-pointer hover:scale-105 duration-300 transition-transform deleteNoteButton"
 | |
|                             data-modal-url="{% url 'deletenotemodal' note.id %}" style="color: {{note.color}};">
 | |
|                             <i class="fa fa-trash"></i>
 | |
|                         </button>
 | |
|                     </div>
 | |
|                     <div class="h-[150px] shadow-md rounded-b-md p-5 cursor-pointer"
 | |
|                         style="background-color: {{note.color}}"
 | |
|                         onclick="showModal('{{ note.text }}', '{{ note.color }}')">
 | |
|                         <p class="text-sm text-gray-500 overflow-hidden"
 | |
|                             style="word-break: break-all; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical;">
 | |
|                             {{ note.text }}
 | |
|                         </p>
 | |
|                     </div>
 | |
|                 </div>
 | |
| 
 | |
|                 {% endfor %}
 | |
|             </div>
 | |
|         </div>
 | |
| 
 | |
| 
 | |
|         <!-- RELATED TASK CONTAINER BASED ON THE CHOSEN EPIC -->
 | |
|         <div class="w-full mt-10">
 | |
|             <div class="w-full bg-gray-200 rounded-md shadow-md h-fit p-5 flex flex-col gap-3">
 | |
|                 <p class="text-secondosiblue uppercase text-xl font-semibold">Filter Tasks by Epics</p>
 | |
|                 <div class="w-full flex flex-wrap gap-3">
 | |
|                     <div>
 | |
|                         <a class="selectedEpic text-gray-500 font-semibold cursor-pointer openTasks"
 | |
|                             data-project-id="{{project.id}}">All Open Tasks</a>
 | |
|                     </div>
 | |
|                     <p class="text-white opacity-30 font-extralight">|</p>
 | |
|                     {% for epic in epics %}
 | |
|                     <div>
 | |
|                         <a class="epicTitle text-gray-400 font-semibold cursor-pointer"
 | |
|                             data-epic-id="{{ epic.id }}">{{epic.title}}</a>
 | |
|                     </div>
 | |
|                     <p class="text-white opacity-30 font-extralight">|</p>
 | |
|                     {% endfor %}
 | |
|                 </div>
 | |
|             </div>
 | |
|         </div>
 | |
| 
 | |
| 
 | |
|         <!-- TO DISPLAY THE FETCHED TASKS -->
 | |
|         <div class="w-full flex flex-col gap-3" id="epicRelatedTasksContainer">
 | |
| 
 | |
|         </div>
 | |
|     </div>
 | |
| </div>
 | |
| 
 | |
| 
 | |
| <!-- POPUP MODAL -->
 | |
| <div class="w-full h-full bg-black bg-opacity-40 z-20 fixed justify-center items-center hidden inset-0" id="popUpModal">
 | |
|     <div class="w-[95%] md:w-fit h-fit bg-white rounded-md p-9 relative">
 | |
|         <button class="absolute top-3 right-5 text-slate-800 text-xl cursor-pointer outline-none border-none"
 | |
|             id="closeModalButton">
 | |
|             <i class="fa fa-close"></i>
 | |
|         </button>
 | |
|         <iframe id="popupModalFrame" frameborder="0"></iframe>
 | |
|     </div>
 | |
| </div>
 | |
| <script type="text/javascript" src='{% static "js/pop-modals.js" %}'></script>
 | |
| 
 | |
| 
 | |
| 
 | |
| <!---------------------- JS SCRIPTS -------------------->
 | |
| 
 | |
| <!-- TO FETCH THE RELATED TASKS -->
 | |
| <script type="text/javascript" src='{% static "js/fetch-epic-tasks.js" %}'></script>
 | |
| 
 | |
| <!-- TO DISPLAY THE PROJECT PROGRESS BAR BASED ON ITS REMAINING TIME -->
 | |
| <script type="text/javascript" src='{% static "js/calculate-project-time.js" %}'></script>
 | |
| 
 | |
| 
 | |
| {% endblock content %} |