From b6ac2682f6875fd4b2543e7a2a02b0bdd768c2af Mon Sep 17 00:00:00 2001 From: glax Date: Mon, 22 May 2023 22:25:50 +0200 Subject: [PATCH 01/23] #1 First commit It do be uglyyyyy --- Website/index.html | 27 +++++++++++++++ Website/style.css | 86 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 Website/index.html create mode 100644 Website/style.css diff --git a/Website/index.html b/Website/index.html new file mode 100644 index 0000000..778ae14 --- /dev/null +++ b/Website/index.html @@ -0,0 +1,27 @@ + + + + + Tranga + + + + + Tranga + + + + + + + + Connector Name + Publication Name + + + + + + + + \ No newline at end of file diff --git a/Website/style.css b/Website/style.css new file mode 100644 index 0000000..341904e --- /dev/null +++ b/Website/style.css @@ -0,0 +1,86 @@ +body{ + padding: 0; + margin: 0; + display: flex; + flex-flow: column; + flex-wrap: nowrap; + height: 100vh; + background-color: orange; +} + +topbar { + display: flex; + align-items: center; + background-color: red; + height: 4rem; +} + +titlebox { + font-size: 20pt; + font-weight: bold; + margin: 20px; +} + +viewport { + display: flex; + background-color: blue; + flex-flow: row; + flex-wrap: nowrap; + flex-grow: 1; +} + +sidebar{ + background-color: green; + width: 20rem; + margin-bottom: 10px; + border-radius: 0 0 5px 0; +} + +content { + background-color: yellow; + flex-grow: 1; + margin: 10px; + padding: 5px; + border-radius: 5px; + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + +settingstab{ + background-color: green; + width: 20rem; + margin-bottom: 10px; + border-radius: 0 0 5px 0; +} + +publication{ + background-color: gray; + width: 200px; + height: 300px; + border-radius: 5px; + margin: 10px 10px; + position: relative; +} + +.pill { + height: 14pt; + font-size: 12pt; + border-radius: 7pt; + background-color: white; + padding: 1pt 20px; +} + +connector{ + position: absolute; + top: 10px; + left: 10px; +} + +publication-name{ + position: absolute; + font-size: 16pt; + font-weight: bold; + top: 35px; + left: 15px; +} \ No newline at end of file From e2b88881305ca851f3ff56ae9d563478dfb0d908 Mon Sep 17 00:00:00 2001 From: glax Date: Mon, 22 May 2023 23:52:35 +0200 Subject: [PATCH 02/23] #1 Basic layout and colors --- Website/index.html | 24 ++++-- Website/interaction.js | 32 +++++++ Website/media/blahaj.png | Bin 0 -> 126603 bytes Website/media/settings-cogwheel.svg | 21 +++++ Website/style.css | 127 ++++++++++++++++++++++------ 5 files changed, 173 insertions(+), 31 deletions(-) create mode 100644 Website/interaction.js create mode 100644 Website/media/blahaj.png create mode 100644 Website/media/settings-cogwheel.svg diff --git a/Website/index.html b/Website/index.html index 778ae14..6725e43 100644 --- a/Website/index.html +++ b/Website/index.html @@ -7,21 +7,35 @@ - Tranga + + + Tranga + + + + + + settingscog + + + +

+

+
- Connector Name + Connector Name Publication Name
- - -
+ + + + \ No newline at end of file diff --git a/Website/interaction.js b/Website/interaction.js new file mode 100644 index 0000000..0df2910 --- /dev/null +++ b/Website/interaction.js @@ -0,0 +1,32 @@ +const slideInRight = [ + { right: "-20rem" }, + { right: "0" } +]; + +const slideInRightTiming = { + duration: 200, + iterations: 1, + fill: "forwards", + easing: "ease-out" +} + +const slideOutRightTiming = { + direction: "reverse", + duration: 200, + iterations: 1, + fill: "forwards", + easing: "ease-in" +} + +const settingsTab = document.querySelector("#settingstab"); +const settingsCog = document.querySelector("#settingscog"); +var slideIn = true; +function slide(){ + if(slideIn) + settingsTab.animate(slideInRight, slideInRightTiming); + else + settingsTab.animate(slideInRight, slideOutRightTiming); + slideIn = !slideIn; +} + +settingsCog.addEventListener("click", () => slide()); \ No newline at end of file diff --git a/Website/media/blahaj.png b/Website/media/blahaj.png new file mode 100644 index 0000000000000000000000000000000000000000..dbbff934c85bbc6a8d317c975cf70d2229615a36 GIT binary patch literal 126603 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�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 M07*qoM6N<$f + + + + + + + + + \ No newline at end of file diff --git a/Website/style.css b/Website/style.css index 341904e..ab5eb1f 100644 --- a/Website/style.css +++ b/Website/style.css @@ -1,86 +1,161 @@ -body{ +:root{ + --background-color: #5bcefa; + --second-background-color: #000; + --primary-color: #f5a9b8; + --secondary-color: #fff; + --topbar-height: 60px; + box-sizing: content-box; +} + +body{ padding: 0; margin: 0; display: flex; flex-flow: column; flex-wrap: nowrap; height: 100vh; - background-color: orange; + background-color: var(--background-color); + font-family: "Inter", sans-serif; + overflow-x: hidden; +} + +background-placeholder{ + background-color: var(--second-background-color); + opacity: 0.05; + position: absolute; + width: 100%; + height: 100%; + border-radius: 5px; } topbar { display: flex; align-items: center; - background-color: red; - height: 4rem; + height: var(--topbar-height); + margin: 5px; } titlebox { - font-size: 20pt; + position: relative; + display: flex; + margin: 0 0 0 40px; + height: 100%; + align-items:center; + justify-content:center; +} + +titlebox span{ + font-size: 24pt; font-weight: bold; - margin: 20px; + background: linear-gradient(120deg, var(--primary-color), var(--secondary-color)); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + margin-left: 20px; +} + +titlebox img { + height: 100%; + margin-right: 10px; +} + +spacer{ + flex-grow: 1; +} + +searchdiv{ + display: block; + margin: 0 10px 0 0; +} + +#searchbox { + padding: 6px 8px; + border: 0; + border-radius: 3px; + font-size: 14pt; + width: 250px; +} + +#settingscog { + margin: 0px 30px; + height: calc(100% - 40px); + filter: invert(100%) sepia(0%) saturate(7465%) hue-rotate(115deg) brightness(116%) contrast(101%); } viewport { + position: relative; display: flex; - background-color: blue; flex-flow: row; flex-wrap: nowrap; flex-grow: 1; } sidebar{ - background-color: green; + position: relative; width: 20rem; margin-bottom: 10px; - border-radius: 0 0 5px 0; + border-radius: 0 5px 5px 0; } content { - background-color: yellow; + position: relative; flex-grow: 1; - margin: 10px; - padding: 5px; + margin: 0 10px 10px 10px; border-radius: 5px; display: flex; flex-direction: row; flex-wrap: wrap; + justify-content: start; + align-content: start; } settingstab{ - background-color: green; + position: absolute; + right: -20rem; + bottom: 0; + background-color: rgba(0,0,0,0.5); width: 20rem; + height: calc(100% - var(--topbar-height) - 20px); margin-bottom: 10px; - border-radius: 0 0 5px 0; + border-radius: 5px 0 0 5px; } publication{ - background-color: gray; - width: 200px; + background-color: var(--secondary-color); + width: 180px; height: 300px; border-radius: 5px; margin: 10px 10px; - position: relative; + display: flex; + flex-direction: column; + justify-content: start; + padding: 15px 20px; +} + +#addPublication p{ + width: 100%; + text-align: center; + font-size: 150pt; + vertical-align: middle; + line-height: 300px; + margin: 0; } .pill { + flex-grow: 0; height: 14pt; font-size: 12pt; border-radius: 7pt; - background-color: white; - padding: 1pt 20px; + background-color: var(--primary-color); + padding: 1pt 15px; } -connector{ - position: absolute; - top: 10px; - left: 10px; +connector-name{ + width: fit-content; + margin: 10px 0; } publication-name{ - position: absolute; + width: fit-content; font-size: 16pt; font-weight: bold; - top: 35px; - left: 15px; } \ No newline at end of file From 9c267f395f05e2a3993ccccd3b00584c741d270d Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 00:12:30 +0200 Subject: [PATCH 03/23] But I like this! #1 --- Website/index.html | 16 ++++++---- Website/style.css | 73 ++++++++++++++++++++++++++++++++++++---------- 2 files changed, 68 insertions(+), 21 deletions(-) diff --git a/Website/index.html b/Website/index.html index 6725e43..b03e6d1 100644 --- a/Website/index.html +++ b/Website/index.html @@ -13,7 +13,7 @@ - + settingscog @@ -21,15 +21,19 @@ + +

Made with Blåhaj 🦈

- - +

+

- +
- Connector Name - Publication Name + + + MangaDex + Tensei Pandemic +
diff --git a/Website/style.css b/Website/style.css index ab5eb1f..ecfbe43 100644 --- a/Website/style.css +++ b/Website/style.css @@ -1,8 +1,9 @@ :root{ - --background-color: #5bcefa; - --second-background-color: #000; + --background-color: #eee; + --second-background-color: #fff; --primary-color: #f5a9b8; - --secondary-color: #fff; + --secondary-color: #5bcefa; + --accent-color: #fff; --topbar-height: 60px; box-sizing: content-box; } @@ -21,18 +22,19 @@ body{ background-placeholder{ background-color: var(--second-background-color); - opacity: 0.05; + opacity: 1; position: absolute; width: 100%; height: 100%; - border-radius: 5px; + border-radius: 0 0 5px 0; + z-index: -1; } topbar { display: flex; align-items: center; height: var(--topbar-height); - margin: 5px; + background-color: var(--secondary-color); } titlebox { @@ -47,7 +49,7 @@ titlebox { titlebox span{ font-size: 24pt; font-weight: bold; - background: linear-gradient(120deg, var(--primary-color), var(--secondary-color)); + background: linear-gradient(150deg, var(--primary-color), var(--accent-color)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; margin-left: 20px; @@ -92,8 +94,11 @@ viewport { sidebar{ position: relative; width: 20rem; - margin-bottom: 10px; - border-radius: 0 5px 5px 0; + margin-bottom: 20px; + border-radius: 0 0 5px 0; + display: flex; + flex-direction: column; + } content { @@ -119,16 +124,14 @@ settingstab{ border-radius: 5px 0 0 5px; } -publication{ +#addPublication { background-color: var(--secondary-color); width: 180px; height: 300px; border-radius: 5px; margin: 10px 10px; - display: flex; - flex-direction: column; - justify-content: start; padding: 15px 20px; + position: relative; } #addPublication p{ @@ -138,24 +141,64 @@ publication{ vertical-align: middle; line-height: 300px; margin: 0; + color: var(--accent-color); } .pill { flex-grow: 0; height: 14pt; font-size: 12pt; - border-radius: 7pt; + border-radius: 9pt; background-color: var(--primary-color); - padding: 1pt 15px; + padding: 2pt 20px; +} + +publication{ + background-color: var(--secondary-color); + width: 180px; + height: 300px; + border-radius: 5px; + margin: 10px 10px; + padding: 15px 20px; + position: relative; +} + +publication::after{ + content: ''; + position: absolute; + left: 0; top: 0; + border-radius: 5px; + width: 100%; height: 100%; + background: linear-gradient(rgba(0, 0, 0, 0.5),rgba(0, 0, 0, 0.1)); +} + +publication-information { + display: flex; + flex-direction: column; + justify-content: start; + background-image: linear-gradient(to bottom, rgba(245, 246, 252, 0.52), rgba(117, 19, 93, 0.73)) + z-index: 1; } connector-name{ width: fit-content; margin: 10px 0; + z-index: 2; } publication-name{ width: fit-content; font-size: 16pt; font-weight: bold; + z-index: 2; + color: var(--accent-color); +} + +publication img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 0; } \ No newline at end of file From 87d2357b41e874bfda2c860852dfa1164df4ef9b Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 12:51:21 +0200 Subject: [PATCH 04/23] CORS Error --- Website/apiConnector.js | 8 ++++++++ Website/index.html | 1 + Website/style.css | 3 +++ 3 files changed, 12 insertions(+) create mode 100644 Website/apiConnector.js diff --git a/Website/apiConnector.js b/Website/apiConnector.js new file mode 100644 index 0000000..9e40e55 --- /dev/null +++ b/Website/apiConnector.js @@ -0,0 +1,8 @@ +const apiUri = "http://localhost:5177"; + +function GetTasks(){ + var getTaskUri = apiUri + "/Tasks/GetList"; + fetch(getTaskUri) + .then(response => response.json()) + .catch(error => console.error('Unable to get items.', error)); +} \ No newline at end of file diff --git a/Website/index.html b/Website/index.html index b03e6d1..10f6daf 100644 --- a/Website/index.html +++ b/Website/index.html @@ -40,6 +40,7 @@ + \ No newline at end of file diff --git a/Website/style.css b/Website/style.css index ecfbe43..5c37e87 100644 --- a/Website/style.css +++ b/Website/style.css @@ -78,6 +78,7 @@ searchdiv{ } #settingscog { + cursor: pointer; margin: 0px 30px; height: calc(100% - 40px); filter: invert(100%) sepia(0%) saturate(7465%) hue-rotate(115deg) brightness(116%) contrast(101%); @@ -125,6 +126,7 @@ settingstab{ } #addPublication { + cursor: pointer; background-color: var(--secondary-color); width: 180px; height: 300px; @@ -154,6 +156,7 @@ settingstab{ } publication{ + cursor: pointer; background-color: var(--secondary-color); width: 180px; height: 300px; From 290819de09c0bb1620b0b71a3fd73e5e745220f3 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 13:15:29 +0200 Subject: [PATCH 05/23] Created first api-calls #1 --- Website/apiConnector.js | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/Website/apiConnector.js b/Website/apiConnector.js index 9e40e55..ad41a13 100644 --- a/Website/apiConnector.js +++ b/Website/apiConnector.js @@ -1,8 +1,35 @@ const apiUri = "http://localhost:5177"; +function GetAvailableControllers(){ + var uri = apiUri + "/GetAvailableControllers"; + const response = await fetch(uri, { + method: 'GET', + headers: { + 'Accept': 'application/json' + } + }).catch(error => console.error('Unable to get items.', error)); + return await response.json(); +} + + function GetTasks(){ - var getTaskUri = apiUri + "/Tasks/GetList"; - fetch(getTaskUri) - .then(response => response.json()) - .catch(error => console.error('Unable to get items.', error)); + var uri = apiUri + "/Tasks/GetList"; + const response = await fetch(uri, { + method: 'GET', + headers: { + 'Accept': 'application/json' + } + }).catch(error => console.error('Unable to get items.', error)); + return await response.json(); +} + +async function GetSettings(){ + var uri = apiUri + "/Settings/Get"; + const response = await fetch(uri, { + method: 'GET', + headers: { + 'Accept': 'application/json' + } + }).catch(error => console.error('Unable to get items.', error)); + return await response.json(); } \ No newline at end of file From da4a5bed09a2e5a06a425ccd5bf1a880d3cdfce5 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 13:52:35 +0200 Subject: [PATCH 06/23] All API-calls #1 --- Website/apiConnector.js | 100 ++++++++++++++++++++++++++++++++-------- 1 file changed, 80 insertions(+), 20 deletions(-) diff --git a/Website/apiConnector.js b/Website/apiConnector.js index ad41a13..35e42bb 100644 --- a/Website/apiConnector.js +++ b/Website/apiConnector.js @@ -1,35 +1,95 @@ const apiUri = "http://localhost:5177"; -function GetAvailableControllers(){ - var uri = apiUri + "/GetAvailableControllers"; - const response = await fetch(uri, { +async function GetData(uri){ + let request = await fetch(uri, { method: 'GET', headers: { 'Accept': 'application/json' } - }).catch(error => console.error('Unable to get items.', error)); - return await response.json(); + }); + let json = await request.json(); + return json; } +function PostData(uri){ + fetch(uri, { + method: 'POST' + }); +} -function GetTasks(){ +function DeleteData(uri){ + fetch(uri, { + method: 'DELETE' + }); +} + +async function GetAvailableControllers(){ + var uri = apiUri + "/Tranga/GetAvailableControllers"; + let json = await GetData(uri); + return json; +} + +async function GetPublication(connectorName, title){ + var uri = apiUri + `/Tranga/GetPublicationsFromConnector?connectorName=${connectorName}&title=${title}`; + let json = await GetData(uri); + return json; +} + +async function GetKnownPublications(){ + var uri = apiUri + "/Tranga/GetKnownPublications"; + let json = await GetData(uri); + return json; +} + +async function GetTaskTypes(){ + var uri = apiUri + "/Tranga/Tasks/GetTaskTypes"; + let json = await GetData(uri); + return json; +} +async function GetRunningTasks(){ + var uri = apiUri + "/Tranga/GetRunningTasks"; + let json = await GetData(uri); + return json; +} + +async function GetTasks(){ var uri = apiUri + "/Tasks/GetList"; - const response = await fetch(uri, { - method: 'GET', - headers: { - 'Accept': 'application/json' - } - }).catch(error => console.error('Unable to get items.', error)); - return await response.json(); + let json = await GetData(uri); + return json; } async function GetSettings(){ var uri = apiUri + "/Settings/Get"; - const response = await fetch(uri, { - method: 'GET', - headers: { - 'Accept': 'application/json' - } - }).catch(error => console.error('Unable to get items.', error)); - return await response.json(); + let json = await GetData(uri); + return json; +} + +function CreateTask(taskType, reoccurrence, connectorName, publicationId, language){ + var uri = apiUri + `/Tasks/Create?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}&reoccurenceTime=${reoccurrence}&language=${language}`; + PostData(uri); +} + +function StartTask(taskType, connectorName, publicationId){ + var uri = apiUri + `/Tasks/Start?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}`; + PostData(uri); +} + +function EnqueueTask(taskType, connectorName, publicationId){ + var uri = apiUri + `/Queue/Enqueue?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}`; + PostData(uri); +} + +function UpdateSettings(downloadLocation, komgaUrl, komgaAuth){ + var uri = apiUri + `/Settings/Update?downloadLocation=${downloadLocation}&komgaUrl=${komgaAuth}&komgaAuth=${komgaAuth}`; + PostData(uri); +} + +function DeleteTask(taskType, connectorName, publicationId){ + var uri = apiUri + `/Tasks/Delete?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}`; + DeleteData(uri); +} + +function DequeueTask(taskType, connectorName, publicationId){ + var uri = apiUri + `/Queue/Dequeue?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}`; + DeleteData(uri); } \ No newline at end of file From ba5ae67aa7e607cf92bab719ba11e6257d97ebff Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 14:44:45 +0200 Subject: [PATCH 07/23] Fix wrong API path for GetTaskTypes --- Website/apiConnector.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Website/apiConnector.js b/Website/apiConnector.js index 35e42bb..2525040 100644 --- a/Website/apiConnector.js +++ b/Website/apiConnector.js @@ -42,7 +42,7 @@ async function GetKnownPublications(){ } async function GetTaskTypes(){ - var uri = apiUri + "/Tranga/Tasks/GetTaskTypes"; + var uri = apiUri + "/Tasks/GetTaskTypes"; let json = await GetData(uri); return json; } From dd651adc1589ac838947aacfa00ad7ab92408107 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 14:44:59 +0200 Subject: [PATCH 08/23] Add Task window --- Website/index.html | 16 +++++++++ Website/interaction.js | 38 ++++++++++++++++++++- Website/media/close-x.svg | 4 +++ Website/style.css | 70 +++++++++++++++++++++++++++++++++++++-- 4 files changed, 125 insertions(+), 3 deletions(-) create mode 100644 Website/media/close-x.svg diff --git a/Website/index.html b/Website/index.html index 10f6daf..f050e27 100644 --- a/Website/index.html +++ b/Website/index.html @@ -36,10 +36,26 @@ + + + + + +

Add Task

+ Close +
+ + + + +
+
+ + diff --git a/Website/interaction.js b/Website/interaction.js index 0df2910..454a766 100644 --- a/Website/interaction.js +++ b/Website/interaction.js @@ -18,6 +18,34 @@ const slideOutRightTiming = { easing: "ease-in" } + +const taskTypesSelect = document.querySelector("#taskTypes") +let availableTaskTypes; +GetTaskTypes() + .then(json => availableTaskTypes = json) + .then(json => + json.forEach(taskType => { + var option = document.createElement('option'); + option.value = taskType; + option.innerText = taskType; + taskTypesSelect.appendChild(option); + })); + +const connectorSelect = document.querySelector("#connectors"); +let availableConnectors; +GetAvailableControllers() + .then(json => availableConnectors = json) + .then(json => console.log(json)); + /*.then(json => + json.forEach(connector => { + var option = document.createElement('option'); + option.value = connector.name; + option.innerText = connector.name; + taskTypesSelect.appendChild(option); + }));*/ + + + const settingsTab = document.querySelector("#settingstab"); const settingsCog = document.querySelector("#settingscog"); var slideIn = true; @@ -29,4 +57,12 @@ function slide(){ slideIn = !slideIn; } -settingsCog.addEventListener("click", () => slide()); \ No newline at end of file +settingsCog.addEventListener("click", () => slide()); + +const addTask = document.querySelector("addPublication"); + +setInterval(() => { + GetTasks().then(json => { + //TODO + }); +}, 1000); \ No newline at end of file diff --git a/Website/media/close-x.svg b/Website/media/close-x.svg new file mode 100644 index 0000000..fc8cc4d --- /dev/null +++ b/Website/media/close-x.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Website/style.css b/Website/style.css index 5c37e87..efac94f 100644 --- a/Website/style.css +++ b/Website/style.css @@ -120,7 +120,7 @@ settingstab{ bottom: 0; background-color: rgba(0,0,0,0.5); width: 20rem; - height: calc(100% - var(--topbar-height) - 20px); + height: calc(100% - var(--topbar-height) - 40px); margin-bottom: 10px; border-radius: 5px 0 0 5px; } @@ -179,7 +179,7 @@ publication-information { display: flex; flex-direction: column; justify-content: start; - background-image: linear-gradient(to bottom, rgba(245, 246, 252, 0.52), rgba(117, 19, 93, 0.73)) + background-image: linear-gradient(to bottom, rgba(245, 246, 252, 0.52), rgba(117, 19, 93, 0.73)); z-index: 1; } @@ -204,4 +204,70 @@ publication img { width: 100%; height: 100%; z-index: 0; +} + +addtask-popup{ + display: block; + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; +} + +addtask-background { + width: 100%; + height: 100%; + position: absolute; + left: 0; + background-color: black; + opacity: 0.5; + z-index: 5; +} + +addtask-window { + display: block; + position: absolute; + left: 25%; + top: 15%; + width: 50%; + height: 70%; + padding: 0; + background-color: var(--accent-color); + z-index: 6; + border-radius: 5px; +} + +window-titlebar { + width: 100%; + height: 60px; + background-color: var(--primary-color); + position: absolute; + left: 0; + top: 0; + border-radius: 5px 5px 0 0; + color: var(--accent-color); + + display: flex block; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + +window-titlebar p { + margin: 0 30px; + font-size: 14pt; + font-weight: bolder; + letter-spacing: 1px; +} + +window-titlebar img { + height: 70%; +} + +window-content { + position: absolute; + width: 100%; + top: 60px; + left: 0; } \ No newline at end of file From f53dfb0822e9b5bce5b26e70d2cc9981970f9400 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 15:15:29 +0200 Subject: [PATCH 09/23] update task select window #1 --- Website/index.html | 8 +++++- Website/interaction.js | 58 +++++++++++++++++++++++++++++++++++++----- Website/style.css | 10 ++++++++ 3 files changed, 68 insertions(+), 8 deletions(-) diff --git a/Website/index.html b/Website/index.html index f050e27..dbd566a 100644 --- a/Website/index.html +++ b/Website/index.html @@ -46,7 +46,13 @@ - + + + + +
diff --git a/Website/interaction.js b/Website/interaction.js index 454a766..2ab3a84 100644 --- a/Website/interaction.js +++ b/Website/interaction.js @@ -35,16 +35,60 @@ const connectorSelect = document.querySelector("#connectors"); let availableConnectors; GetAvailableControllers() .then(json => availableConnectors = json) - .then(json => console.log(json)); - /*.then(json => + //.then(json => console.log(json)) + .then(json => json.forEach(connector => { - var option = document.createElement('option'); - option.value = connector.name; - option.innerText = connector.name; - taskTypesSelect.appendChild(option); - }));*/ + var option = document.createElement('option'); + option.value = connector; + option.innerText = connector; + connectorSelect.appendChild(option); + }) + ); +const searchPublicationQuery = document.querySelector("#searchPublicationQuery"); +const selectPublication = document.querySelector("#taskSelectOutput"); +searchPublicationQuery.addEventListener("keypress", (event) => { + if(event.key === "Enter"){ + GetPublication(connectorSelect.value, searchPublicationQuery.value) + //.then(json => console.log(json)); + .then(json => + json.forEach(publication => { + var option = CreatePublication(publication); + option.addEventListener("click", () => { + CreateNewMangaDownloadTask( + taskTypesSelect.select, + connectorSelect.value, + publication.internalId + ); + }); + selectPublication.appendChild(option); + } + )); + } +}); +function CreatePublication(publcationData){ + var option = document.createElement('publication'); + var img = document.createElement('img'); + img.src = publication.posterUrl; + option.appendChild(img); + var info = document.createElement('publication-information'); + var connectorName = document.createElement('connector-name'); + connectorName.innerText = connectorSelect.value; + connectorName.className = "pill"; + info.appendChild(connectorName); + var publicationName = document.createElement('publication-name'); + publicationName.innerText = publication.sortName; + info.appendChild(publicationName); + option.appendChild(info); + return option; +} + +const selectRecurrence = document.querySelector("#selectReccurrence"); +function CreateNewMangaDownloadTask(taskType, connectorName, publicationId){ + CreateTask(taskType, selectRecurrence.value, connectorName, publicationId, "en"); + selectPublication.innerHTML = ""; +} const settingsTab = document.querySelector("#settingstab"); const settingsCog = document.querySelector("#settingscog"); diff --git a/Website/style.css b/Website/style.css index efac94f..70a1638 100644 --- a/Website/style.css +++ b/Website/style.css @@ -270,4 +270,14 @@ window-content { width: 100%; top: 60px; left: 0; + display: flex; + flex-direction: column; +} + +#taskSelectOutput{ + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: start; + align-content: start; } \ No newline at end of file From 22d6389d381eaebb47c7ddfabb39b16cc9a3ee74 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 15:17:47 +0200 Subject: [PATCH 10/23] Fix wrong API* Path create task --- Website/apiConnector.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Website/apiConnector.js b/Website/apiConnector.js index 2525040..0a94b9e 100644 --- a/Website/apiConnector.js +++ b/Website/apiConnector.js @@ -65,7 +65,7 @@ async function GetSettings(){ } function CreateTask(taskType, reoccurrence, connectorName, publicationId, language){ - var uri = apiUri + `/Tasks/Create?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}&reoccurenceTime=${reoccurrence}&language=${language}`; + var uri = apiUri + `/Tasks/Create?taskType=${taskType}&connectorName=${connectorName}&publicationId=${publicationId}&reoccurrenceTime=${reoccurrence}&language=${language}`; PostData(uri); } From ccfa213b77b398b18927a8f0022a668245aafe67 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 15:19:09 +0200 Subject: [PATCH 11/23] some bugfixes --- Website/interaction.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Website/interaction.js b/Website/interaction.js index 2ab3a84..05df64c 100644 --- a/Website/interaction.js +++ b/Website/interaction.js @@ -56,7 +56,7 @@ searchPublicationQuery.addEventListener("keypress", (event) => { var option = CreatePublication(publication); option.addEventListener("click", () => { CreateNewMangaDownloadTask( - taskTypesSelect.select, + "DownloadNewChapters", connectorSelect.value, publication.internalId ); @@ -67,7 +67,7 @@ searchPublicationQuery.addEventListener("keypress", (event) => { } }); -function CreatePublication(publcationData){ +function CreatePublication(publication){ var option = document.createElement('publication'); var img = document.createElement('img'); img.src = publication.posterUrl; From 5c4431778e2bd18397d1d23fe6aa9f1555ca184a Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 16:27:09 +0200 Subject: [PATCH 12/23] Task can now be added --- Website/index.html | 2 +- Website/interaction.js | 81 +++++++++++++++++++++++++++++++++--------- Website/style.css | 17 ++++----- 3 files changed, 74 insertions(+), 26 deletions(-) diff --git a/Website/index.html b/Website/index.html index dbd566a..372fbeb 100644 --- a/Website/index.html +++ b/Website/index.html @@ -42,7 +42,7 @@

Add Task

- Close + Close
diff --git a/Website/interaction.js b/Website/interaction.js index 05df64c..78bbeaa 100644 --- a/Website/interaction.js +++ b/Website/interaction.js @@ -18,8 +18,19 @@ const slideOutRightTiming = { easing: "ease-in" } - const taskTypesSelect = document.querySelector("#taskTypes") +const searchPublicationQuery = document.querySelector("#searchPublicationQuery"); +const selectPublication = document.querySelector("#taskSelectOutput"); +const connectorSelect = document.querySelector("#connectors"); +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 closetaskpopup = document.querySelector("#closePopupImg"); + +settingsCog.addEventListener("click", () => slide()); + let availableTaskTypes; GetTaskTypes() .then(json => availableTaskTypes = json) @@ -31,7 +42,6 @@ GetTaskTypes() taskTypesSelect.appendChild(option); })); -const connectorSelect = document.querySelector("#connectors"); let availableConnectors; GetAvailableControllers() .then(json => availableConnectors = json) @@ -45,18 +55,16 @@ GetAvailableControllers() }) ); -const searchPublicationQuery = document.querySelector("#searchPublicationQuery"); -const selectPublication = document.querySelector("#taskSelectOutput"); searchPublicationQuery.addEventListener("keypress", (event) => { if(event.key === "Enter"){ GetPublication(connectorSelect.value, searchPublicationQuery.value) //.then(json => console.log(json)); .then(json => json.forEach(publication => { - var option = CreatePublication(publication); + var option = CreatePublication(publication, connectorSelect.value); option.addEventListener("click", () => { CreateNewMangaDownloadTask( - "DownloadNewChapters", + taskTypesSelect.value, connectorSelect.value, publication.internalId ); @@ -67,14 +75,15 @@ searchPublicationQuery.addEventListener("keypress", (event) => { } }); -function CreatePublication(publication){ +function CreatePublication(publication, connector){ var option = document.createElement('publication'); + option.setAttribute("id", publication.internalId); var img = document.createElement('img'); img.src = publication.posterUrl; option.appendChild(img); var info = document.createElement('publication-information'); var connectorName = document.createElement('connector-name'); - connectorName.innerText = connectorSelect.value; + connectorName.innerText = connector; connectorName.className = "pill"; info.appendChild(connectorName); var publicationName = document.createElement('publication-name'); @@ -84,14 +93,11 @@ function CreatePublication(publication){ return option; } -const selectRecurrence = document.querySelector("#selectReccurrence"); function CreateNewMangaDownloadTask(taskType, connectorName, publicationId){ CreateTask(taskType, selectRecurrence.value, connectorName, publicationId, "en"); selectPublication.innerHTML = ""; } -const settingsTab = document.querySelector("#settingstab"); -const settingsCog = document.querySelector("#settingscog"); var slideIn = true; function slide(){ if(slideIn) @@ -101,12 +107,53 @@ function slide(){ slideIn = !slideIn; } -settingsCog.addEventListener("click", () => slide()); -const addTask = document.querySelector("addPublication"); + +function ResetContent(){ + tasksContent.replaceChildren(); + var add = document.createElement("div"); + add.setAttribute("id", "addPublication") + var plus = document.createElement("p"); + plus.innerText = "+"; + add.appendChild(plus); + add.addEventListener("click", () => ShowNewTaskWindow()); + tasksContent.appendChild(add); +} + +closetaskpopup.addEventListener("click", () => HideNewTaskWindow()) +function ShowNewTaskWindow(){ + addtaskpopup.style.display = "block"; + addtaskpopup.animate(fadeIn, fadeInTiming); +} +function HideNewTaskWindow(){ + addtaskpopup.style.display = "none"; +} + +const fadeIn = [ + { opacity: "0" }, + { opacity: "1" } +]; + +const fadeInTiming = { + duration: 150, + iterations: 1, + fill: "forwards" +} + +ResetContent(); +GetTasks() + //.then(json => console.log(json)) + .then(json => json.forEach(task => { + var publication = CreatePublication(task.publication, task.connectorName); + tasksContent.appendChild(publication); + })); setInterval(() => { - GetTasks().then(json => { - //TODO - }); -}, 1000); \ No newline at end of file + ResetContent(); + GetTasks() + //.then(json => console.log(json)) + .then(json => json.forEach(task => { + var publication = CreatePublication(task.publication, task.connectorName); + tasksContent.appendChild(publication); + })); +}, 5000); \ No newline at end of file diff --git a/Website/style.css b/Website/style.css index 70a1638..9bc2e44 100644 --- a/Website/style.css +++ b/Website/style.css @@ -179,21 +179,19 @@ publication-information { display: flex; flex-direction: column; justify-content: start; - background-image: linear-gradient(to bottom, rgba(245, 246, 252, 0.52), rgba(117, 19, 93, 0.73)); - z-index: 1; } connector-name{ width: fit-content; margin: 10px 0; - z-index: 2; + z-index: 1; } publication-name{ width: fit-content; font-size: 16pt; font-weight: bold; - z-index: 2; + z-index: 1; color: var(--accent-color); } @@ -207,12 +205,14 @@ publication img { } addtask-popup{ - display: block; + display: none; + opacity: 0; width: 100%; height: 100%; top: 0; left: 0; position: absolute; + z-index: 2; } addtask-background { @@ -222,7 +222,6 @@ addtask-background { left: 0; background-color: black; opacity: 0.5; - z-index: 5; } addtask-window { @@ -234,7 +233,7 @@ addtask-window { height: 70%; padding: 0; background-color: var(--accent-color); - z-index: 6; + z-index: 5; border-radius: 5px; } @@ -261,8 +260,10 @@ window-titlebar p { letter-spacing: 1px; } -window-titlebar img { +window-titlebar #closePopupImg { height: 70%; + cursor: pointer; + filter: invert(100%) sepia(0%) saturate(100%) hue-rotate(115deg) brightness(116%) contrast(101%); } window-content { From b0ee888c824575c94e75c20cb40312c0aa496311 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 16:29:09 +0200 Subject: [PATCH 13/23] Exist popup by clicking outside of it --- Website/interaction.js | 5 ++--- Website/style.css | 2 -- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Website/interaction.js b/Website/interaction.js index 78bbeaa..a2f9f8b 100644 --- a/Website/interaction.js +++ b/Website/interaction.js @@ -30,6 +30,8 @@ const addtaskpopup = document.querySelector("addtask-popup"); const closetaskpopup = document.querySelector("#closePopupImg"); settingsCog.addEventListener("click", () => slide()); +closetaskpopup.addEventListener("click", () => HideNewTaskWindow()) +document.querySelector("addtask-background").addEventListener("click", () => HideNewTaskWindow()); let availableTaskTypes; GetTaskTypes() @@ -107,8 +109,6 @@ function slide(){ slideIn = !slideIn; } - - function ResetContent(){ tasksContent.replaceChildren(); var add = document.createElement("div"); @@ -120,7 +120,6 @@ function ResetContent(){ tasksContent.appendChild(add); } -closetaskpopup.addEventListener("click", () => HideNewTaskWindow()) function ShowNewTaskWindow(){ addtaskpopup.style.display = "block"; addtaskpopup.animate(fadeIn, fadeInTiming); diff --git a/Website/style.css b/Website/style.css index 9bc2e44..1b1f565 100644 --- a/Website/style.css +++ b/Website/style.css @@ -206,7 +206,6 @@ publication img { addtask-popup{ display: none; - opacity: 0; width: 100%; height: 100%; top: 0; @@ -246,7 +245,6 @@ window-titlebar { top: 0; border-radius: 5px 5px 0 0; color: var(--accent-color); - display: flex block; flex-direction: row; justify-content: space-between; From 73d98b9c0fbf48707597715443b6059bf087fb7c Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 16:54:39 +0200 Subject: [PATCH 14/23] Add Task Window styling --- Website/index.html | 17 +++++++++------- Website/style.css | 50 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 47 insertions(+), 20 deletions(-) diff --git a/Website/index.html b/Website/index.html index 372fbeb..426dd77 100644 --- a/Website/index.html +++ b/Website/index.html @@ -45,13 +45,16 @@ Close - - - - - + + + + + + + +
diff --git a/Website/style.css b/Website/style.css index 1b1f565..77d3bb6 100644 --- a/Website/style.css +++ b/Website/style.css @@ -5,7 +5,7 @@ --secondary-color: #5bcefa; --accent-color: #fff; --topbar-height: 60px; - box-sizing: content-box; + box-sizing: border-box; } body{ @@ -207,7 +207,7 @@ publication img { addtask-popup{ display: none; width: 100%; - height: 100%; + min-height: 100%; top: 0; left: 0; position: absolute; @@ -224,12 +224,15 @@ addtask-background { } addtask-window { - display: block; + display: flex; + flex-direction: column; + flex-wrap: nowrap; position: absolute; - left: 25%; + left: 12.5%; top: 15%; - width: 50%; - height: 70%; + width: 75%; + min-height: 70%; + max-height: 80%; padding: 0; background-color: var(--accent-color); z-index: 5; @@ -240,9 +243,6 @@ window-titlebar { width: 100%; height: 60px; background-color: var(--primary-color); - position: absolute; - left: 0; - top: 0; border-radius: 5px 5px 0 0; color: var(--accent-color); display: flex block; @@ -261,16 +261,40 @@ window-titlebar p { window-titlebar #closePopupImg { height: 70%; cursor: pointer; + margin-right: 20px; filter: invert(100%) sepia(0%) saturate(100%) hue-rotate(115deg) brightness(116%) contrast(101%); } window-content { - position: absolute; - width: 100%; - top: 60px; - left: 0; display: flex; flex-direction: column; + padding: 20px 5%; + overflow-x: scroll; +} + +addtask-settings{ + display: flex; + justify-content: center; + align-items: center; +} + +addtask-settings select, addtask-settings input{ + padding: 5px; + font-size: 10pt; + border: 1px solid rgba(0,0,0,0.2); + border-radius: 3px; + background-color: transparent; + margin: 10px 0; + width: 150px; +} + +addtask-settings label { + font-weight: bolder; + margin: 0 5px; +} + +addtask-settings addtask-setting{ + margin: 0 15px; } #taskSelectOutput{ From f85e02fb0aac0a78c57e0481c0123b8dfdcde18b Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 16:59:45 +0200 Subject: [PATCH 15/23] empty results when opening addtaskmenu add when searching. --- Website/interaction.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Website/interaction.js b/Website/interaction.js index a2f9f8b..6985228 100644 --- a/Website/interaction.js +++ b/Website/interaction.js @@ -59,6 +59,7 @@ GetAvailableControllers() searchPublicationQuery.addEventListener("keypress", (event) => { if(event.key === "Enter"){ + selectPublication.replaceChildren(); GetPublication(connectorSelect.value, searchPublicationQuery.value) //.then(json => console.log(json)); .then(json => @@ -121,6 +122,7 @@ function ResetContent(){ } function ShowNewTaskWindow(){ + selectPublication.replaceChildren(); addtaskpopup.style.display = "block"; addtaskpopup.animate(fadeIn, fadeInTiming); } From 201773af5071627ecc19e9239f6dc7593de07e72 Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 17:57:48 +0200 Subject: [PATCH 16/23] Craeted Publication Viewer --- Website/index.html | 24 +++++++++--- Website/interaction.js | 85 ++++++++++++++++++++++++++++++------------ Website/style.css | 84 ++++++++++++++++++++++++++++++++++++++--- 3 files changed, 159 insertions(+), 34 deletions(-) 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 @@
-
+ + cover + + 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 From c55738996743be99234563f96881b9784c98d8aa Mon Sep 17 00:00:00 2001 From: glax Date: Tue, 23 May 2023 18:07:15 +0200 Subject: [PATCH 17/23] Delete Task --- Website/index.html | 1 - Website/interaction.js | 34 +++++++++++++++++++++++++--------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/Website/index.html b/Website/index.html index ef1c874..62e8ea6 100644 --- a/Website/index.html +++ b/Website/index.html @@ -46,7 +46,6 @@ -