New changes.
parent
29d7a73520
commit
7994b1d8bd
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,18 @@
|
||||
const addReqButton = document.getElementById("addReqButton");
|
||||
const addReqContainerTemplate = document.getElementById("addReqContainerTemplate");
|
||||
const addReqContainer = document.getElementById("addReqContainer");
|
||||
|
||||
addReqButton.addEventListener("click", function () {
|
||||
// Clone the template and remove the "hidden" class
|
||||
const newContainer = addReqContainerTemplate.cloneNode(true);
|
||||
newContainer.classList.remove("hidden");
|
||||
|
||||
// Add an event listener to the new container's remove button
|
||||
const removeReqButton = newContainer.querySelector("#removeReqButton");
|
||||
removeReqButton.addEventListener("click", function () {
|
||||
// Remove the clicked container when the remove button is clicked
|
||||
newContainer.remove();
|
||||
});
|
||||
|
||||
addReqContainer.appendChild(newContainer);
|
||||
});
|
@ -0,0 +1,33 @@
|
||||
// WHEN THE USER CHOOSE A FILE THE NAME OF THE FILE WILL APPEAR IN THE SPAN AND THE UPLOADED IMAGE WILL APPEAR IN THE USER PROFILE IMAGE CONTAINER
|
||||
|
||||
const fileInput = document.getElementById('actual-btn');
|
||||
const fileNameSpan = document.getElementById('file-name');
|
||||
const imageContainer = document.getElementById('image-container');
|
||||
|
||||
fileInput.addEventListener('change', (event) => {
|
||||
const selectedFiles = event.target.files;
|
||||
if (selectedFiles.length > 0) {
|
||||
const file = selectedFiles[0];
|
||||
const fileReader = new FileReader();
|
||||
|
||||
fileReader.onload = function () {
|
||||
const imgElement = document.createElement('img');
|
||||
imgElement.src = fileReader.result;
|
||||
imgElement.alt = 'Uploaded Image';
|
||||
imgElement.classList.add('w-full', 'h-full', 'rounded-full', 'object-cover');
|
||||
|
||||
// Clear any previous images and append the new one
|
||||
imageContainer.innerHTML = '';
|
||||
imageContainer.appendChild(imgElement);
|
||||
|
||||
// Update the text in the file input
|
||||
fileNameSpan.textContent = file.name;
|
||||
};
|
||||
|
||||
// Read the selected file as a data URL
|
||||
fileReader.readAsDataURL(file);
|
||||
} else {
|
||||
fileNameSpan.textContent = 'Upload Profile Picture';
|
||||
imageContainer.innerHTML = ''; // Clear the container if no file is selected
|
||||
}
|
||||
});
|
@ -0,0 +1,26 @@
|
||||
|
||||
// WHEN THE USER CHOOSE A FILE THE NAME OF THE FILE WILL APPEAR IN THE SPAN
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const fileInputs = document.querySelectorAll('.file-input');
|
||||
|
||||
fileInputs.forEach(fileInput => {
|
||||
const fileNameSpan = fileInput.parentElement.querySelector('.file-name');
|
||||
const fileLabel = fileInput.parentElement.querySelector('.file-label');
|
||||
|
||||
// Event listener to the label "file-label", which triggers a click on the hidden file input "file-input"
|
||||
fileLabel.addEventListener('click', () => {
|
||||
fileInput.click();
|
||||
});
|
||||
|
||||
fileInput.addEventListener('change', (event) => {
|
||||
const selectedFiles = event.target.files;
|
||||
if (selectedFiles.length > 0) {
|
||||
const fileNames = Array.from(selectedFiles).map(file => file.name).join(', ');
|
||||
fileNameSpan.textContent = fileNames;
|
||||
} else {
|
||||
fileNameSpan.textContent = 'Upload Documents (PDF, docx)';
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
@ -0,0 +1,135 @@
|
||||
{% extends "main.html" %}
|
||||
{%load static%}
|
||||
{% block content %}
|
||||
|
||||
<!-- THIS TASK BELONGS TO A USER STORY ADDED FROM PROJECT DETAILS PAGE -->
|
||||
|
||||
<div class="w-full px-5 s:px-9 mb-4">
|
||||
<div class="w-full h-full shadow-md rounded-md mt-5 py-5 px-3 bg-white">
|
||||
<h1 class="text-3xl text-slate-800 text-center font-semibold">
|
||||
Create Task
|
||||
</h1>
|
||||
|
||||
<div class="w-full flex flex-col gap-5 justify-center items-center mt-5">
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500 text-base">Name:</label>
|
||||
<input type="text" placeholder="Name"
|
||||
class="w-full h-[50px] py-1 px-3 border border-gray-300 outline-none rounded-md mt-1">
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500 text-base">User Story:</label>
|
||||
<select id=""
|
||||
class="w-full h-[50px] py-1 px-3 border border-gray-300 outline-none rounded-md text-gray-500 mt-1">
|
||||
<option value="" selected>Predifined</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500 text-base">Epic:</label>
|
||||
<select id=""
|
||||
class="w-full h-[50px] py-1 px-3 border border-gray-300 outline-none rounded-md text-gray-500 mt-1">
|
||||
<option value="" selected>Select Epic</option>
|
||||
<option value="">Epic 1</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500 text-base">Project:</label>
|
||||
<select id=""
|
||||
class="w-full h-[50px] py-1 px-3 border border-gray-300 outline-none rounded-md text-gray-500 mt-1">
|
||||
<option value="" selected>Predifined</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500 text-base">Status:</label>
|
||||
<select id=""
|
||||
class="w-full h-[50px] py-1 px-3 border border-gray-300 outline-none rounded-md text-gray-500 mt-1">
|
||||
<option value="">Open</option>
|
||||
<option value="">Working On</option>
|
||||
<option value="">Closed</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500 text-base">Assigned To:</label>
|
||||
<select required id=""
|
||||
class="w-full h-[50px] py-1 px-3 border border-gray-300 outline-none rounded-md text-gray-500 mt-1">
|
||||
<option value="">Nataly</option>
|
||||
<option value="">Salim</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500 text-base">Task Description:</label>
|
||||
<textarea type="text" placeholder="Description..." rows="5" cols="5"
|
||||
class="w-full py-3 px-3 border border-gray-300 outline-none rounded-md resize-none mt-1"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500">Extra:</label>
|
||||
<select id=""
|
||||
class="w-full h-[50px] py-1 px-3 border border-gray-300 outline-none rounded-md text-gray-500 mt-1">
|
||||
<option value="" selected>No</option>
|
||||
<option value="">Yes</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500">Start Date:</label>
|
||||
<input type="date" id="date" name="date"
|
||||
class="w-full p-3 border border-gray-300 rounded-md bg-transparent outline-none mt-1">
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500">End Date:</label>
|
||||
<input type="date" id="date" name="date"
|
||||
class="w-full p-3 border border-gray-300 rounded-md bg-transparent outline-none mt-1">
|
||||
</div>
|
||||
|
||||
<div class="w-full">
|
||||
<label class="text-gray-500">Documents:</label>
|
||||
<div class="inbox-box border border-gray-300 w-full rounded-md px-3 mt-1">
|
||||
<div class="flex items-center justify-between">
|
||||
<input name="" required type="file" class="file-input" accept=".pdf,.docx" hidden multiple />
|
||||
<span class="file-name text-gray-500 text-base focus:outline-none outline-none">Upload
|
||||
Document(s)</span>
|
||||
<label
|
||||
class="file-label bg-transparent text-gray-500 border border-white h-14 cursor-pointer flex items-center">
|
||||
<i class="fa fa-upload" style="font-size: 25px;"></i>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="w-full flex justify-center items-center mt-3">
|
||||
<button
|
||||
class="w-fit py-1 px-3 bg-blue-500 rounded-md outline-none text-white border border-blue-500 text-xl cursor-pointer hover:bg-white hover:text-blue-500">Add
|
||||
Task</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- POPUP MODAL -->
|
||||
<div class="w-full h-full bg-black bg-opacity-40 z-20 fixed justify-center items-center hidden" 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>
|
||||
|
||||
<!-------------- JS SCRIPTS --------------->
|
||||
<script type="text/javascript" src='{% static "js/upload-input-tag.js" %}'></script>
|
||||
|
||||
<script type="text/javascript" src='{% static "js/pop-modals.js" %}'></script>
|
||||
</div>
|
||||
|
||||
{% endblock content %}
|
Loading…
Reference in New Issue