diff --git a/Website/index.html b/Website/index.html
index 426dd77..ef1c874 100644
--- a/Website/index.html
+++ b/Website/index.html
@@ -35,10 +35,10 @@
Tensei Pandemic
-
-
-
-
+
+
+
+
Add Task
@@ -58,7 +58,21 @@
-
+
+
+
+ Tensei Pandemic
+ Imamura Hinata
+ Imamura Hinata is a high school boy with a cute appearance.
+ Since his trauma with the first love, he wanted to be more manly than anybody else. But one day he woke up to something different…
+ The total opposite of his ideal male body!
+ Pandemic love comedy!
+
+ Delete Task ❌
+
+
+
+
diff --git a/Website/interaction.js b/Website/interaction.js
index 6985228..fb1ad64 100644
--- a/Website/interaction.js
+++ b/Website/interaction.js
@@ -18,6 +18,9 @@ const slideOutRightTiming = {
easing: "ease-in"
}
+let publications = [];
+let tasks = [];
+
const taskTypesSelect = document.querySelector("#taskTypes")
const searchPublicationQuery = document.querySelector("#searchPublicationQuery");
const selectPublication = document.querySelector("#taskSelectOutput");
@@ -26,12 +29,19 @@ const settingsTab = document.querySelector("#settingstab");
const settingsCog = document.querySelector("#settingscog");
const selectRecurrence = document.querySelector("#selectReccurrence");
const tasksContent = document.querySelector("content");
-const addtaskpopup = document.querySelector("addtask-popup");
+const generalPopup = document.querySelector("popup");
+const addTaskWindow = document.querySelector("addtask-window");
+const publicationViewer = document.querySelector("publication-viewer");
+const publicationViewerDescription = document.querySelector("#publicationViewerDescription");
+const publicationViewerName = document.querySelector("#publicationViewerName");
+const publicationViewerAuthor = document.querySelector("#publicationViewerAuthor");
+const pubviewcover = document.querySelector("#pubviewcover");
+const publicationDelete = document.querySelector("publication-delete");
const closetaskpopup = document.querySelector("#closePopupImg");
settingsCog.addEventListener("click", () => slide());
-closetaskpopup.addEventListener("click", () => HideNewTaskWindow())
-document.querySelector("addtask-background").addEventListener("click", () => HideNewTaskWindow());
+closetaskpopup.addEventListener("click", () => HidePopup())
+document.querySelector("blur-background").addEventListener("click", () => HidePopup());
let availableTaskTypes;
GetTaskTypes()
@@ -66,11 +76,8 @@ searchPublicationQuery.addEventListener("keypress", (event) => {
json.forEach(publication => {
var option = CreatePublication(publication, connectorSelect.value);
option.addEventListener("click", () => {
- CreateNewMangaDownloadTask(
- taskTypesSelect.value,
- connectorSelect.value,
- publication.internalId
- );
+ CreateTask(taskTypesSelect.value, selectRecurrence.value, connectorSelect.value, publication.internalId, "en");
+ selectPublication.replaceChildren();
});
selectPublication.appendChild(option);
}
@@ -79,11 +86,11 @@ searchPublicationQuery.addEventListener("keypress", (event) => {
});
function CreatePublication(publication, connector){
- var option = document.createElement('publication');
- option.setAttribute("id", publication.internalId);
+ var publicationElement = document.createElement('publication');
+ publicationElement.setAttribute("id", publication.internalId);
var img = document.createElement('img');
img.src = publication.posterUrl;
- option.appendChild(img);
+ publicationElement.appendChild(img);
var info = document.createElement('publication-information');
var connectorName = document.createElement('connector-name');
connectorName.innerText = connector;
@@ -92,18 +99,19 @@ function CreatePublication(publication, connector){
var publicationName = document.createElement('publication-name');
publicationName.innerText = publication.sortName;
info.appendChild(publicationName);
- option.appendChild(info);
- return option;
+ publicationElement.appendChild(info);
+ if(publications.filter(pub => pub.internalId === publication.internalId) < 1)
+ publications.push(publication);
+ return publicationElement;
}
-function CreateNewMangaDownloadTask(taskType, connectorName, publicationId){
- CreateTask(taskType, selectRecurrence.value, connectorName, publicationId, "en");
- selectPublication.innerHTML = "";
+function DeleteTask(taskType, connectorName, publicationId){
+
}
var slideIn = true;
-function slide(){
- if(slideIn)
+function slide() {
+ if (slideIn)
settingsTab.animate(slideInRight, slideInRightTiming);
else
settingsTab.animate(slideInRight, slideOutRightTiming);
@@ -121,13 +129,36 @@ function ResetContent(){
tasksContent.appendChild(add);
}
+function ShowPopup(){
+ generalPopup.style.display = "block";
+ generalPopup.animate(fadeIn, fadeInTiming);
+}
+
+let toRemoveId;
+function ShowPublicationViewerWindow(publicationId, event){
+ publicationViewer.style.top = `${event.clientY - 60}px`;
+ publicationViewer.style.left = `${event.clientX}px`;
+ var publication = publications.filter(pub => pub.internalId === publicationId)[0];
+
+ publicationViewerName.innerText = publication.sortName;
+ publicationViewerDescription.innerText = publication.description;
+ publicationViewerAuthor.innerText = publication.author;
+ pubviewcover.src = publication.posterUrl;
+
+ toRemoveId = publicationId;
+ publicationViewer.style.display = "block";
+ ShowPopup();
+}
+
function ShowNewTaskWindow(){
selectPublication.replaceChildren();
- addtaskpopup.style.display = "block";
- addtaskpopup.animate(fadeIn, fadeInTiming);
+ addTaskWindow.style.display = "flex";
+ ShowPopup();
}
-function HideNewTaskWindow(){
- addtaskpopup.style.display = "none";
+function HidePopup(){
+ generalPopup.style.display = "none";
+ addTaskWindow.style.display = "none";
+ publicationViewer.style.display = "none";
}
const fadeIn = [
@@ -136,7 +167,7 @@ const fadeIn = [
];
const fadeInTiming = {
- duration: 150,
+ duration: 50,
iterations: 1,
fill: "forwards"
}
@@ -146,7 +177,11 @@ GetTasks()
//.then(json => console.log(json))
.then(json => json.forEach(task => {
var publication = CreatePublication(task.publication, task.connectorName);
+ publication.addEventListener("click", (event) => ShowPublicationViewerWindow(task.publication.internalId, event));
tasksContent.appendChild(publication);
+
+ if(tasks.filter(task => task.publication.internalId === publication.internalId) < 1)
+ tasks.push(task);
}));
setInterval(() => {
@@ -155,6 +190,10 @@ setInterval(() => {
//.then(json => console.log(json))
.then(json => json.forEach(task => {
var publication = CreatePublication(task.publication, task.connectorName);
+ publication.addEventListener("click", (event) => ShowPublicationViewerWindow(task.publication.internalId, event));
tasksContent.appendChild(publication);
+
+ if(tasks.filter(task => task.publication.internalId === publication.internalId) < 1)
+ tasks.push(task);
}));
}, 5000);
\ No newline at end of file
diff --git a/Website/style.css b/Website/style.css
index 77d3bb6..1a848b4 100644
--- a/Website/style.css
+++ b/Website/style.css
@@ -181,18 +181,20 @@ publication-information {
justify-content: start;
}
+publication-information * {
+ z-index: 1;
+ color: var(--accent-color);
+}
+
connector-name{
width: fit-content;
margin: 10px 0;
- z-index: 1;
}
publication-name{
width: fit-content;
font-size: 16pt;
font-weight: bold;
- z-index: 1;
- color: var(--accent-color);
}
publication img {
@@ -204,7 +206,7 @@ publication img {
z-index: 0;
}
-addtask-popup{
+popup{
display: none;
width: 100%;
min-height: 100%;
@@ -214,7 +216,7 @@ addtask-popup{
z-index: 2;
}
-addtask-background {
+blur-background {
width: 100%;
height: 100%;
position: absolute;
@@ -224,7 +226,7 @@ addtask-background {
}
addtask-window {
- display: flex;
+ display: none;
flex-direction: column;
flex-wrap: nowrap;
position: absolute;
@@ -303,4 +305,74 @@ addtask-settings addtask-setting{
flex-wrap: wrap;
justify-content: start;
align-content: start;
+}
+
+publication-viewer{
+ display: none;
+ width: 500px;
+ height: 300px;
+ position: absolute;
+ top: 200px;
+ left: 400px;
+ background-color: var(--accent-color);
+ border-radius: 5px;
+ overflow: hidden;
+}
+
+publication-viewer{
+ padding: 30px;
+}
+
+publication-viewer::after{
+ content: '';
+ position: absolute;
+ left: 0; top: 0;
+ border-radius: 5px;
+ width: 100%; height: 100%;
+ background: rgba(0,0,0,0.8);
+ backdrop-filter: blur(3px);
+}
+
+publication-viewer img {
+ position: absolute;
+ left: 0;
+ top: 0;
+ min-height: 100%;
+ max-width: 100%;
+ border-radius: 5px;
+ z-index: 0;
+}
+
+publication-viewer publication-information publication-name{
+ margin: 5px 0;
+}
+
+publication-viewer publication-information publication-author {
+ margin: 5px 0;
+}
+
+publication-viewer publication-information publication-author::before {
+ content: "Author: ";
+}
+
+publication-viewer publication-information publication-description::before {
+ content: "Description";
+ display: block;
+ font-weight: bolder;
+}
+
+publication-viewer publication-information publication-description {
+ font-size: 12pt;
+ margin: 5px 0;
+ max-height: 200px;
+ overflow-x: scroll;
+}
+
+publication-viewer publication-information publication-delete {
+ position: absolute;
+ bottom: 0px;
+ right: 0px;
+ color: red;
+ margin: 20px;
+ font-size: 16pt;
}
\ No newline at end of file