From 76f6216501df11538923f8ad95f8b0659cba2ffb Mon Sep 17 00:00:00 2001 From: db-2001 Date: Sat, 3 Feb 2024 00:41:12 -0500 Subject: [PATCH 01/16] Initial commit Resized settings pop-up and fixed scrollable behavior, broke everything inside pop-up (on purpose) --- Website/index.html | 11 ++- Website/styles/style_default.css | 121 +++++++++++++++++++------------ 2 files changed, 83 insertions(+), 49 deletions(-) diff --git a/Website/index.html b/Website/index.html index e757319..d0b781f 100644 --- a/Website/index.html +++ b/Website/index.html @@ -56,7 +56,10 @@ - Settings + + Settings + × +

Download Location:

@@ -105,13 +108,13 @@
-
- -
+ + Apply Settings +
diff --git a/Website/styles/style_default.css b/Website/styles/style_default.css index f875cb4..618a9e1 100644 --- a/Website/styles/style_default.css +++ b/Website/styles/style_default.css @@ -2,7 +2,7 @@ --background-color: #030304; --second-background-color: #fff; --primary-color: #f5a9b8; - --secondary-color: #5bcefa; + --secondary-color: #5bcefa; --accent-color: #fff; --topbar-height: 60px; box-sizing: border-box; @@ -153,20 +153,6 @@ content { z-index: 300; } -#settingsPopup popup-content{ - flex-direction: column; - align-items: start; - margin: 15px 10px; -} - -#settingsPopup popup-content > * { - margin: 5px 10px; -} - -#settingsPopup popup-content .title { - font-weight: bolder; -} - #addPublication { cursor: pointer; background-color: var(--secondary-color); @@ -250,6 +236,7 @@ publication-name{ width: fit-content; font-size: 16pt; font-weight: bold; + color: white; } publication-status { @@ -337,49 +324,93 @@ popup{ flex-direction: column; } +titlebar { + display: flex; + flex-direction: row; + height: 30px; + background-color: var(--primary-color); + color: var(--accent-color); + font-weight: bolder; + padding: 5px 10px; + margin: 0; + align-items: center; + position: relative; +} + +popup-title { + font-size: 14pt; + display: flex; + margin-top: 3px; + margin-left: 5px; +} + +popup-close { + border: none; + background-color: inherit; + color: inherit; + font-weight: inherit; + font-size: 16px; + font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; + display: flex; + cursor: pointer; + margin-left: auto; + margin-right: 5; + height: 20px; + width: 20px; + border-radius: 10px; + align-content: center; + justify-content: center; +} + +popup-close:hover { + background-color: var(--secondary-color); +} + +apply-settings { + border-style: solid; + border-width: 2px; + background-color: var(--secondary-color); + color: var(--accent-color); + font-weight: inherit; + font-size: inherit; + font-family: inherit; + display: flex; + cursor: pointer; + margin-left: auto; + margin-right: -5px; + padding: 5px 20px; + border-radius: 20px; + height: 20px; + align-items: center; + border-color: var(--primary-color); +} + +apply-settings:hover { + border-color: var(--accent-color); +} popup popup-window { position: absolute; z-index: 3; - left: 25%; - top: 100px; - width: 50%; + left: 10%; + top: 10%; + height: 80%; + width: 80%; display: flex; flex-direction: column; background-color: var(--second-background-color); - border-radius: 3px; + border-radius: 15px; overflow: hidden; } -popup popup-window popup-title { - height: 30px; - font-size: 14pt; - font-weight: bolder; - padding: 5px 10px; - margin: 0; - display: flex; - align-items: center; - background-color: var(--primary-color); - color: var(--accent-color) -} - popup popup-window popup-content{ - margin: 15px 10px; display: flex; align-items: center; - justify-content: space-evenly; -} - -popup popup-window popup-content div > * { - margin: 2px 3px 0 0; -} - -popup popup-window popup-content input, select { - padding: 3px 4px; - width: 130px; - border: 1px solid lightgrey; - background-color: var(--accent-color); - border-radius: 3px; + height: calc(100% - 60px); + overflow-y: auto; + overflow-x: hidden; + scrollbar-width: thin; + scrollbar-color: var(--secondary-color) var(--accent-color); } #newMangaPopup > div { From f50990dafbb2d36c4b4aef6ea32c5815076ccb6a Mon Sep 17 00:00:00 2001 From: db-2001 Date: Sun, 4 Feb 2024 15:47:13 -0500 Subject: [PATCH 02/16] Reimplemented Library and Notification connectors Added Test and Rest API calls, API side will need to be updated. Separated out CSS files for future expansion. --- Website/apiConnector.js | 52 ++ Website/connector-icons/gotify-logo.png | Bin 0 -> 64843 bytes Website/connector-icons/kavita.png | Bin 0 -> 440 bytes Website/connector-icons/komga.svg | 113 +++ Website/connector-icons/lunasea.png | Bin 0 -> 65803 bytes Website/connector-icons/ntfy.svg | 40 + Website/index.html | 123 ++- Website/interaction.js | 96 ++- .../styles/{style_default.css => base.css} | 368 ++++----- Website/styles/card_compact.css | 159 ++++ Website/styles/card_hover.css | 172 +++++ Website/styles/style_mangahover.css | 727 ------------------ 12 files changed, 878 insertions(+), 972 deletions(-) create mode 100644 Website/connector-icons/gotify-logo.png create mode 100644 Website/connector-icons/kavita.png create mode 100644 Website/connector-icons/komga.svg create mode 100644 Website/connector-icons/lunasea.png create mode 100644 Website/connector-icons/ntfy.svg rename Website/styles/{style_default.css => base.css} (78%) create mode 100644 Website/styles/card_compact.css create mode 100644 Website/styles/card_hover.css delete mode 100644 Website/styles/style_mangahover.css diff --git a/Website/apiConnector.js b/Website/apiConnector.js index 580b821..70e6a7c 100644 --- a/Website/apiConnector.js +++ b/Website/apiConnector.js @@ -173,31 +173,82 @@ function RefreshLibraryMetadata() { PostData(uri); } +//Komga function UpdateKomga(komgaUrl, komgaAuth){ var uri = `${apiUri}/LibraryConnectors/Update?libraryConnector=Komga&komgaUrl=${komgaUrl}&komgaAuth=${komgaAuth}`; PostData(uri); } +function ResetKomga(){ + var uri = `${apiUri}/LibraryConnectors/Reset?libraryConnector=Komga`; +} + +function TestKomga(komgaUrl, komgaAuth){ + var uri = `${apiUri}/LibraryConnectors/Test?libraryConnector=Komga&komgaUrl=${komgaUrl}&komgaAuth=${komgaAuth}`; + PostData(uri); +} + + +//Kavita function UpdateKavita(kavitaUrl, kavitaUsername, kavitaPassword){ var uri = `${apiUri}/LibraryConnectors/Update?libraryConnector=Kavita&kavitaUrl=${kavitaUrl}&kavitaUsername=${kavitaUsername}&kavitaPassword=${kavitaPassword}`; PostData(uri); } +function ResetKavita(){ + var uri = `${apiUri}/LibraryConnectors/Reset?libraryConnector=Kavita`; +} + +function TestKavita(kavitaUrl, kavitaUsername, kavitaPassword){ + var uri = `${apiUri}/LibraryConnectors/Test?libraryConnector=Kavita&kavitaUrl=${kavitaUrl}&kavitaUsername=${kavitaUsername}&kavitaPassword=${kavitaPassword}`; + PostData(uri); +} + +//Gotify function UpdateGotify(gotifyUrl, gotifyAppToken){ var uri = `${apiUri}/NotificationConnectors/Update?notificationConnector=Gotify&gotifyUrl=${gotifyUrl}&gotifyAppToken=${gotifyAppToken}`; PostData(uri); } +function ResetGotify(){ + var uri = `${apiUri}/NotificationConnectors/Reset?libraryConnector=Gotify`; +} + +function TestGotify(gotifyUrl, gotifyAppToken){ + var uri = `${apiUri}/NotificationConnectors/Test?notificationConnector=Gotify&gotifyUrl=${gotifyUrl}&gotifyAppToken=${gotifyAppToken}`; + PostData(uri); +} + +//LunaSea function UpdateLunaSea(lunaseaWebhook){ var uri = `${apiUri}/NotificationConnectors/Update?notificationConnector=LunaSea&lunaseaWebhook=${lunaseaWebhook}`; PostData(uri); } +function ResetLunaSea(){ + var uri = `${apiUri}/NotificationConnectors/Reset?libraryConnector=LunaSea`; +} + +function TestLunaSea(lunaseaWebhook){ + var uri = `${apiUri}/NotificationConnectors/Test?notificationConnector=LunaSea&lunaseaWebhook=${lunaseaWebhook}`; + PostData(uri); +} + +//Ntfy function UpdateNtfy(ntfyEndpoint, ntfyAuth){ var uri = `${apiUri}/NotificationConnectors/Update?notificationConnector=Ntfy&ntfyUrl=${ntfyEndpoint}&ntfyAuth=${ntfyAuth}`; PostData(uri); } +function ResetNtfy(){ + var uri = `${apiUri}/NotificationConnectors/Reset?libraryConnector=Ntfy`; +} + +function TestNtfy(ntfyEndpoint, ntfyAuth){ + var uri = `${apiUri}/NotificationConnectors/Test?notificationConnector=Ntfy&ntfyUrl=${ntfyEndpoint}&ntfyAuth=${ntfyAuth}`; + PostData(uri); +} + function UpdateUserAgent(userAgent){ var uri = `${apiUri}/Settings/userAgent?userAgent=${userAgent}`; PostData(uri); @@ -216,5 +267,6 @@ function CancelJob(jobId){ async function GetLogmessages(count){ var uri = `${apiUri}/LogMessages?count=${count}`; let json = await GetData(uri); + console.log(json); return json; } \ No newline at end of file diff --git a/Website/connector-icons/gotify-logo.png b/Website/connector-icons/gotify-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..5d290046dc49cc17ddec1d50083b2ec1bbe3dc40 GIT binary patch literal 64843 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
%HqMX7|yh_e+2vd9oVCpEq`i2IQfsO6CezERH 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 literal 0 HcmV?d00001 diff --git a/Website/connector-icons/kavita.png b/Website/connector-icons/kavita.png new file mode 100644 index 0000000000000000000000000000000000000000..00a4ba7759a1d079c936c5d4b0642b8ab785c207 GIT binary patch literal 440 zcmV;p0Z0CcP)%$CXONluE{w|NsB^`TIglaz=`S^7Hum`~2hP z?xW(!NUx1p(f6z9`&ZHT>iF{N?DC-D$7au@WNnN{qKZa?fkRkzTGIC~E^}i5000Yg zQchC<`01J>3)0DoS1{={&IJGf0QpHoK~y-)g_G&B!ypKSMPs9t)a2go`};p-rJ`Nz zgzra&2}h0zpk7#SdJUj^n%-kK>Ebuy`x7)ZqtuSy=LE(I^VdQozNAr-mQsSCpng>@#u5!8EE^mWvrJ)ta iUS1q|_2lIh*Z%0sw0000 + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Website/connector-icons/lunasea.png b/Website/connector-icons/lunasea.png new file mode 100644 index 0000000000000000000000000000000000000000..868e849ae90e35f0a0b6255a796db9257cada1e6 GIT binary patch literal 65803 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 Dz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Website/index.html b/Website/index.html index d0b781f..ab12385 100644 --- a/Website/index.html +++ b/Website/index.html @@ -3,7 +3,8 @@ Tranga - + + @@ -56,11 +57,83 @@ - + Settings × - + + + + + + + + + +

Download Location:

@@ -69,37 +142,6 @@

API-URI

-
- Komga -
Configured: ✅❌
- - - -
-
- Kavita -
Configured: ✅❌
- - - -
-
- Gotify -
Configured: ✅❌
- - -
-
- LunaSea -
Configured: ✅❌
- -
-
- Ntfy -
Configured: ✅❌
- - -
UserAgent
@@ -108,13 +150,14 @@
-
- -
- - Apply Settings - + +
+ Refresh Library Metadata + Apply Settings +
+
+
diff --git a/Website/interaction.js b/Website/interaction.js index 2d8bdb5..87bc1fc 100644 --- a/Website/interaction.js +++ b/Website/interaction.js @@ -59,18 +59,21 @@ function Setup(){ loaderdiv.style.display = 'none'; GetAvailableNotificationConnectors().then((json) => { + //console.log(json); json.forEach(connector => { notificationConnectorTypes[connector.Key] = connector.Value; }); }); GetAvailableLibraryConnectors().then((json) => { + //console.log(json); json.forEach(connector => { libraryConnectorTypes[connector.Key] = connector.Value; }); }); GetAvailableControllers().then((json) => { + //console.log(json); newMangaConnector.replaceChildren(); json.forEach(connector => { var option = document.createElement('option'); @@ -89,10 +92,10 @@ function Setup(){ //console.log(json.styleSheet); if (json.styleSheet == 'hover') { settingMangaHoverCheckbox.checked = true; - document.getElementById('pagestyle').setAttribute('href', 'styles/style_mangahover.css'); + document.getElementById('librarystyle').setAttribute('href', 'styles/card_hover.css'); } else { settingMangaHoverCheckbox.checked = false; - document.getElementById('pagestyle').setAttribute('href', 'styles/style_default.css'); + document.getElementById('librarystyle').setAttribute('href', 'styles/card_compact.css'); } }); setInterval(() => { @@ -105,11 +108,11 @@ Setup(); function updateCSS(){ if (document.getElementById("mangaHoverCheckbox").checked == true){ ChangeStyleSheet('hover') - document.getElementById('pagestyle').setAttribute('href', 'styles/style_mangahover.css'); + document.getElementById('librarystyle').setAttribute('href', 'styles/card_hover.css'); //console.log('Changing theme to mangahover') } else { ChangeStyleSheet('default'); - document.getElementById('pagestyle').setAttribute('href', 'styles/style_default.css'); + document.getElementById('librarystyle').setAttribute('href', 'styles/card_compact.css'); //console.log('Changing theme to default') } } @@ -338,11 +341,11 @@ settingUserAgent.addEventListener("keypress", (event) => { if(event.key === "Ent settingApiUri.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); }); function OpenSettings(){ - settingGotifyConfigured.innerText = "❌"; - settingLunaseaConfigured.innerText = "❌"; - settingNtfyConfigured.innerText = "❌"; - settingKavitaConfigured.innerText = "❌"; - settingKomgaConfigured.innerText = "❌"; + settingGotifyConfigured.setAttribute("configuration", "Not Configured"); + settingLunaseaConfigured.setAttribute("configuration", "Not Configured"); + settingNtfyConfigured.setAttribute("configuration", "Not Configured"); + settingKavitaConfigured.setAttribute("configuration", "Not Configured"); + settingKomgaConfigured.setAttribute("configuration", "Not Configured"); settingKomgaUrl.value = ""; settingKomgaUser.value = ""; settingKomgaPass.value = ""; @@ -366,10 +369,10 @@ function OpenSettings(){ //console.log(json.styleSheet); if (json.styleSheet == 'hover') { settingMangaHoverCheckbox.checked = true; - document.getElementById('pagestyle').setAttribute('href', 'styles/style_mangahover.css'); + document.getElementById('librarystyle').setAttribute('href', 'styles/card_hover.css'); } else { settingMangaHoverCheckbox.checked = false; - document.getElementById('pagestyle').setAttribute('href', 'styles/style_default.css'); + document.getElementById('librarystyle').setAttribute('href', 'styles/card_compact.css'); } }); GetLibraryConnectors().then((json) => { @@ -377,16 +380,16 @@ function OpenSettings(){ json.forEach(connector => { switch(libraryConnectorTypes[connector.libraryType]){ case "Kavita": - settingKavitaConfigured.innerText = "✅"; - settingKavitaUrl.placeholder = connector.baseUrl; - settingKavitaUser.placeholder = "***"; - settingKavitaPass.placeholder = "***"; + settingKavitaConfigured.setAttribute("configuration", "Active"); + settingKavitaUrl.value = connector.baseUrl; + settingKavitaUser.value = "***"; + settingKavitaPass.value = "***"; break; case "Komga": - settingKomgaConfigured.innerText = "✅"; - settingKomgaUrl.placeholder = connector.baseUrl; - settingKomgaUser.placeholder = "***"; - settingKomgaPass.placeholder = "***"; + settingKomgaConfigured.setAttribute("configuration", "Active"); + settingKomgaUrl.value = connector.baseUrl; + settingKomgaUser.value = "***"; + settingKomgaPass.value = "***"; break; default: console.log("Unknown type"); @@ -396,22 +399,22 @@ function OpenSettings(){ }); }); GetNotificationConnectors().then((json) => { - //console.log(json); + console.log(json); json.forEach(connector => { switch(notificationConnectorTypes[connector.notificationConnectorType]){ case "Gotify": - settingGotifyUrl.placeholder = connector.endpoint; - settingGotifyAppToken.placeholder = "***"; - settingGotifyConfigured.innerText = "✅"; + settingGotifyUrl.value = connector.endpoint; + settingGotifyAppToken.value = "***"; + settingGotifyConfigured.setAttribute("configuration", "Active"); break; case "LunaSea": - settingLunaseaConfigured.innerText = "✅"; - settingLunaseaWebhook.placeholder = connector.id; + settingLunaseaConfigured.setAttribute("configuration", "Active"); + settingLunaseaWebhook.value = connector.id; break; case "Ntfy": - settingNtfyConfigured.innerText = "✅"; - settingNtfyEndpoint.placeholder = connector.endpoint; - settingNtfyAuth.placeholder = "***"; + settingNtfyConfigured.setAttribute("configuration", "Active"); + settingNtfyEndpoint.value = connector.endpoint; + settingNtfyAuth.value = "***"; break; default: console.log("Unknown type"); @@ -422,6 +425,43 @@ function OpenSettings(){ }); } +//Functions for clearing/resetting connectors in the settings pop-up +function ClearKomga(){ + settingKomgaUrl.value = ""; + settingKomgaUser.value = ""; + settingKomgaPass.value = ""; + settingKomgaConfigured.setAttribute("configuration", "Connector Not Configured"); + ResetKomga(); +} + +function ClearKavita(){ + settingKavitaUrl.value = ""; + settingKavitaUser.value = ""; + settingKavitaPass.value = ""; + settingKavitaConfigured.setAttribute("configuration", "Connector Not Configured"); + ResetKavita(); +} + +function ClearGotify(){ + settingGotifyUrl.value = ""; + settingGotifyAppToken.value = "" + settingGotifyConfigured.setAttribute("configuration", "Connector Not Configured"); + ResetGotify(); +} + +function ClearLunasea(){ + settingLunaseaWebhook.value = ""; + settingLunaseaConfigured.setAttribute("configuration", "Connector Not Configured"); + ResetLunaSea(); +} + +function ClearNtfy(){ + settingNtfyEndpoint.value = ""; + settingNtfyAuth.value = ""; + settingNtfyConfigured.setAttribute("configuration", "Connector Not Configured"); + ResetNtfy(); +} + function UpdateSettings(){ if(settingApiUri.value != ""){ apiUri = settingApiUri.value; diff --git a/Website/styles/style_default.css b/Website/styles/base.css similarity index 78% rename from Website/styles/style_default.css rename to Website/styles/base.css index 618a9e1..3aa4c77 100644 --- a/Website/styles/style_default.css +++ b/Website/styles/base.css @@ -3,7 +3,12 @@ --second-background-color: #fff; --primary-color: #f5a9b8; --secondary-color: #5bcefa; + --blur-background: rgba(245, 169, 184, 0.58); --accent-color: #fff; + /* --primary-color: green; + --secondary-color: gold; + --blur-background: rgba(86, 131, 36, 0.8); + --accent-color: olive; */ --topbar-height: 60px; box-sizing: border-box; } @@ -153,166 +158,6 @@ content { z-index: 300; } -#addPublication { - cursor: pointer; - background-color: var(--secondary-color); - width: 180px; - height: 300px; - border-radius: 5px; - margin: 10px 10px; - padding: 15px 20px; - position: relative; -} - -#addPublication p{ - width: 100%; - text-align: center; - font-size: 150pt; - vertical-align: middle; - line-height: 300px; - margin: 0; - color: var(--accent-color); -} - -.pill { - flex-grow: 0; - height: 14pt; - font-size: 12pt; - border-radius: 9pt; - background-color: var(--primary-color); - padding: 2pt 17px; - color: black; -} - -publication{ - cursor: pointer; - background-color: var(--secondary-color); - width: 180px; - height: 300px; - border-radius: 5px; - margin: 10px 10px; - padding: 15px 19px; - position: relative; - flex-shrink: 0; -} - -publication::after{ - content: ''; - position: absolute; - left: 0; top: 0; - border-radius: 5px; - width: 100%; height: 100%; - background: linear-gradient(rgba(0,0,0,0.8), rgba(0, 0, 0, 0.7),rgba(0, 0, 0, 0.2)); -} - -publication-information { - display: flex; - flex-direction: column; - justify-content: start; -} - -publication-details { - display: flex; - flex-direction: column; - justify-content: start; -} - -publication-information * { - z-index: 1; - color: var(--accent-color); -} - -publication-details * { - z-index: 1; - color: var(--accent-color); -} - -connector-name{ - width: fit-content; - margin: 10px 0; -} - -publication-name{ - width: fit-content; - font-size: 16pt; - font-weight: bold; - color: white; -} - -publication-status { - display:block; - height: 10px; - width: 10px; - border-radius: 50%; - margin: 5px; - position: absolute; - top: 5px; - right: 5px; - z-index: 2; - box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 10px, rgb(51, 51, 51) 0px 0px 10px 3px; -} - -publication-status::after { - content: attr(release-status); - position: absolute; - top: 0; - right: 0; - - visibility: hidden; - - /*Text Properties*/ - font-size:10pt; - font-weight:bold; - color:white; - text-align: center; - - /*Size*/ - padding: 3px 8px; - border-radius: 6px; - border: 0px; - background-color: inherit; -} - -publication-status:hover::after{ - visibility:visible; -} - - -publication-status[release-status="Ongoing"]{ - background-color: limegreen; -} - -publication-status[release-status="Completed"]{ - background-color: blueviolet; -} - -publication-status[release-status="On Hiatus"]{ - background-color: darkorange; -} - -publication-status[release-status="Cancelled"]{ - background-color: firebrick; -} - -publication-status[release-status="Upcoming"]{ - background-color: aqua; -} - -publication-status[release-status="Status Unavailable"]{ - background-color: gray; -} - -publication img { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: cover; - z-index: 0; - border-radius: 5px; -} - popup{ display: none; width: 100%; @@ -324,15 +169,14 @@ popup{ flex-direction: column; } -titlebar { +border-bar { display: flex; flex-direction: row; - height: 30px; background-color: var(--primary-color); color: var(--accent-color); font-weight: bolder; - padding: 5px 10px; - margin: 0; + padding: 7px 5px; + margin:0; align-items: center; position: relative; } @@ -349,15 +193,15 @@ popup-close { background-color: inherit; color: inherit; font-weight: inherit; - font-size: 16px; + font-size: 27px; font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; display: flex; cursor: pointer; margin-left: auto; margin-right: 5; - height: 20px; - width: 20px; - border-radius: 10px; + height: 32px; + width: 32px; + border-radius: 16px; align-content: center; justify-content: center; } @@ -366,26 +210,47 @@ popup-close:hover { background-color: var(--secondary-color); } -apply-settings { +border-bar > .button-container { + display: flex; + flex-direction: row; + align-items: center; + flex-wrap: wrap; + margin-right: 0; + margin-left: auto; +} + +border-bar-button { border-style: solid; border-width: 2px; - background-color: var(--secondary-color); - color: var(--accent-color); + background-color: inherit; + color: var(--second-background-color); font-weight: inherit; font-size: inherit; font-family: inherit; display: flex; cursor: pointer; - margin-left: auto; - margin-right: -5px; + margin: 0px 5px; padding: 5px 20px; border-radius: 20px; height: 20px; align-items: center; + border-color: var(--accent-color); + -webkit-user-select: none; /* Safari */ + -ms-user-select: none; /* IE 10 and IE 11 */ + user-select: none; /* Standard syntax */ +} + +border-bar-button:hover { + border-color: var(--secondary-color); +} + +border-bar-button.primary { + background-color: var(--secondary-color); + color: var(--accent-color); border-color: var(--primary-color); } -apply-settings:hover { +border-bar-button.primary:hover { border-color: var(--accent-color); } @@ -405,12 +270,161 @@ popup popup-window { popup popup-window popup-content{ display: flex; - align-items: center; + flex-direction: column; + align-items: left; height: calc(100% - 60px); overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; - scrollbar-color: var(--secondary-color) var(--accent-color); + scrollbar-color: var(--secondary-color) var(--second-background-color); +} + +popup-content > .popup-section { + margin: 5px; + margin-bottom: 10px; + font-size: 10pt; + font-weight: 100; + display: block; + border-top-style: solid; + border-top-width: 1px; + border-top-color: lightgray; + width: 100%; + padding: 10px; +} + +.section-content { + display: flex; + flex-direction: row; + width: 100%; + flex-wrap: wrap; +} + +.section-item { + display: flex; + flex-direction: column; + width: 22%; + min-width: 300px; + height: auto; + border-radius: 10px; + border-style: solid; + border-width: 1px; + border-color: lightgray; + margin: 7px; + padding: 5px; +} + +.section-item > .title { + font-weight: bold; + vertical-align: bottom; + line-height: 32px; + font-size: 12pt; + width: 100%; +} + + +.section-item > .title > img { + width: auto; + height: 32px; + margin: 5px; + vertical-align: middle; + border-radius: 5px; +} + +.section-item > .title > connector-configured { + display:block; + height: 10px; + width: 10px; + border-radius: 50%; + margin: 5px; + float: right; + top: 5px; + right: 5px; +} + +.section-item > .title > connector-configured::after { + display: block; + content: attr(configuration); + float: right; + width: max-content; + width: -webkit-max-content; + width: -mox-max-content; + width: intrinsic; + + visibility: hidden; + + /*Text Properties*/ + font-size:8pt; + font-weight:bold; + color:white; + text-align: right; + + /*Size*/ + padding: 0px 8px; + border-radius: 6px; + border: 0px; + background-color: inherit; +} + +.section-item > .title > connector-configured:hover::after{ + visibility:visible; +} + +.section-item > .title > connector-configured[configuration="Active"] { + background-color: limegreen; +} + +.section-item > .title > connector-configured[configuration="Not Configured"] { + background-color: gray; +} + + + +.section-item > input { + margin: 2px; + padding: 2px; + height: 20px; + border-radius: 10px; + border-style: solid; + outline: none; +} +.section-item > input:focus { + border-color: var(--secondary-color); +} + +.section-buttons-container { + display: flex; + flex-direction: row; + align-items: center; + position: relative; + margin-left: auto; + margin-top: auto; + margin-bottom: 0; + margin-right: 0; +} + +.section-buttons-container > .section-button { + font-size: 12px; + padding: 3px 10px; + margin: 3px; + border-radius: 5px; + border-style: solid; + border-width: 1px; + border-color: lightgray; + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-user-select: none; /* Safari */ + -ms-user-select: none; /* IE 10 and IE 11 */ + user-select: none; /* Standard syntax */ +} + +.section-button#reset:hover { + color: red; + border-color: red; +} +.section-buttons-container > .section-button:hover { + border-color: var(--secondary-color); + color: var(--secondary-color); } #newMangaPopup > div { @@ -471,7 +485,7 @@ blur-background { height: 100%; position: absolute; left: 0; - background: rgba(245, 169, 184, 0.58); + background: var(--blur-background); box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); backdrop-filter: blur(4.5px); -webkit-backdrop-filter: blur(4.5px); diff --git a/Website/styles/card_compact.css b/Website/styles/card_compact.css new file mode 100644 index 0000000..74a6648 --- /dev/null +++ b/Website/styles/card_compact.css @@ -0,0 +1,159 @@ +#addPublication { + cursor: pointer; + background-color: var(--secondary-color); + width: 180px; + height: 300px; + border-radius: 5px; + margin: 10px 10px; + padding: 15px 20px; + position: relative; +} + +#addPublication p{ + width: 100%; + text-align: center; + font-size: 150pt; + vertical-align: middle; + line-height: 300px; + margin: 0; + color: var(--accent-color); +} + +.pill { + flex-grow: 0; + height: 14pt; + font-size: 12pt; + border-radius: 9pt; + background-color: var(--primary-color); + padding: 2pt 17px; + color: black; +} + +publication{ + cursor: pointer; + background-color: var(--secondary-color); + width: 180px; + height: 300px; + border-radius: 5px; + margin: 10px 10px; + padding: 15px 19px; + position: relative; + flex-shrink: 0; +} + +publication::after{ + content: ''; + position: absolute; + left: 0; top: 0; + border-radius: 5px; + width: 100%; height: 100%; + background: linear-gradient(rgba(0,0,0,0.8), rgba(0, 0, 0, 0.7),rgba(0, 0, 0, 0.2)); +} + +publication-information { + display: flex; + flex-direction: column; + justify-content: start; +} + +publication-details { + display: flex; + flex-direction: column; + justify-content: start; +} + +publication-information * { + z-index: 1; + color: var(--accent-color); +} + +publication-details * { + z-index: 1; + color: var(--accent-color); +} + +connector-name{ + width: fit-content; + margin: 10px 0; +} + +publication-name{ + width: fit-content; + font-size: 16pt; + font-weight: bold; + color: white; +} + +publication-status { + display:block; + height: 10px; + width: 10px; + border-radius: 50%; + margin: 5px; + position: absolute; + top: 5px; + right: 5px; + z-index: 2; + box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 10px, rgb(51, 51, 51) 0px 0px 10px 3px; +} + +publication-status::after { + content: attr(release-status); + position: absolute; + top: 0; + right: 0; + + visibility: hidden; + + /*Text Properties*/ + font-size:10pt; + font-weight:bold; + color:white; + text-align: center; + + /*Size*/ + padding: 3px 8px; + border-radius: 6px; + border: 0px; + background-color: inherit; +} + +publication-status:hover::after{ + visibility:visible; +} + + +publication-status[release-status="Ongoing"]{ + background-color: limegreen; +} + +publication-status[release-status="Completed"]{ + background-color: blueviolet; +} + +publication-status[release-status="On Hiatus"]{ + background-color: darkorange; +} + +publication-status[release-status="Cancelled"]{ + background-color: firebrick; +} + +publication-status[release-status="Upcoming"]{ + background-color: aqua; +} + +publication-status[release-status="Status Unavailable"]{ + background-color: gray; +} + +publication img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: 0; + border-radius: 5px; +} \ No newline at end of file diff --git a/Website/styles/card_hover.css b/Website/styles/card_hover.css new file mode 100644 index 0000000..6d830ed --- /dev/null +++ b/Website/styles/card_hover.css @@ -0,0 +1,172 @@ +#addPublication { + cursor: pointer; + background-color: var(--secondary-color); + width: 180px; + height: 300px; + border-radius: 5px; + margin: 10px 10px; + padding: 15px 20px; + position: relative; +} + +#addPublication p{ + width: 100%; + text-align: center; + font-size: 150pt; + vertical-align: middle; + line-height: 300px; + margin: 0; + color: var(--accent-color); +} + +.pill { + flex-grow: 0; + height: 14pt; + font-size: 12pt; + border-radius: 9pt; + background-color: var(--primary-color); + padding: 2pt 17px; + color: black; +} + +publication{ + cursor: pointer; + background-color: var(--secondary-color); + width: 180px; + height: 300px; + border-radius: 5px; + margin: 10px 10px; + padding: 15px 19px; + position: relative; + flex-shrink: 0; +} + +publication:hover { + background-color: black; +} + +publication:hover::after{ + background: linear-gradient(rgba(0,0,0,0.8), rgba(0, 0, 0, 0.7),rgba(0, 0, 0, 0.2)); +} + +publication:hover > publication-information { + display: flex; + opacity:1; +} + +publication::after{ + content: ''; + position: absolute; + left: 0; top: 0; + border-radius: 5px; + width: 100%; height: 100%; + background: none; +} + +publication-information { + display: none; + flex-direction: column; + justify-content: start; +} + +publication-information * { + z-index: 1; + color: white; +} + +connector-name{ + width: fit-content; + margin: 10px 0; +} + +publication-name{ + width: fit-content; + font-size: 16pt; + font-weight: bold; +} + +publication-status { + display:block; + height: 10px; + width: 10px; + border-radius: 50%; + margin: 5px; + position: absolute; + top: 5px; + right: 5px; + z-index: 2; + box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 10px, rgb(51, 51, 51) 0px 0px 10px 3px; +} + +publication-status::after { + content: attr(release-status); + position: absolute; + top: 0; + right: 0; + + visibility: hidden; + + /*Text Properties*/ + font-size:10pt; + font-weight:bold; + color:white; + text-align: center; + + /*Size*/ + padding: 3px 8px; + border-radius: 6px; + border: 0px; + background-color: inherit; +} + +publication-status:hover::after{ + visibility:visible; +} + + +publication-status[release-status="Ongoing"]{ + background-color: limegreen; +} + +publication-status[release-status="Completed"]{ + background-color: blueviolet; +} + +publication-status[release-status="On Hiatus"]{ + background-color: darkorange; +} + +publication-status[release-status="Cancelled"]{ + background-color: firebrick; +} + +publication-status[release-status="Upcoming"]{ + background-color: aqua; +} + +publication-status[release-status="Status Unavailable"]{ + background-color: gray; +} + + +publication-details { + display: flex; + flex-direction: column; + justify-content: start; +} + +publication-details * { + z-index: 1; + color: var(--accent-color); +} + +publication img { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; + z-index: 0; + border-radius: 5px; +} \ No newline at end of file diff --git a/Website/styles/style_mangahover.css b/Website/styles/style_mangahover.css deleted file mode 100644 index f0a5838..0000000 --- a/Website/styles/style_mangahover.css +++ /dev/null @@ -1,727 +0,0 @@ -:root{ - --background-color: #030304; - --second-background-color: #fff; - --primary-color: #f5a9b8; - --secondary-color: #5bcefa; - --accent-color: #fff; - --topbar-height: 60px; - box-sizing: border-box; -} - -body{ - padding: 0; - margin: 0; - height: 100vh; - background-color: var(--background-color); - font-family: "Inter", sans-serif; - overflow-x: hidden; -} - -wrapper { - display: flex; - flex-flow: column; - flex-wrap: nowrap; - height: 100vh; -} - -background-placeholder{ - background-color: var(--second-background-color); - opacity: 1; - position: absolute; - width: 100%; - height: 100%; - border-radius: 0 0 5px 0; - z-index: -1; -} - -topbar { - display: flex; - align-items: center; - height: var(--topbar-height); - background-color: var(--secondary-color); - z-index: 100; - box-shadow: 0 0 20px black; -} - -titlebox { - position: relative; - display: flex; - margin: 0 0 0 40px; - height: 100%; - align-items:center; - justify-content:center; -} - -titlebox span{ - cursor: default; - font-size: 24pt; - font-weight: bold; - background: linear-gradient(150deg, var(--primary-color), var(--accent-color)); - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; - margin-left: 20px; -} - -titlebox img { - height: 100%; - margin-right: 10px; - cursor: grab; -} - -spacer{ - flex-grow: 1; -} - -searchdiv{ - display: block; - margin: 0 10px 0 0; -} - -#searchbox { - padding: 3px 10px; - border: 0; - border-radius: 4px; - font-size: 14pt; - width: 250px; -} - -#settingscog { - cursor: pointer; - margin: 0px 30px; - height: 50%; - filter: invert(100%) sepia(0%) saturate(7465%) hue-rotate(115deg) brightness(116%) contrast(101%); -} - -viewport { - position: relative; - display: flex; - flex-flow: row; - flex-wrap: nowrap; - flex-grow: 1; - height: 100%; - overflow-y: scroll; - scrollbar-color: var(--accent-color) var(--primary-color); - scrollbar-width: thin; -} - -footer { - display: flex; - flex-direction: row; - flex-wrap: nowrap; - width: 100%; - height: 40px; - align-items: center; - justify-content: center; - background-color: var(--primary-color); - align-content: center; -} - -footer > div { - height: 100%; - margin: 0 30px; - display: flex; - flex-direction: row; - flex-wrap: nowrap; - align-items: center; - cursor: pointer; -} - -footer > div > *{ - height: 40%; - margin: 0 5px; -} - -#madeWith { - flex-grow: 1; - text-align: right; - margin-right: 20px; - cursor: url("media/blahaj.png"), grab; -} - -content { - position: relative; - flex-grow: 1; - border-radius: 5px; - display: flex; - flex-direction: row; - flex-wrap: wrap; - justify-content: start; - align-content: start; -} - -#settingsPopup{ - z-index: 300; -} - -#settingsPopup popup-content{ - flex-direction: column; - align-items: start; - margin: 15px 10px; -} - -#settingsPopup popup-content > * { - margin: 5px 10px; -} - -#settingsPopup popup-content .title { - font-weight: bolder; -} - -#addPublication { - cursor: pointer; - background-color: var(--secondary-color); - width: 180px; - height: 300px; - border-radius: 5px; - margin: 10px 10px; - padding: 15px 20px; - position: relative; -} - -#addPublication p{ - width: 100%; - text-align: center; - font-size: 150pt; - vertical-align: middle; - line-height: 300px; - margin: 0; - color: var(--accent-color); -} - -.pill { - flex-grow: 0; - height: 14pt; - font-size: 12pt; - border-radius: 9pt; - background-color: var(--primary-color); - padding: 2pt 17px; - color: black; -} - -publication{ - cursor: pointer; - background-color: var(--secondary-color); - width: 180px; - height: 300px; - border-radius: 5px; - margin: 10px 10px; - padding: 15px 19px; - position: relative; - flex-shrink: 0; -} - -publication:hover { - background-color: black; -} - -publication:hover::after{ - background: linear-gradient(rgba(0,0,0,0.8), rgba(0, 0, 0, 0.7),rgba(0, 0, 0, 0.2)); -} - -publication:hover > publication-information { - display: flex; - opacity:1; -} - -publication::after{ - content: ''; - position: absolute; - left: 0; top: 0; - border-radius: 5px; - width: 100%; height: 100%; -} - -publication-information { - display: none; - flex-direction: column; - justify-content: start; -} - -publication-information * { - z-index: 1; - color: var(--accent-color); -} - -connector-name{ - width: fit-content; - margin: 10px 0; -} - -publication-name{ - width: fit-content; - font-size: 16pt; - font-weight: bold; -} - -publication-status { - display:block; - height: 10px; - width: 10px; - border-radius: 50%; - margin: 5px; - position: absolute; - top: 5px; - right: 5px; - z-index: 2; - box-shadow: rgba(0, 0, 0, 0.16) 0px 1px 10px, rgb(51, 51, 51) 0px 0px 10px 3px; -} - -publication-status::after { - content: attr(release-status); - position: absolute; - top: 0; - right: 0; - - visibility: hidden; - - /*Text Properties*/ - font-size:10pt; - font-weight:bold; - color:white; - text-align: center; - - /*Size*/ - padding: 3px 8px; - border-radius: 6px; - border: 0px; - background-color: inherit; -} - -publication-status:hover::after{ - visibility:visible; -} - - -publication-status[release-status="Ongoing"]{ - background-color: limegreen; -} - -publication-status[release-status="Completed"]{ - background-color: blueviolet; -} - -publication-status[release-status="On Hiatus"]{ - background-color: darkorange; -} - -publication-status[release-status="Cancelled"]{ - background-color: firebrick; -} - -publication-status[release-status="Upcoming"]{ - background-color: aqua; -} - -publication-status[release-status="Status Unavailable"]{ - background-color: gray; -} - - -publication-details { - display: flex; - flex-direction: column; - justify-content: start; -} - -publication-details * { - z-index: 1; - color: var(--accent-color); -} - -publication img { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - object-fit: cover; - z-index: 0; - border-radius: 5px; -} - -popup{ - display: none; - width: 100%; - min-height: 100%; - top: 0; - left: 0; - position: fixed; - z-index: 2; - flex-direction: column; -} - - -popup popup-window { - position: absolute; - z-index: 3; - left: 25%; - top: 100px; - width: 50%; - display: flex; - flex-direction: column; - background-color: var(--second-background-color); - border-radius: 3px; - overflow: hidden; -} - -popup popup-window popup-title { - height: 30px; - font-size: 14pt; - font-weight: bolder; - padding: 5px 10px; - margin: 0; - display: flex; - align-items: center; - background-color: var(--primary-color); - color: var(--accent-color) -} - -popup popup-window popup-content{ - margin: 15px 10px; - display: flex; - align-items: center; - justify-content: space-evenly; -} - -popup popup-window popup-content div > * { - margin: 2px 3px 0 0; -} - -popup popup-window popup-content input, select { - padding: 3px 4px; - width: 130px; - border: 1px solid lightgrey; - background-color: var(--accent-color); - border-radius: 3px; -} - -#newMangaPopup > div { - z-index: 3; - position: relative; -} - -#newMangaPopup > #newMangaPopupSelector { - width: 600px; - height: 40px; - margin: 80px auto 0; -} - -#newMangaPopup > div > #newMangaConnector, #newMangaTitle, #newMangaTranslatedLanguage { - margin: 0; - display: inline-block; - height: 40px; -} - -#newMangaPopup #newMangaConnector { - width: 100px; - padding: 0 0 0 5px; - border-radius: 5px 0 0 5px; - border: 0; - border-right: 1px solid darkgray; -} - -#newMangaPopup #newMangaTitle{ - width: 445px; - padding: 0 5px 0 5px; - border: 0; -} - -#newMangaPopup #newMangaTranslatedLanguage { - width: 45px; - border-radius: 0 5px 5px 0; - border: 0; - border-left: 1px solid darkgray; - margin-left: -5px; -} - -#newMangaResult { - display: none; - flex-direction: row; - justify-content: flex-start; - margin: 5px auto 0; - border-radius: 5px; - padding: 5px; - width: min-content; - max-width: 98%; - max-height: 400px; - overflow-x: scroll; - overflow-y: hidden; -} - -blur-background { - width: 100%; - height: 100%; - position: absolute; - left: 0; - background: rgba(245, 169, 184, 0.58); - box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1); - backdrop-filter: blur(4.5px); - -webkit-backdrop-filter: blur(4.5px); -} - -#publicationViewerPopup{ - z-index: 5; -} - -publication-viewer{ - display: block; - width: 460px; - position: absolute; - top: 200px; - left: 400px; - background-color: var(--accent-color); - border-radius: 5px; - overflow: hidden; - padding: 15px; -} - -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; - height: 100%; - width: 100%; - object-fit: cover; - border-radius: 5px; - z-index: 0; -} - -publication-viewer publication-details > * { - margin: 5px 0; -} - -publication-viewer publication-details publication-name { - width: initial; - overflow-x: scroll; - white-space: nowrap; - scrollbar-width: none; -} - -publication-viewer publication-details publication-tags::before { - content: "Tags"; - display: block; - font-weight: bolder; -} - -publication-viewer publication-details publication-tags { - overflow-x: scroll; - white-space: nowrap; - scrollbar-width: none; -} - -publication-viewer publication-details publication-author::before { - content: "Author: "; - font-weight: bolder; -} - -publication-viewer publication-details publication-description::before { - content: "Description"; - display: block; - font-weight: bolder; -} - -publication-viewer publication-details publication-description { - font-size: 12pt; - margin: 5px 0; - height: 145px; - overflow-x: scroll; -} - -publication-viewer publication-details publication-interactions { - display: flex; - flex-direction: row; - justify-content: end; - align-items: start; - width: 100%; -} - -publication-viewer publication-details publication-interactions > * { - margin: 0 10px; - font-size: 16pt; - cursor: pointer; -} - -publication-viewer publication-details publication-interactions publication-starttask { - color: var(--secondary-color); -} - -publication-viewer publication-details publication-interactions publication-delete { - color: red; -} - -publication-view publication-details publication-interactions publication-canceltask { - color: yellow; -} - -publication-viewer publication-details publication-interactions publication-add { - color: limegreen; -} - -footer-tag-popup { - display: none; - padding: 2px 4px; - position: fixed; - bottom: 58px; - left: 20px; - background-color: var(--second-background-color); - z-index: 8; - border-radius: 5px; - max-height: 400px; -} - -footer-tag-content{ - position: relative; - max-height: 400px; - display: flex; - flex-direction: column; - flex-wrap: nowrap; - overflow-y: scroll; -} - -footer-tag-content > * { - margin: 2px 5px; -} - -footer-tag-popup::before{ - content: ""; - width: 0; - height: 0; - position: absolute; - border-right: 10px solid var(--second-background-color); - border-left: 10px solid transparent; - border-top: 10px solid var(--second-background-color); - border-bottom: 10px solid transparent; - left: 0; - bottom: -17px; - border-radius: 0 0 0 5px; -} - -#loaderdiv { - position: absolute; - top: 0px; - left: 0px; - width: 100%; - height: 100%; - z-index: 200; -} - -#loader { - border: 16px solid transparent; - border-top: 16px solid var(--secondary-color); - border-bottom: 16px solid var(--primary-color); - border-radius: 50%; - width: 120px; - height: 120px; - animation: spin 2s linear infinite; - position: absolute; - left: calc(50% - 60px); - top: calc(50% - 120px); - z-index: 201; -} - -#loaderText { - position: relative; - margin: 0 auto; - top: calc(50% + 80px); - z-index: 201; - text-align: center; - color: var(--second-background-color); - font-size: 20pt; -} - -@keyframes spin { - 0% { transform: rotate(0deg); } - 100% { transform: rotate(360deg); } -} - -#jobStatusView { - z-index: 50; -} - -#jobStatusView > popup-window { - top: 80px; - width: 50%; - max-height: calc(100% - 140px); - display: flex; - flex-direction: row; - flex-wrap: nowrap; - background-color: transparent; -} - -#jobStatusView > popup-window > div { - overflow-y: scroll; - overflow-x: hidden; - width: 50%; - margin: 0; - max-height: 100%; -} - -#jobStatusView > popup-window > div > div { - overflow-x: hidden; - display: flex; - flex-direction: column; - flex-wrap: nowrap; - width: 100%; - margin: 0; -} - -.jobWrapper { - width: 90%; - margin: 2px 5%; - height: 100px; - position: relative; - flex-shrink: 0; - background-color: rgba(187,187,187,0.4); - border-radius: 3px; -} - -.jobWrapper > .jobImage { - height: 90%; - width: 20%; - left: 5px; - object-fit: contain; - position: absolute; - top: 5%; -} - -.jobWrapper > .jobTitle { - position: absolute; - left: calc(20% + 10px); - top: 5px; -} - -.jobWrapper > .jobProgressBar { - position: absolute; - left: calc(20% + 10px); - bottom: calc(12pt + 10px); - width: calc(80% - 20px); - height: 10px; -} - -.jobWrapper > .jobProgressSpan { - position: absolute; - right: 10px; - bottom: calc(12pt + 20px); - width: 60%; - text-align: right; -} - -.jobWrapper > .jobCancel { - position: absolute; - right: 10px; - bottom: 5px; - font-size: 12pt; - color: var(--secondary-color); - cursor: pointer; -} \ No newline at end of file From 1ba49ddf08ee521316213644cf3359c940df1e65 Mon Sep 17 00:00:00 2001 From: db-2001 Date: Sun, 4 Feb 2024 16:02:09 -0500 Subject: [PATCH 03/16] Added PostData to reset functions --- Website/apiConnector.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Website/apiConnector.js b/Website/apiConnector.js index 70e6a7c..87db089 100644 --- a/Website/apiConnector.js +++ b/Website/apiConnector.js @@ -181,6 +181,7 @@ function UpdateKomga(komgaUrl, komgaAuth){ function ResetKomga(){ var uri = `${apiUri}/LibraryConnectors/Reset?libraryConnector=Komga`; + PostData(uri); } function TestKomga(komgaUrl, komgaAuth){ @@ -197,6 +198,7 @@ function UpdateKavita(kavitaUrl, kavitaUsername, kavitaPassword){ function ResetKavita(){ var uri = `${apiUri}/LibraryConnectors/Reset?libraryConnector=Kavita`; + PostData(uri); } function TestKavita(kavitaUrl, kavitaUsername, kavitaPassword){ @@ -212,6 +214,7 @@ function UpdateGotify(gotifyUrl, gotifyAppToken){ function ResetGotify(){ var uri = `${apiUri}/NotificationConnectors/Reset?libraryConnector=Gotify`; + PostData(uri); } function TestGotify(gotifyUrl, gotifyAppToken){ @@ -227,6 +230,7 @@ function UpdateLunaSea(lunaseaWebhook){ function ResetLunaSea(){ var uri = `${apiUri}/NotificationConnectors/Reset?libraryConnector=LunaSea`; + PostData(uri); } function TestLunaSea(lunaseaWebhook){ @@ -242,6 +246,7 @@ function UpdateNtfy(ntfyEndpoint, ntfyAuth){ function ResetNtfy(){ var uri = `${apiUri}/NotificationConnectors/Reset?libraryConnector=Ntfy`; + PostData(uri); } function TestNtfy(ntfyEndpoint, ntfyAuth){ From 148af6abaa86d4e660e52210d31118b8ce56218d Mon Sep 17 00:00:00 2001 From: db-2001 Date: Tue, 6 Feb 2024 22:23:19 -0500 Subject: [PATCH 04/16] Filter functionality Removed textbox in top bar and added filter icon that opens up a box where you can search or select a connector/status and combination to filter by. Appearance and behavior needs to be refined. --- Website/index.html | 36 ++++++- Website/interaction.js | 173 +++++++++++++++++++++++++++----- Website/media/filter-funnel.svg | 12 +++ Website/styles/base.css | 158 ++++++++++++++++++++++++++--- 4 files changed, 337 insertions(+), 42 deletions(-) create mode 100644 Website/media/filter-funnel.svg diff --git a/Website/index.html b/Website/index.html index ab12385..5f8165e 100644 --- a/Website/index.html +++ b/Website/index.html @@ -9,17 +9,44 @@ + website image is Blahaj Tranga - - - + filterFunnel settingscog + + + + Filter by: + × + + + + + + + Clear Filter + + +
@@ -54,8 +81,7 @@ - + Settings diff --git a/Website/interaction.js b/Website/interaction.js index 87bc1fc..f6d7732 100644 --- a/Website/interaction.js +++ b/Website/interaction.js @@ -5,10 +5,18 @@ let notificationConnectorTypes = []; let libraryConnectorTypes = []; let selectedManga; let selectedJob; +let searchMatch; + +let connectorMatch = []; +let connectorNameMatch; +let statusMatch = []; +let statusNameMatch = []; const searchBox = document.querySelector("#searchbox"); const settingsPopup = document.querySelector("#settingsPopup"); +const filterBox = document.querySelector("#filterBox"); const settingsCog = document.querySelector("#settingscog"); +const filterFunnel = document.querySelector("#filterFunnel"); const tasksContent = document.querySelector("content"); const createMonitorTaskButton = document.querySelector("#createMonitoJobButton"); const createDownloadChapterTaskButton = document.querySelector("#createDownloadChapterJobButton"); @@ -75,13 +83,40 @@ function Setup(){ GetAvailableControllers().then((json) => { //console.log(json); newMangaConnector.replaceChildren(); - json.forEach(connector => { + connectorFilterBox = document.querySelector("#connectorFilterBox"); + json.forEach(connector => { + //Add the connector to the New Manga dropdown var option = document.createElement('option'); option.value = connector; option.innerText = connector; newMangaConnector.appendChild(option); + + //Add the connector to the filter box + connectorFilter = document.createElement('connector-name'); + connectorFilter.innerText = connector; + connectorFilter.className = "pill"; + connectorFilter.style.backgroundColor = stringToColour(connector); + + connectorFilter.addEventListener("click", (event) => { + ToggleFilterConnector(connector, event); + }); + connectorFilterBox.appendChild(connectorFilter); }); }); + + //Add the publication status options to the filter bar + publicationStatusOptions = ["Ongoing", "Completed", "On Hiatus", "Cancelled", "Upcoming", "Status Unavailable"]; + statusFilterBox = document.querySelector("#statusFilterBox"); + publicationStatusOptions.forEach(publicationStatus => { + var releaseStatus = document.createElement('status-filter'); + releaseStatus.innerText = publicationStatus; + releaseStatus.setAttribute("release-status", publicationStatus); + releaseStatus.addEventListener("click", (event) => { + ToggleFilterStatus(publicationStatus, event); + }); + + statusFilterBox.appendChild(releaseStatus); + }); ResetContent(); UpdateJobs(); @@ -102,9 +137,48 @@ function Setup(){ UpdateJobs(); }, 1000); }); + //Clear the previous values if any exist. + searchBox.value = ""; + connectorMatch.length = 0; + statusMatch.length = 0; } Setup(); +function ToggleFilterConnector(connector) { + //console.log("Initial Array:"); + //console.log(connectorMatch); + if (connectorMatch.includes(connector)) { + idx = connectorMatch.indexOf(connector); + connectorMatch.splice(idx, 1); + } else { + connectorMatch.push(connector); + } + //console.log("Final Array"); + //console.log(connectorMatch); + FilterResults(); +} + +function ToggleFilterStatus(status) { + //console.log("Initial Array:"); + //console.log(statusMatch); + if (statusMatch.includes(status)) { + idx = statusMatch.indexOf(status); + statusMatch.splice(idx, 1); + } else { + statusMatch.push(status); + } + //console.log("Final Array"); + //console.log(statusMatch); + FilterResults(); +} + +function ClearFilter() { + searchBox.value = ""; + statusMatch.length = 0; + connectorMatch.length = 0; + FilterResults(); +} + function updateCSS(){ if (document.getElementById("mangaHoverCheckbox").checked == true){ ChangeStyleSheet('hover') @@ -300,25 +374,72 @@ function HidePublicationPopup(){ searchBox.addEventListener("keyup", () => FilterResults()); //Filter shown jobs function FilterResults(){ - if(searchBox.value.length > 0){ - tasksContent.childNodes.forEach(publication => { - publication.childNodes.forEach(item => { - if(item.nodeName.toLowerCase() == "publication-information"){ - item.childNodes.forEach(information => { - if(information.nodeName.toLowerCase() == "publication-name"){ - if(!information.textContent.toLowerCase().includes(searchBox.value.toLowerCase())){ - publication.style.display = "none"; - }else{ - publication.style.display = "initial"; - } - } - }); - } - }); - }); - }else{ - tasksContent.childNodes.forEach(publication => publication.style.display = "initial"); + //For each publication + tasksContent.childNodes.forEach(publication => { + //If the search box isn't empty check that the title contains the searchbox content. If it does then + //'searchMatch' is true and the manga is shown. If the search box is empty, then consider this field + //to be true anyways. + if (searchBox.value.length > 0) { + publication.childNodes.forEach(item => { + if (item.nodeName.toLowerCase() == "publication-information"){ + item.childNodes.forEach(information => { + if (information.nodeName.toLowerCase() == "publication-name") { + if (information.textContent.toLowerCase().includes(searchBox.value.toLowerCase())){ + searchMatch = 1; + } else { + searchMatch = 0; + } + } + }); + } + }); + } else { + searchMatch = 1; } + + //If the array connectorMatch isn't empty then check that the connector matches one of the ones + //in the array + if (connectorMatch.length > 0) { + publication.childNodes.forEach(item => { + if (item.nodeName.toLowerCase() == "publication-information"){ + item.childNodes.forEach(information => { + if (information.nodeName.toLowerCase() == "connector-name") { + if (connectorMatch.includes(information.textContent)){ + connectorNameMatch = 1; + } else { + connectorNameMatch = 0; + } + } + }); + } + }); + } else { + connectorNameMatch = 1; + } + + //If the array statusMatch isn't empty then check that the status matches one of the ones + //in the array + if (statusMatch.length > 0) { + publication.childNodes.forEach(item => { + if (item.nodeName.toLowerCase() == "publication-status"){ + if (statusMatch.includes(item.getAttribute('release-status'))) { + statusNameMatch = 1; + } else { + statusNameMatch = 0; + } + } + }); + } else { + statusNameMatch = 1; + } + + //If all of the filtering conditions are met then show the manga, otherwise hide it. + if (searchMatch && connectorNameMatch && statusNameMatch) { + publication.style.display = 'initial'; + } else { + publication.style.display = 'none'; + } + }); } settingsCog.addEventListener("click", () => { @@ -326,6 +447,10 @@ settingsCog.addEventListener("click", () => { settingsPopup.style.display = "flex"; }); +filterFunnel.addEventListener("click", () => { + filterBox.classList.toggle("animate"); +}); + settingKomgaUrl.addEventListener("keypress", (event) => { { if(event.key === "Enter") UpdateSettings(); } }); settingKomgaUser.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); }); settingKomgaPass.addEventListener("keypress", (event) => { if(event.key === "Enter") UpdateSettings(); }); @@ -430,7 +555,7 @@ function ClearKomga(){ settingKomgaUrl.value = ""; settingKomgaUser.value = ""; settingKomgaPass.value = ""; - settingKomgaConfigured.setAttribute("configuration", "Connector Not Configured"); + settingKomgaConfigured.setAttribute("configuration", "Not Configured"); ResetKomga(); } @@ -438,27 +563,27 @@ function ClearKavita(){ settingKavitaUrl.value = ""; settingKavitaUser.value = ""; settingKavitaPass.value = ""; - settingKavitaConfigured.setAttribute("configuration", "Connector Not Configured"); + settingKavitaConfigured.setAttribute("configuration", "Not Configured"); ResetKavita(); } function ClearGotify(){ settingGotifyUrl.value = ""; settingGotifyAppToken.value = "" - settingGotifyConfigured.setAttribute("configuration", "Connector Not Configured"); + settingGotifyConfigured.setAttribute("configuration", "Not Configured"); ResetGotify(); } function ClearLunasea(){ settingLunaseaWebhook.value = ""; - settingLunaseaConfigured.setAttribute("configuration", "Connector Not Configured"); + settingLunaseaConfigured.setAttribute("configuration", "Not Configured"); ResetLunaSea(); } function ClearNtfy(){ settingNtfyEndpoint.value = ""; settingNtfyAuth.value = ""; - settingNtfyConfigured.setAttribute("configuration", "Connector Not Configured"); + settingNtfyConfigured.setAttribute("configuration", "Not Configured"); ResetNtfy(); } diff --git a/Website/media/filter-funnel.svg b/Website/media/filter-funnel.svg new file mode 100644 index 0000000..5092c6d --- /dev/null +++ b/Website/media/filter-funnel.svg @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/Website/styles/base.css b/Website/styles/base.css index 3aa4c77..8c75ef3 100644 --- a/Website/styles/base.css +++ b/Website/styles/base.css @@ -69,7 +69,6 @@ titlebox span{ titlebox img { height: 100%; - margin-right: 10px; cursor: grab; } @@ -77,22 +76,156 @@ spacer{ flex-grow: 1; } -searchdiv{ +filter-box { + display: none; + align-self: center; + flex-direction: column; + position: relative; + + margin: 10px; + background-color: var(--second-background-color); + border-style: solid; + border-color: var(--primary-color); + border-width: 2px; + border-radius: 15px; + min-width: 300px; + width: 50%; + overflow: hidden; + max-height: 50%; + height: 400px; +} + +filter-box.animate { + display: flex; +} + +filter-box border-bar popup-title{ + font-size: 12pt; +} + +filter-box border-bar popup-close { + height: 20px; + width: 20px; + font-size: 12pt; + -webkit-user-select: none; /* Safari */ + -ms-user-select: none; /* IE 10 and IE 11 */ + user-select: none; /* Standard syntax */ +} + +border-bar-button.clearFilter{ + font-weight: bold; + margin: 0px 10px 10px 10px; + border-color: lightgray; + color: gray; + align-content: center; + justify-content: center; +} + +border-bar-button.clearFilter:hover { + background-color: red; + border-color: var(--second-background-color); + color: var(--second-background-color); +} + +status-filter { display: block; - margin: 0 10px 0 0; + margin: 10px; + + /*Text Properties*/ + font-size:10pt; + font-weight:bold; + color:white; + text-align: center; + + /*Size*/ + padding: 3px 8px; + border-radius: 6px; + border: 0px; + background-color: inherit; + + cursor: pointer; + -webkit-user-select: none; /* Safari */ + -ms-user-select: none; /* IE 10 and IE 11 */ + user-select: none; /* Standard syntax */ +} + +status-filter[release-status="Ongoing"]{ + background-color: limegreen; +} + +status-filter[release-status="Completed"]{ + background-color: blueviolet; +} + +status-filter[release-status="On Hiatus"]{ + background-color: darkorange; +} + +status-filter[release-status="Cancelled"]{ + background-color: firebrick; +} + +status-filter[release-status="Upcoming"]{ + background-color: aqua; +} + +status-filter[release-status="Status Unavailable"]{ + background-color: gray; +} + + +searchdiv{ + display: flex; + width: 100%; } #searchbox { - padding: 3px 10px; - border: 0; - border-radius: 4px; - font-size: 14pt; - width: 250px; + display: flex; + padding: 3px 5px; + margin: 5px; + border-style: solid; + border-width: 2px; + border-radius: 10px; + font-size: 12pt; + outline: none; + border-color: lightgray; + flex-grow: 1; + flex-shrink: 1; +} + +#searchbox:focus { + border-color: var(--secondary-color); +} + +.pill { + flex-grow: 0; + height: 14pt; + font-size: 12pt; + border-radius: 9pt; + background-color: var(--primary-color); + padding: 2pt 17px; + color: black; +} + +#connectorFilterBox .pill { + margin: 10px; + cursor: pointer; + -webkit-user-select: none; /* Safari */ + -ms-user-select: none; /* IE 10 and IE 11 */ + user-select: none; /* Standard syntax */ } #settingscog { cursor: pointer; margin: 0px 30px; + margin-left: 15px; + height: 50%; + filter: invert(100%) sepia(0%) saturate(7465%) hue-rotate(115deg) brightness(116%) contrast(101%); +} + +#filterFunnel { + cursor: pointer; + margin: 0px 15px; height: 50%; filter: invert(100%) sepia(0%) saturate(7465%) hue-rotate(115deg) brightness(116%) contrast(101%); } @@ -179,6 +312,7 @@ border-bar { margin:0; align-items: center; position: relative; + width: 100%; } popup-title { @@ -198,7 +332,7 @@ popup-close { display: flex; cursor: pointer; margin-left: auto; - margin-right: 5; + margin-right: 15px; height: 32px; width: 32px; border-radius: 16px; @@ -268,7 +402,7 @@ popup popup-window { overflow: hidden; } -popup popup-window popup-content{ +popup-content{ display: flex; flex-direction: column; align-items: left; @@ -288,7 +422,7 @@ popup-content > .popup-section { border-top-style: solid; border-top-width: 1px; border-top-color: lightgray; - width: 100%; + width: calc(100%-10px); padding: 10px; } @@ -377,8 +511,6 @@ popup-content > .popup-section { background-color: gray; } - - .section-item > input { margin: 2px; padding: 2px; From 8bd6ad4c2b19937afde0685e441e96c8b2b65ec5 Mon Sep 17 00:00:00 2001 From: db-2001 Date: Thu, 8 Feb 2024 23:31:31 -0500 Subject: [PATCH 05/16] Added manga sources to settings Added the manga sources to the settings page and added a field to set the rate limit, POST api for setting the rate limit awaiting GET api calls to set initial value. --- Website/apiConnector.js | 5 + Website/connector-icons/bato.ico | Bin 0 -> 1598 bytes Website/connector-icons/mangadex-logo.svg | 1 + Website/connector-icons/mangakatana.png | Bin 0 -> 4217 bytes Website/connector-icons/mangalife.png | Bin 0 -> 477 bytes Website/connector-icons/manganato.png | Bin 0 -> 10009 bytes Website/connector-icons/mangasee.png | Bin 0 -> 1935 bytes Website/connector-icons/mangaworld.png | Bin 0 -> 5181 bytes Website/index.html | 33 ++++++- Website/interaction.js | 106 +++++++++++++++++++++- Website/styles/base.css | 55 ++++++++++- 11 files changed, 193 insertions(+), 7 deletions(-) create mode 100644 Website/connector-icons/bato.ico create mode 100644 Website/connector-icons/mangadex-logo.svg create mode 100644 Website/connector-icons/mangakatana.png create mode 100644 Website/connector-icons/mangalife.png create mode 100644 Website/connector-icons/manganato.png create mode 100644 Website/connector-icons/mangasee.png create mode 100644 Website/connector-icons/mangaworld.png diff --git a/Website/apiConnector.js b/Website/apiConnector.js index 87db089..5b298a8 100644 --- a/Website/apiConnector.js +++ b/Website/apiConnector.js @@ -259,6 +259,11 @@ function UpdateUserAgent(userAgent){ PostData(uri); } +function UpdateRateLimit(connector, byteValue, rateLimit) { + var uri = `${apiUri}/Settings/customRequestLimit?requestType=${byteValue}&requestsPerMinute=${rateLimit}&connector=${connector}`; + PostData(uri); +} + function RemoveJob(jobId){ var uri = `${apiUri}/Jobs?jobId=${jobId}`; DeleteData(uri); diff --git a/Website/connector-icons/bato.ico b/Website/connector-icons/bato.ico new file mode 100644 index 0000000000000000000000000000000000000000..42c201ac4b7f9d320564399766df7cf5519d6d36 GIT binary patch literal 1598 zcmaizJxIeq7>3_8X#=)Hb#N*OP93BUu0PuJrIq+y?mn6(cbahba?ic@{p1I*=q?npG&{(rfI$Fx8U-4&Gz1sd zG|50(jx4Rk*jxs7*7|X5jrw9pOe;Ii@IK`7wUX|z3%V|HcE_UJ^*f4Orq4#6lz>@}!eQjP~)WG`;JlW+z zn=7hsJHq`_wGrhl1Me94kK|S~&bQ>Tyw{Su5&yOdpXqW%q)h3#RoC;h{yAHhdcLH6 zzm9nAn)vR$o+DY;`hlE*Q~BNaQTWHN^PZ< zQk3LAiV@AJHETw#1NE;UwW+lAkFrmlqk=dtYf;57N#*+7j$E@chvKq+-&6W3`|z7e ZdF{pe<9tyq_13|8I4{>RMEUvo{sJ(zoqGTP literal 0 HcmV?d00001 diff --git a/Website/connector-icons/mangadex-logo.svg b/Website/connector-icons/mangadex-logo.svg new file mode 100644 index 0000000..696dd8b --- /dev/null +++ b/Website/connector-icons/mangadex-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Website/connector-icons/mangakatana.png b/Website/connector-icons/mangakatana.png new file mode 100644 index 0000000000000000000000000000000000000000..2d3e044089bccdb73df55a2bc34a3ae041498dca GIT binary patch literal 4217 zcmc&$S!`5Q82;|;OQ#DhwNwhlN=SiJjUvGFEr#d>qoZN38dg&D4EtjF7^Rp_TbWdw@OwnU{Ror?3%Z&+_cD?;aPajv^Ja*8EJl6p1#iB(PZUx_07g$KGG z<)3jTS=Cx4;b1V1ep;WQ9=y6^zpN$6fftmd3dOIj*WfdduUs@t=xQ_oHRo?V2?e|K z&DER-gE3smS)LZHC{N?u=nnazRDUz}sm*G6nMmB}I?mK7ng6#BTnoi9#8H6!H2NIF zuCzmi+j!`)N*9i7_h?PUxUa8E99Fz`e-Y|@xi<1hg##5Xt9}Gm4a$q{=}2dp=|ws9 zo-}bJD?fU)3}+rH!&XmDf$?%%ofmBcz{JT?Tb&Qb2wLdcTpYs$ARhhj;WGSnbSsLM z29Zg^tQZg!5ToR9EQxzuCVcc7@Wf^(R8_@TIFY?+Q&jZKL~(sCp;<4CvsB)=#f63+ zZXz5{WzQNHW)0*z2>q9d2OeH5fz`PVHv9qBxmYjsR(&z{RXEY~ z<0K{)3->w`0I^WK_3P~j8p`dOFyp78%#N`;3CzawEt2S8VYvx4(dv`+KD_wbH0BFf zt{vpZ1i;CiBxQHa#IU>AuDM)4Ec4z{hvsHKJ)qN#`8aHRDMM6NN$-4qpd4>>&n|1Z ze%B1ZMnSZ0fx>PrBvDh8pNM-)?YK^b!D!m8qs)Vm`2?f@#M;gSn@~Y3{^Z_D$PB<@ z!JUlTx~3x7w<(tg68pu3iUgB1${|TO!r@~47vd^T?DT2gn;`K0EX$RU34oiHSTno7 zPe;*M<;==C$aRlDieiTaGm#X;dLfU^0y~qZ?LIHsyZktFIf&PH7HMUey(K?!Q8-$Y?h6{Tz{dnY zdVl~Bk&R}qeE^Drk8=;l9}5PL*CmFq%Q7UV)Ah4W*Jni`5gM{f}CKUjk8 z-duNF3WEuNUS8q}p)YQP@cA0VFveMelXQQEt)02e-y$f<=A_d_hVS&{5Waf6 z0xc}dgInD2GE{d{eu|Sj&tw|n3%0x1hQ3e&(~Bvb=m}`|F5FC8c#+BZ&K{rUB~cln z$%AaY^(@-~!{Z~N@DtqeS`Yf!BYvJp-#3C-(Z6Dex3QavZ=R`k;it){*0x39QE(lPx# literal 0 HcmV?d00001 diff --git a/Website/connector-icons/mangalife.png b/Website/connector-icons/mangalife.png new file mode 100644 index 0000000000000000000000000000000000000000..af14c649c92c500fcef0614443efb0fe944fa5d9 GIT binary patch literal 477 zcmV<30V4j1P)nq00012P)t-sYpUN* zWOhJ6Kw5yHXrk0ZMoCCjUuvh@OkHeUh^$6UQdDw`QEGo+j>XkH4 zRb*OB?;a~72m;_Wa)YUO1iwVoR6jZTZ%uH=nA$SOO*FxiGIgtP@=nq z1tqG1$0VwO;izQk3`#zq7f_-ahz7|n&j=pl9%mMhtbXPG`6ui6&-t4n4QWU}MdM~C T6B(Xu00000NkvXXu0mjflw{N? literal 0 HcmV?d00001 diff --git a/Website/connector-icons/manganato.png b/Website/connector-icons/manganato.png new file mode 100644 index 0000000000000000000000000000000000000000..0df9c280cdffb7749feefc9a5aa0c5f2a006883f GIT binary patch literal 10009 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 VZ}12HnAHFP002ovPDHLkV1gn^h`|5= literal 0 HcmV?d00001 diff --git a/Website/connector-icons/mangaworld.png b/Website/connector-icons/mangaworld.png new file mode 100644 index 0000000000000000000000000000000000000000..04b30e5a6ea66034854e8b31032d95c96968bd72 GIT binary patch literal 5181 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 YYY5~0BfEX??=>EvuB-*GP%?l1KRQB(v;Y7A literal 0 HcmV?d00001 diff --git a/Website/index.html b/Website/index.html index 5f8165e..e0f1799 100644 --- a/Website/index.html +++ b/Website/index.html @@ -25,7 +25,7 @@ Filter by: × - +