Compare commits

...

43 Commits

Author SHA1 Message Date
Thomas Camlong
ba6a3df2b5 v0.10.7
Add grid grow and service search in search bar
2022-11-30 10:14:31 +09:00
Thomas Camlong
2bf01990fe New Crowdin updates (#526)
* New translations common.json (Vietnamese)

* New translations common.json (Italian)

* New translations search.json (Swedish)

* New translations common.json (Hebrew)

* New translations common.json (French)

* New translations common.json (Spanish)

* New translations common.json (Danish)

* New translations common.json (German)

* New translations common.json (Japanese)

* New translations common.json (Korean)

* New translations common.json (Dutch)

* New translations common.json (Polish)

* New translations common.json (Russian)

* New translations common.json (Slovenian)

* New translations common.json (Swedish)

* New translations common.json (Ukrainian)

* New translations common.json (Chinese Simplified)

* New translations common.json (Portuguese, Brazilian)

* New translations common.json (LOLCAT)
2022-11-30 10:12:57 +09:00
ajnart
6501c3aef2 Bumb package version to v0.10.7 2022-11-30 09:19:47 +09:00
ajnart
7e5117055f Add service name in search bar 2022-11-30 09:15:03 +09:00
ajnart
da3e412c63 Add growth option for the main appshelf 2022-11-30 09:00:29 +09:00
ajnart
37ae8e2356 v0.10.6 : Reworks and QOL 2022-11-30 00:58:53 +09:00
Thomas Camlong
fee34c79dd Merge pull request #522 from ajnart/521-changing-search-engine-doesnt-apply-to-search-bar
🐛 Fix changing search engine doesn't apply to search bar #521
2022-11-30 00:56:44 +09:00
ajnart
5caf22e19a 🐛 Fix changing search engine doesn't apply to search bar #521 2022-11-30 00:56:11 +09:00
Thomas Camlong
b6a01a7f5f v0.10.6 : Reworks and QOL 2022-11-30 00:08:38 +09:00
Thomas Camlong
eba0adc03e New Crowdin updates (#520)
* New translations add-service-app-shelf.json (Italian)

* New translations app-shelf.json (Italian)

* New translations app-shelf.json (French)

* New translations calendar.json (Italian)

* New translations app-shelf-menu.json (Italian)

* New translations app-width.json (Italian)

* New translations opacity-selector.json (Italian)

* New translations page-appearance.json (Italian)

* New translations usenet.json (Italian)

* New translations usenet.json (Chinese Simplified)

* New translations search.json (Italian)

* New translations search.json (French)

* New translations search.json (Spanish)

* New translations search.json (Danish)

* New translations search.json (German)

* New translations torrents-status.json (Italian)

* New translations weather.json (Italian)

* New translations ping.json (Italian)

* New translations overseerr.json (Italian)

* New translations torrents-status.json (Hebrew)

* New translations ping.json (Hebrew)

* New translations docker.json (French)

* New translations usenet.json (French)

* New translations dashdot.json (Italian)

* New translations docker.json (Italian)

* New translations dlspeed.json (Italian)

* New translations common-media-cards.json (Italian)

* New translations date.json (Italian)

* New translations config-changer.json (Vietnamese)

* New translations common.json (Vietnamese)

* New translations common.json (Italian)

* New translations search-engine.json (French)

* New translations config-changer.json (Italian)

* New translations login.json (Italian)

* New translations widget-positions.json (Italian)

* New translations shade-selector.json (Italian)

* New translations module-enabler.json (Italian)

* New translations search-engine.json (Italian)

* New translations search.json (LOLCAT)

* New translations search.json (Hebrew)

* New translations search.json (Slovenian)

* New translations search.json (Japanese)

* New translations search.json (Korean)

* New translations search.json (Dutch)

* New translations search.json (Polish)

* New translations search.json (Russian)

* New translations search.json (Portuguese, Brazilian)

* New translations search.json (Swedish)

* New translations search.json (Ukrainian)

* New translations search.json (Chinese Simplified)

* New translations search.json (Vietnamese)

* New translations docker.json (Hebrew)

* New translations dlspeed.json (Hebrew)

* New translations usenet.json (Dutch)

* New translations usenet.json (Spanish)

* New translations usenet.json (Danish)

* New translations usenet.json (German)

* New translations usenet.json (Hebrew)

* New translations usenet.json (Japanese)

* New translations usenet.json (Korean)

* New translations usenet.json (Polish)

* New translations usenet.json (Russian)

* New translations usenet.json (Slovenian)

* New translations usenet.json (Swedish)

* New translations usenet.json (Ukrainian)

* New translations usenet.json (Portuguese, Brazilian)

* New translations usenet.json (LOLCAT)

* New translations page-appearance.json (Japanese)

* New translations page-appearance.json (Korean)

* New translations page-appearance.json (Ukrainian)
2022-11-30 00:07:34 +09:00
Thomas Camlong
5220af5111 Merge pull request #519 from ajnart/feature/spotlight-search-bar 2022-11-29 21:10:05 +09:00
Thomas Camlong
be1901d40d Update SearchModule.tsx 2022-11-29 21:06:11 +09:00
ajnart
c53de3acfe Entirely rework the search module
It's not as bad anymore 🥳
2022-11-29 20:39:16 +09:00
ajnart
ed6b188679 Styling for calendar 2022-11-29 20:31:28 +09:00
ajnart
6b5f91d977 Styling for Overseerr request 2022-11-29 20:31:18 +09:00
ajnart
6642328f2a Rework header 2022-11-29 20:30:53 +09:00
ajnart
f544c621e4 Fix logo noWrap argument 2022-11-29 20:30:37 +09:00
ajnart
940513dc32 Advancement in the new spotlight 2022-11-29 16:22:27 +09:00
ajnart
24c50dda29 Address PR comments 2022-11-22 18:17:05 +09:00
ajnart
fb78736a83 Address PR comments 2022-11-22 18:15:37 +09:00
ajnart
3d7449d871 Address PR comments 2022-11-22 18:05:09 +09:00
ajnart
c71f962967 Working on spotlight module 2022-11-22 18:00:23 +09:00
Thomas Camlong
525dc5748f Merge pull request #513 from ajnart/512-clicking-logo-resets-all-settings
Fix click on logo breaking config changes
2022-11-22 17:44:51 +09:00
ajnart
1606d4c28b Bumb version to v0.10.6 2022-11-22 14:23:25 +09:00
ajnart
c15ab30c7a Fix docker module for mobile
Signed-off-by: ajnart <thomascamlong@gmail.com>
2022-11-22 14:06:49 +09:00
ajnart
f3a7aafe87 Fix newline at the end of AppShelfItem 2022-11-22 14:05:03 +09:00
ajnart
195e1ba946 AppShelf adjustments 2022-11-22 13:58:50 +09:00
ajnart
e2041421f6 Card styling 2022-11-22 12:58:45 +09:00
Thomas Camlong
287c184fa9 Card styling 2022-11-22 12:58:29 +09:00
Thomas Camlong
11abac2e33 Usenet module styling 2022-11-22 12:52:17 +09:00
ajnart
c347180aae Torrent module adjustments for mobile users 2022-11-22 12:50:24 +09:00
Thomas Camlong
cebeb61b94 Calendar styling changes 2022-11-22 12:49:23 +09:00
ajnart
7ac852426e Fix click on logo breaking config changes
Just removed the link on the logo
2022-11-22 11:24:54 +09:00
Thomas Camlong
7647ec058c Merge pull request #511 from singular0/no-ssl-cert-validation
Allow self-signed certificates for ping
2022-11-22 11:05:23 +09:00
Thomas Camlong
bd8a061a17 Merge pull request #507 from ajnart/506-log-authentication-attempts-when-password-environment-variable-is-used
#506 Add warning on wrong password attemps
2022-11-21 18:10:43 +09:00
Denis Yantarev
9ce569aabe Allow self-signed certificates for ping 2022-11-19 11:45:02 +00:00
Thomas Camlong
d9ee11af79 Update tryPassword.tsx 2022-11-17 20:16:43 +09:00
Thomas Camlong
4b8cfe923c Merge pull request #505 from MauriceNino/feature/dashdot-visual-changes 2022-11-17 20:11:37 +09:00
MauriceNino
0a719c0b66 Make dashdot labels only appear on hover 2022-11-16 16:46:07 +01:00
Thomas Camlong
3860e7948c Bumb package version 2022-11-16 16:39:10 +01:00
Thomas Camlong
ed91c68de9 Merge pull request #508 from ajnart/fix-iframe-color-scheme 2022-11-16 21:27:45 +09:00
Manuel Ruwe
79d52b3a4d 🐛 Iframe color scheme for Dash. module 2022-11-16 13:07:29 +01:00
Thomas Camlong
5f61940c92 #506 Add warning on wrong password attemps 2022-11-15 00:14:17 +09:00
110 changed files with 1060 additions and 627 deletions

View File

@@ -1,2 +1,2 @@
export const REPO_URL = 'ajnart/homarr'; export const REPO_URL = 'ajnart/homarr';
export const CURRENT_VERSION = 'v0.10.5'; export const CURRENT_VERSION = 'v0.10.7';

View File

@@ -1,6 +1,6 @@
{ {
"name": "homarr", "name": "homarr",
"version": "0.10.5", "version": "0.10.7",
"description": "Homarr - A homepage for your server.", "description": "Homarr - A homepage for your server.",
"license": "MIT", "license": "MIT",
"repository": { "repository": {

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Søg på nettet..." "placeholder": "Søg på nettet..."
} },
"switched-to": "Skiftet til",
"searchEngines": {
"search": {
"name": "Web",
"description": "Søg ved hjælp af din søgemaskine (defineret i indstillinger)"
},
"youtube": {
"name": "YouTube",
"description": "Søg på YouTube"
},
"torrents": {
"name": "Torrents",
"description": "Søg efter torrents"
},
"overseerr": {
"name": "Overseerr",
"description": "Søg efter film og tv-serier ved hjælp af Overseerr (modul skal være aktiveret)"
}
},
"tip": "Du kan vælge søgefeltet med genvejen ",
"switchedSearchEngine": "Skiftede til søgning med {{searchEngine}}"
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "Usenet",
"description": "Giver dig mulighed for at se din usenet (Sabnzbd eller NZBGet) kø og historik, pause og genoptage downloads" "description": "Tillader dig at se din usenet (Sabnzbd eller NZBGet) kø og historie, pause og genoptage downloads"
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Lavet med ❤️ af @" "madeWithLove": "Lavet med ❤️ af @"
} },
"grow": ""
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Das Internet durchsuchen..." "placeholder": "Das Internet durchsuchen..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "",
"description": "Ermöglicht es Ihnen, Ihre Usenet-Warteschlange (Sabnzbd oder NZBGet) und den Verlauf anzuzeigen, Downloads anzuhalten und fortzusetzen" "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Gemacht mit ❤️ von @" "madeWithLove": "Gemacht mit ❤️ von @"
} },
"grow": ""
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Search the web..." "placeholder": "Search the web..."
} },
"switched-to": "Switched to",
"searchEngines": {
"search": {
"name": "Web",
"description": "Search using your search engine (defined in settings)"
},
"youtube": {
"name": "Youtube",
"description": "Search on Youtube"
},
"torrents": {
"name": "Torrents",
"description": "Search for Torrents"
},
"overseerr": {
"name": "Overseerr",
"description": "Search for Movies and TV Shows using Overseerr (module must be enabled)"
}
},
"tip": "You can select the search bar with the shortcut ",
"switchedSearchEngine": "Switched to searching with {{searchEngine}}"
} }

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Made with ❤️ by @" "madeWithLove": "Made with ❤️ by @"
} },
"grow": "Grow grid (take all space)"
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Buscar en Internet..." "placeholder": "Buscar en Internet..."
} },
"switched-to": "Cambiado a",
"searchEngines": {
"search": {
"name": "Web",
"description": "Buscar usando tu motor de búsqueda (definido en ajustes)"
},
"youtube": {
"name": "Youtube",
"description": "Buscar en Youtube"
},
"torrents": {
"name": "Torrents",
"description": "Buscar Torrents"
},
"overseerr": {
"name": "Overseerr",
"description": "Buscar Películas y Series TV usando Overseerr (el módulo debe esta activado)"
}
},
"tip": "Puedes seleccionar la barra de búsqueda con el atajo ",
"switchedSearchEngine": "Cambiado a buscando con {{searchEngine}}"
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "Usenet",
"description": "Le permite ver la cola y el historial de usenet (Sabnzbd o NZBGet), pausar y reanudar las descargas" "description": "Te permite ver la cola e historial de tu usenet (Sabnzbd or NZBGet), pausar y reanudar descargas"
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Hecho con ❤️ por @" "madeWithLove": "Hecho con ❤️ por @"
} },
"grow": "Aumentar cuadrícula (toma todo el espacio)"
} }

View File

@@ -2,8 +2,8 @@
"accordions": { "accordions": {
"downloads": { "downloads": {
"text": "Vos téléchargements", "text": "Vos téléchargements",
"torrents": "", "torrents": "Vos téléchargements Torrents",
"usenet": "" "usenet": "Vos téléchargements Usenet"
}, },
"others": { "others": {
"text": "Autres" "text": "Autres"

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Docker", "name": "Docker",
"description": "" "description": "Vous permet de gérer facilement vos conteneurs docker"
}, },
"search": { "search": {
"placeholder": "Recherche par nom de conteneur ou d'image" "placeholder": "Recherche par nom de conteneur ou d'image"
@@ -49,20 +49,20 @@
}, },
"actions": { "actions": {
"start": { "start": {
"start": "", "start": "Démarrage en cours",
"end": "" "end": "Démarré"
}, },
"stop": { "stop": {
"start": "", "start": "Arrêt en cours",
"end": "Arrêté" "end": "Arrêté"
}, },
"restart": { "restart": {
"start": "", "start": "Redémarrage en cours",
"end": "" "end": "Redémarré"
}, },
"remove": { "remove": {
"start": "", "start": "Suppression en cours",
"end": "" "end": "Supprimé"
} }
}, },
"errors": { "errors": {

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Cherchez sur le web..." "placeholder": "Cherchez sur le web..."
} },
"switched-to": "Basculé vers",
"searchEngines": {
"search": {
"name": "Web",
"description": "Recherche à l'aide de votre moteur de recherche (défini dans les paramètres)"
},
"youtube": {
"name": "YouTube",
"description": "Cherchez sur YouTube"
},
"torrents": {
"name": "Torrents",
"description": "Chercher des torrents"
},
"overseerr": {
"name": "Overseerr",
"description": "Chercher des films et séries TV avec Overseerr (le module doit-être activé)"
}
},
"tip": "Vous pouvez sélectionner la barre de recherche avec le raccourci ",
"switchedSearchEngine": "Basculer vers la recherche avec {{searchEngine}}"
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "Usenet",
"description": "Vous permet de voir votre file d'attente et votre historique Usenet (Sabnzbd ou NZBGet), de mettre en pause et de reprendre les téléchargements" "description": "Permet de voir la file d'attente et l'historique de vos téléchargements usenet (Sabnzbd ou NZBGet), de mettre en pause et de reprendre les téléchargements"
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Fait avec ❤️ par @" "madeWithLove": "Fait avec ❤️ par @"
} },
"grow": ""
} }

View File

@@ -9,6 +9,6 @@
"placeholder": "URL de requête personnalisée" "placeholder": "URL de requête personnalisée"
}, },
"searchNewTab": { "searchNewTab": {
"label": "" "label": "Ouvrir les résultats de la recherche dans un nouvel onglet"
} }
} }

View File

@@ -19,8 +19,8 @@
}, },
"lineChart": { "lineChart": {
"title": "מהירות הורדה נוכחית", "title": "מהירות הורדה נוכחית",
"download": "הורדה ממתינה", "download": "הורדה",
"upload": "העלאה ממתינה", "upload": "העלאה",
"timeSpan": "לפני שניות", "timeSpan": "לפני שניות",
"totalDownload": "הורדה ממתינה", "totalDownload": "הורדה ממתינה",
"totalUpload": "העלאה ממתינה" "totalUpload": "העלאה ממתינה"

View File

@@ -9,7 +9,7 @@
"table": { "table": {
"header": { "header": {
"name": "שם", "name": "שם",
"image": "תמונה", "image": "קובץ תמונה",
"ports": "יציאות", "ports": "יציאות",
"state": "מצב" "state": "מצב"
}, },

View File

@@ -1,11 +1,11 @@
{ {
"descriptor": { "descriptor": {
"name": "זמן תגובה", "name": "פינג",
"description": "מאפשר בדיקה אם השירות פעיל או מחזיר קוד ספציפי של HTTP" "description": "מאפשר בדיקה אם השירות פעיל או מחזיר קוד ספציפי של HTTP"
}, },
"states": { "states": {
"online": "מקון", "online": "מקוון",
"offline": "לא מקון", "offline": "לא מקוון",
"loading": "טוען..." "loading": "טוען..."
} }
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "חפש באינטרנט..." "placeholder": "חפש באינטרנט..."
} },
"switched-to": "להחליף ל",
"searchEngines": {
"search": {
"name": "אינטרנט",
"description": "חיפוש באמצעות מנוע החיפוש שלך (מוגדר בהגדרות)"
},
"youtube": {
"name": "יוטיוב",
"description": "חפש ביוטיוב"
},
"torrents": {
"name": "טורנטים",
"description": "חיפוש אחר טורנטים"
},
"overseerr": {
"name": "Overseerr",
"description": "חיפוש סרטים ותוכניות טלוויזיה באמצעות Overseerr (המודול חייב להיות מאופשר)"
}
},
"tip": "באפשרותך לבחור את סרגל החיפוש באמצעות קיצור הדרך",
"switchedSearchEngine": "עבור לחיפוש עם"
} }

View File

@@ -24,8 +24,8 @@
}, },
"lineChart": { "lineChart": {
"title": "מהירות הורדה נוכחית", "title": "מהירות הורדה נוכחית",
"download": "הורדה ממתינה", "download": "הורדה",
"upload": "העלאה ממתינה", "upload": "העלאה",
"timeSpan": "לפני שניות", "timeSpan": "לפני שניות",
"totalDownload": "הורדה ממתינה", "totalDownload": "הורדה ממתינה",
"totalUpload": "העלאה ממתינה" "totalUpload": "העלאה ממתינה"

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Sabnzbd", "name": "קבוצת דיון",
"description": "מאמאפשר לך לראות את התור וההיסטוריה של usenet (Sabnzbd או NZBGet), להשהות ולחדש הורדות" "description": "מאפשר צפייה בהיסטוריה, תור ההורדות, עצירה וחידוש הורדות בקבוצות הדיון (Sabnzbd או NZBGet)"
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "נעשה ב- ❤️ ע״י @" "madeWithLove": "נעשה ב- ❤️ ע״י @"
} },
"grow": ""
} }

View File

@@ -1,5 +1,5 @@
{ {
"title": "Bentornato!", "title": "Bentornati!",
"text": "Inserisci la password", "text": "Inserisci la password",
"form": { "form": {
"fields": { "fields": {
@@ -21,7 +21,7 @@
"title": "Password corretta, reindirizzamento..." "title": "Password corretta, reindirizzamento..."
}, },
"wrong": { "wrong": {
"title": "Password errata. Per favore, prova di nuovo." "title": "Password errata. Per favore riprova."
} }
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"actionIcon": { "actionIcon": {
"tooltip": "Aggiungere un servizio" "tooltip": "Aggiungi un servizio"
}, },
"modal": { "modal": {
"title": "Aggiungi servizio", "title": "Aggiungi servizio",
"form": { "form": {
"validation": { "validation": {
"invalidUrl": "Inserire un URL valido", "invalidUrl": "Inserire un URL valido",
"noStatusCodeSelected": "Selezionare un codice di stato" "noStatusCodeSelected": "Scegliere uno status code"
} }
}, },
"tabs": { "tabs": {
@@ -15,28 +15,28 @@
"title": "Opzioni", "title": "Opzioni",
"form": { "form": {
"serviceName": { "serviceName": {
"label": "Nome del servizio", "label": "Nome servizio",
"placeholder": "Plex" "placeholder": "Plex"
}, },
"iconUrl": { "iconUrl": {
"label": "Icona URL" "label": "URL dell'icona"
}, },
"serviceUrl": { "serviceUrl": {
"label": "URL del servizio" "label": "URL servizio"
}, },
"onClickUrl": { "onClickUrl": {
"label": "URL di destinatione" "label": "URL di destinazione"
}, },
"serviceType": { "serviceType": {
"label": "Tipo di servizio", "label": "Tipologia servizio",
"defaultValue": "Altro", "defaultValue": "Altro",
"placeholder": "Scegli Uno" "placeholder": "Sceglierne uno"
}, },
"category": { "category": {
"label": "Categoria", "label": "Categoria",
"placeholder": "Selezionare una categoria o crearne una nuova", "placeholder": "Seleziona una categoria o creane una nuova",
"nothingFound": "Non è stato trovato nulla", "nothingFound": "Nessun risultato",
"createLabel": "+ Creare {{query}}" "createLabel": "+ Crea {{query}}"
}, },
"integrations": { "integrations": {
"apiKey": { "apiKey": {
@@ -46,7 +46,7 @@
"noKey": "Chiave non valida" "noKey": "Chiave non valida"
}, },
"tip": { "tip": {
"text": "Ottenere la chiave API", "text": "Ottieni la tua chiave API",
"link": "qui." "link": "qui."
} }
}, },
@@ -111,16 +111,16 @@
} }
}, },
"advancedOptions": { "advancedOptions": {
"title": "Opzioni avanzate", "title": "Impostazioni avanzate",
"form": { "form": {
"httpStatusCodes": { "httpStatusCodes": {
"label": "Codici di stato HTTP", "label": "Status Codes HTTP",
"placeholder": "Selezionare i codici di stato validi", "placeholder": "Selezionare status codes validi",
"clearButtonLabel": "Cancella la selezione", "clearButtonLabel": "Elimina selezione",
"nothingFound": "Non è stato trovato nulla" "nothingFound": "Nessun risultato"
}, },
"openServiceInNewTab": { "openServiceInNewTab": {
"label": "Aprire il servizio in una nuova scheda" "label": "Apri servizio in una nuova scheda"
}, },
"buttons": { "buttons": {
"submit": { "submit": {

View File

@@ -1,18 +1,18 @@
{ {
"modal": { "modal": {
"title": "Modificare un servizio", "title": "Modifica un servizio",
"buttons": { "buttons": {
"save": "Salvataggio del servizio" "save": "Salva servizio"
} }
}, },
"menu": { "menu": {
"labels": { "labels": {
"settings": "Impostazioni", "settings": "Impostazioni",
"dangerZone": "Zona di pericolo" "dangerZone": "Danger zone"
}, },
"actions": { "actions": {
"edit": "Modifica", "edit": "Modifica",
"delete": "Cancella" "delete": "Elimina"
} }
} }
} }

View File

@@ -2,8 +2,8 @@
"accordions": { "accordions": {
"downloads": { "downloads": {
"text": "I tuoi download", "text": "I tuoi download",
"torrents": "Scaricamenti di Torrent", "torrents": "I tuoi torrent",
"usenet": "I tuoi scaricamenti di Usenet" "usenet": "I tuoi download di Usenet"
}, },
"others": { "others": {
"text": "Altri" "text": "Altri"

View File

@@ -1,10 +1,10 @@
{ {
"descriptor": { "descriptor": {
"name": "Calendario", "name": "Calendario",
"description": "Un calendario per la visualizzazione dei prossimi rilasci. Interagisce con le API di Sonarr e Radarr.", "description": "Un calendario per la visualizzazione delle prossime uscite. Può comunicare con le API di Sonarr e Radarr.",
"settings": { "settings": {
"sundayStart": { "sundayStart": {
"label": "Inizio settimana di domenica" "label": "Inizia la settimana di domenica"
} }
} }
} }

View File

@@ -1,6 +1,6 @@
{ {
"buttons": { "buttons": {
"play": "Avvia", "play": "Riproduci",
"request": "Richiedi" "request": "Richiesta"
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"descriptor": { "descriptor": {
"name": "Dash.", "name": "Dash.",
"description": "Un modulo per visualizzare i grafici dell'istanza di Dash in esecuzione.", "description": "Un modulo per visualizzare i grafici dell'istanza di Dash. in esecuzione.",
"settings": { "settings": {
"cpuMultiView": { "cpuMultiView": {
"label": "Vista CPU Multi-Core" "label": "Vista CPU Multi-Core"
}, },
"storageMultiView": { "storageMultiView": {
"label": "Visualizzazione dell'unità multipla di archiviazione" "label": "Visualizzazione archiviazione Multi-Drive"
}, },
"useCompactView": { "useCompactView": {
"label": "Visualizzazione compatta" "label": "Visualizzazione compatta"
@@ -23,8 +23,8 @@
"card": { "card": {
"title": "Dash.", "title": "Dash.",
"errors": { "errors": {
"noService": "Nessun servizio Dash. trovato. Aggiungerne uno alla dashboard di Homarr o impostare un Dash. nelle opzioni del modulo", "noService": "Nessun servizio Dash. trovato. Aggiungine uno alla dashboard di Homarr o imposta un URL nelle impostazioni del modulo",
"noInformation": "Impossibile acquisire informazioni da dash. - state eseguendo l'ultima versione?" "noInformation": "Impossibile reperire informazioni da dash. - è in esecuzione l'ultima versione?"
}, },
"graphs": { "graphs": {
"storage": { "storage": {
@@ -35,8 +35,8 @@
"title": "Rete", "title": "Rete",
"label": "Rete:", "label": "Rete:",
"metrics": { "metrics": {
"download": "In basso", "download": "Down",
"upload": "Su" "upload": "Up"
} }
}, },
"cpu": { "cpu": {

View File

@@ -4,7 +4,7 @@
"description": "Mostra l'ora e la data corrente in una scheda", "description": "Mostra l'ora e la data corrente in una scheda",
"settings": { "settings": {
"display24HourFormat": { "display24HourFormat": {
"label": "Visualizzazione a tempo pieno (24 ore)" "label": "Visualizza formato 24 ore"
} }
} }
} }

View File

@@ -1,15 +1,15 @@
{ {
"descriptor": { "descriptor": {
"name": "Velocità Di Download", "name": "Velocità Di Download",
"description": "Mostra la velocità di download attuale dei servizi supportati" "description": "Mostra la velocità di download corrente dei servizi supportati"
}, },
"card": { "card": {
"table": { "table": {
"header": { "header": {
"name": "Nome", "name": "Nome",
"size": "Dimensione", "size": "Dimensione",
"download": "In basso", "download": "Down",
"upload": "Su", "upload": "Up",
"estimatedTimeOfArrival": "ETA", "estimatedTimeOfArrival": "ETA",
"progress": "Avanzamento" "progress": "Avanzamento"
}, },
@@ -18,7 +18,7 @@
} }
}, },
"lineChart": { "lineChart": {
"title": "Velocità di download attuale", "title": "Velocità di download",
"download": "Download: {{download}}", "download": "Download: {{download}}",
"upload": "Upload: {{upload}}", "upload": "Upload: {{upload}}",
"timeSpan": "{{seconds}} secondi fa", "timeSpan": "{{seconds}} secondi fa",
@@ -28,7 +28,7 @@
"errors": { "errors": {
"noDownloadClients": { "noDownloadClients": {
"title": "Nessun client di download supportato trovato!", "title": "Nessun client di download supportato trovato!",
"text": "Aggiungere un servizio di download per visualizzare i download correnti" "text": "Aggiungi un servizio di download per visualizzare i tuoi download attuali"
} }
} }
} }

View File

@@ -1,10 +1,10 @@
{ {
"descriptor": { "descriptor": {
"name": "Docker", "name": "Docker",
"description": "Ti permette di gestire facilmente i tuoi container docker" "description": "Gestisci facilmente i tuoi container di docker"
}, },
"search": { "search": {
"placeholder": "Ricerca per contenitore o nome dell'immagine" "placeholder": "Ricerca per container nome immagine"
}, },
"table": { "table": {
"header": { "header": {
@@ -14,7 +14,7 @@
"state": "Stato" "state": "Stato"
}, },
"body": { "body": {
"portCollapse": "{{ports}} di più" "portCollapse": "{{ports}} altro"
}, },
"states": { "states": {
"running": "In esecuzione", "running": "In esecuzione",
@@ -38,13 +38,13 @@
"title": "Avvia" "title": "Avvia"
}, },
"refreshData": { "refreshData": {
"title": "Aggiornare i dati" "title": "Aggiorna dati"
}, },
"remove": { "remove": {
"title": "Rimuovi" "title": "Rimuovi"
}, },
"addToHomarr": { "addToHomarr": {
"title": "Aggiungi a Homarr" "title": "Aggiungi ad Homarr"
} }
}, },
"actions": { "actions": {
@@ -61,13 +61,13 @@
"end": "Riavviato" "end": "Riavviato"
}, },
"remove": { "remove": {
"start": "Rimozione", "start": "Rimozione in corso",
"end": "Rimosso" "end": "Rimosso"
} }
}, },
"errors": { "errors": {
"integrationFailed": { "integrationFailed": {
"title": "Integrazione di Docker fallita", "title": "Integrazione Docker fallita",
"message": "Hai dimenticato di montare il socket di docker?" "message": "Hai dimenticato di montare il socket di docker?"
}, },
"unknownError": { "unknownError": {

View File

@@ -8,17 +8,17 @@
"buttons": { "buttons": {
"askFor": "Richiedi {{title}}", "askFor": "Richiedi {{title}}",
"cancel": "Annulla", "cancel": "Annulla",
"request": "Richiedi" "request": "Richiesta"
}, },
"alerts": { "alerts": {
"automaticApproval": { "automaticApproval": {
"title": "Utilizzo della chiave API", "title": "Chiave API in uso",
"text": "Questa richiesta verrà approvata automaticamente" "text": "Questa richiesta verrà approvata automaticamente"
} }
} }
}, },
"seasonSelector": { "seasonSelector": {
"caption": "Spuntare le stagioni che si desidera scaricare.", "caption": "Seleziona le stagioni che desideri scaricare",
"table": { "table": {
"header": { "header": {
"season": "Stagione", "season": "Stagione",

View File

@@ -1,11 +1,11 @@
{ {
"descriptor": { "descriptor": {
"name": "Ping", "name": "Ping",
"description": "Consente di verificare se il servizio è attivo o se restituisce un codice di stato HTTP specifico." "description": "Consente di controllare se il servizio è attivo o restituisce uno specifico status code HTTP."
}, },
"states": { "states": {
"online": "Online {{response}}", "online": "Online {{response}}",
"offline": "Offline {{response}}", "offline": "Offline {{response}}",
"loading": "Caricamento..." "loading": "Caricamento in corso..."
} }
} }

View File

@@ -1,9 +1,30 @@
{ {
"descriptor": { "descriptor": {
"name": "Barra di ricerca", "name": "Barra di ricerca",
"description": "Barra di ricerca per cercare sul web, su Youtube, su Torrents o su Overseerr" "description": "Barra di ricerca per cercare sul web, Youtube, Torrent o Overseerr"
}, },
"input": { "input": {
"placeholder": "Cerca sul web..." "placeholder": "Cerca sul web..."
} },
"switched-to": "Impostato su",
"searchEngines": {
"search": {
"name": "Web",
"description": "Cerca usando il tuo motore di ricerca (definito nelle impostazioni)"
},
"youtube": {
"name": "Youtube",
"description": "Cerca su YouTube"
},
"torrents": {
"name": "Torrents",
"description": "Cerca Torrents"
},
"overseerr": {
"name": "Overseerr",
"description": "Cerca film e serie TV con Overseerr (il modulo deve essere abilitato)"
}
},
"tip": "Puoi selezionare la barra di ricerca con la scorciatoia ",
"switchedSearchEngine": "Ricerca cambiata con {{searchEngine}}"
} }

View File

@@ -1,10 +1,10 @@
{ {
"descriptor": { "descriptor": {
"name": "Torrent", "name": "Torrent",
"description": "Mostra la velocità di download attuale dei servizi supportati", "description": "Mostra la velocità di download corrente dei servizi supportati",
"settings": { "settings": {
"hideComplete": { "hideComplete": {
"label": "Nascondere i torrent completati" "label": "Nascondi torrent completati"
} }
} }
}, },
@@ -13,8 +13,8 @@
"header": { "header": {
"name": "Nome", "name": "Nome",
"size": "Dimensione", "size": "Dimensione",
"download": "In basso", "download": "Down",
"upload": "Su", "upload": "Up",
"estimatedTimeOfArrival": "ETA", "estimatedTimeOfArrival": "ETA",
"progress": "Avanzamento" "progress": "Avanzamento"
}, },
@@ -23,7 +23,7 @@
} }
}, },
"lineChart": { "lineChart": {
"title": "Velocità di download attuale", "title": "Velocità di download",
"download": "Download: {{download}}", "download": "Download: {{download}}",
"upload": "Upload: {{upload}}", "upload": "Upload: {{upload}}",
"timeSpan": "{{seconds}} secondi fa", "timeSpan": "{{seconds}} secondi fa",
@@ -33,7 +33,7 @@
"errors": { "errors": {
"noDownloadClients": { "noDownloadClients": {
"title": "Nessun client di download supportato trovato!", "title": "Nessun client di download supportato trovato!",
"text": "Aggiungere un servizio di download per visualizzare i download correnti" "text": "Aggiungi un servizio di download per visualizzare i tuoi download attuali"
} }
} }
} }

View File

@@ -1,13 +1,13 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "Usenet",
"description": "Ti consente di vedere la coda e la cronologia di usenet (Sabnzbd o NZBGet), mettere in pausa e riprendere i download." "description": "Permette di vedere la coda e la cronologia di usenet (Sabnzbd o NZBGet), di mettere in pausa e riprendere i download"
}, },
"card": { "card": {
"errors": { "errors": {
"noDownloadClients": { "noDownloadClients": {
"title": "Nessun client di download supportato trovato!", "title": "Nessun client di download supportato trovato!",
"text": "Aggiungere un servizio di download per visualizzare i download correnti" "text": "Aggiungi un servizio di download per visualizzare i tuoi download attuali"
} }
} }
}, },

View File

@@ -4,26 +4,26 @@
"description": "Consulta il meteo attuale della propria località", "description": "Consulta il meteo attuale della propria località",
"settings": { "settings": {
"displayInFahrenheit": { "displayInFahrenheit": {
"label": "Visualizzazione in Fahrenheit" "label": "Mostra in Fahrenheit"
}, },
"location": { "location": {
"label": "Posizione meteo" "label": "Località meteo"
} }
} }
}, },
"card": { "card": {
"weatherDescriptions": { "weatherDescriptions": {
"clear": "Cancella", "clear": "Sereno",
"mainlyClear": "Sereno", "mainlyClear": "Per lo più sereno",
"fog": "Nebbia", "fog": "Nebbia",
"drizzle": "Pioggerella", "drizzle": "Pioggia leggera",
"freezingDrizzle": "Pioggia gelata", "freezingDrizzle": "Pioggia leggera gelata",
"rain": "Pioggia", "rain": "Pioggia",
"freezingRain": "Pioggia gelata", "freezingRain": "Pioggia gelata",
"snowFall": "Caduta della neve", "snowFall": "Neve",
"snowGrains": "Granelli di neve", "snowGrains": "Neve tonda",
"rainShowers": "Piogge a catinelle", "rainShowers": "Rovesci",
"snowShowers": "Piogge di neve", "snowShowers": "Forti nevicate",
"thunderstorm": "Temporale", "thunderstorm": "Temporale",
"thunderstormWithHail": "Temporale con grandine", "thunderstormWithHail": "Temporale con grandine",
"unknown": "Sconosciuto" "unknown": "Sconosciuto"

View File

@@ -2,13 +2,14 @@
"title": "Impostazioni", "title": "Impostazioni",
"tooltip": "Impostazioni", "tooltip": "Impostazioni",
"tabs": { "tabs": {
"common": "Comune", "common": "Generale",
"customizations": "Personalizzazioni" "customizations": "Personalizza"
}, },
"tips": { "tips": {
"configTip": "Caricate il vostro file di configurazione trascinandolo sulla pagina!" "configTip": "Carica il file di configurazione trascinandolo e rilasciandolo sulla pagina!"
}, },
"credits": { "credits": {
"madeWithLove": "Realizzato con ❤️ da @" "madeWithLove": "Realizzato con ❤️ da @"
} },
"grow": ""
} }

View File

@@ -1,3 +1,3 @@
{ {
"label": "Larghezza dell'applicazione" "label": "Larghezza App"
} }

View File

@@ -1,3 +1,3 @@
{ {
"label": "Opacità dell'applicazione" "label": "Opacità App"
} }

View File

@@ -1,6 +1,6 @@
{ {
"pageTitle": { "pageTitle": {
"label": "Titolo della pagina", "label": "Titolo pagina",
"placeholder": "Homarr 🦞" "placeholder": "Homarr 🦞"
}, },
"logo": { "logo": {

View File

@@ -1,3 +1,3 @@
{ {
"label": "Ombreggiatura" "label": "Tonalità"
} }

View File

@@ -1,13 +1,13 @@
{ {
"configSelect": { "configSelect": {
"label": "Caricatore di configurazione" "label": "Carica configurazione"
}, },
"modal": { "modal": {
"title": "Scegliere il nome della nuova configurazione", "title": "Scegli il nome della nuova configurazione",
"form": { "form": {
"configName": { "configName": {
"label": "Nome della configurazione", "label": "Nome configurazione",
"placeholder": "Il nome della nuova configurazione" "placeholder": "Nuovo nome configurazione"
}, },
"submitButton": "Conferma" "submitButton": "Conferma"
}, },
@@ -19,21 +19,21 @@
} }
}, },
"buttons": { "buttons": {
"download": "Scarica la configurazione", "download": "Download configurazione",
"delete": { "delete": {
"text": "Cancellare la configurazione", "text": "Elimina configurazione",
"notifications": { "notifications": {
"deleted": { "deleted": {
"title": "Configurazione cancellata", "title": "Configurazione eliminata",
"message": "Configurazione cancellata" "message": "Configurazione eliminata"
}, },
"deleteFailed": { "deleteFailed": {
"title": "Cancellazione configurazione fallita", "title": "Eliminazione configurazione fallita",
"message": "Cancellazione configurazione fallita" "message": "Eliminazione configurazione fallita"
} }
} }
}, },
"saveCopy": "Salvare una copia" "saveCopy": "Salva una copia"
}, },
"dropzone": { "dropzone": {
"notifications": { "notifications": {
@@ -46,10 +46,10 @@
} }
}, },
"accept": { "accept": {
"text": "Trascinare i file qui per caricare una configurazione. Supporto solo per JSON." "text": "Trascina qui i file per caricare una configurazione. Solo file JSON supportati."
}, },
"reject": { "reject": {
"text": "Questo formato di file non è supportato. Caricare solo JSON." "text": "Formato file non supportato. Caricare solo file JSON."
} }
} }
} }

View File

@@ -1,3 +1,3 @@
{ {
"title": "Modulo abilitatore" "title": "Abilitatore moduli"
} }

View File

@@ -1,7 +1,7 @@
{ {
"title": "Motore di ricerca", "title": "Motore di ricerca",
"tips": { "tips": {
"generalTip": "Utilizzate i prefissi !yt e !t davanti alla vostra ricerca per cercare rispettivamente su YouTube o su un Torrent.", "generalTip": "Usa i prefissi !yt e !t di fronte alla tua ricerca per cercare rispettivamente su YouTube o un Torrent.",
"placeholderTip": "%s può essere usato come segnaposto per la ricerca." "placeholderTip": "%s può essere usato come segnaposto per la ricerca."
}, },
"customEngine": { "customEngine": {

View File

@@ -1,3 +1,3 @@
{ {
"label": "Posizionare i widget a sinistra" "label": "Posiziona widget a sinistra"
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "ウェブで検索..." "placeholder": "ウェブで検索..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "オーバーホール",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "ユースネット", "name": "",
"description": "Usenet (Sabnzbd または NZBGet) のキューと履歴を表示し、ダウンロードを一時停止および再開できます。" "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "で作った❤️ by @さん" "madeWithLove": "で作った❤️ by @さん"
} },
"grow": ""
} }

View File

@@ -7,7 +7,7 @@
"label": "ロゴマーク" "label": "ロゴマーク"
}, },
"favicon": { "favicon": {
"label": "Favicon" "label": "ファビコン"
}, },
"background": { "background": {
"label": "背景" "label": "背景"

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "웹에서 검색..." "placeholder": "웹에서 검색..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "ユースネット", "name": "",
"description": "유즈넷(Sabnzbd 또는 NZBGet) 대기열 및 기록을 보고 다운로드를 일시 중지 및 재개할 수 있습니다." "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Made with ❤️ by @" "madeWithLove": "Made with ❤️ by @"
} },
"grow": ""
} }

View File

@@ -7,7 +7,7 @@
"label": "로고" "label": "로고"
}, },
"favicon": { "favicon": {
"label": "Favicon" "label": "파비콘"
}, },
"background": { "background": {
"label": "배경" "label": "배경"

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Search teh web..." "placeholder": "Search teh web..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "",
"description": "Allowz u 2 c ur usenet (Sabnzbd & NZBGet) queue an histowee, paues an resuem downloadz" "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Maded wif ❤️ by @" "madeWithLove": "Maded wif ❤️ by @"
} },
"grow": ""
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Doorzoek het web..." "placeholder": "Doorzoek het web..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "",
"description": "Hiermee kunt u uw usenet (Sabnzbd of NZBGet) wachtrij en geschiedenis bekijken, downloads pauzeren en hervatten." "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Gemaakt met ❤️ door @" "madeWithLove": "Gemaakt met ❤️ door @"
} },
"grow": ""
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Szukaj w internecie..." "placeholder": "Szukaj w internecie..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "Usenet",
"description": "Pozwala zobaczyć kolejkę i historię usenetu (Sabnzbd lub NZBGet), wstrzymywać i wznawiać pobieranie." "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Wykonane z ❤️ przez @" "madeWithLove": "Wykonane z ❤️ przez @"
} },
"grow": ""
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Pesquisar na Internet..." "placeholder": "Pesquisar na Internet..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "",
"description": "Permite que você veja sua fila e histórico de usenet (Sabnzbd ou NZBGet), pausar e retomar downloads." "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Feito com ❤️ por @" "madeWithLove": "Feito com ❤️ por @"
} },
"grow": ""
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Искать в интернете..." "placeholder": "Искать в интернете..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Юнет", "name": "",
"description": "Позволяет просматривать очередь и историю Usenet (Sabnzbd или NZBGet), приостанавливать и возобновлять загрузки." "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Сделано с ❤️ по @." "madeWithLove": "Сделано с ❤️ по @."
} },
"grow": ""
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Preišči splet..." "placeholder": "Preišči splet..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "",
"description": "Omogoča ogled vaše čakalne vrste in zgodovine usenet (Sabnzbd ali NZBGet), zaustavitev in nadaljevanje prenosov." "description": ""
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Narejeno s ❤️ od @" "madeWithLove": "Narejeno s ❤️ od @"
} },
"grow": ""
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Sök på webben..." "placeholder": "Sök på webben..."
} },
"switched-to": "Växlade till",
"searchEngines": {
"search": {
"name": "Webb",
"description": "Sök med din sökmotor (definierad i inställningar)"
},
"youtube": {
"name": "YouTube",
"description": "Sök på YouTube"
},
"torrents": {
"name": "Torrents",
"description": "Sök torrents"
},
"overseerr": {
"name": "Overseerr",
"description": "Sök efter filmer och TV-program med Overseerr (modulen måste vara aktiverad)"
}
},
"tip": "Du kan välja sökfältet med kortkommandot ",
"switchedSearchEngine": "Växlade till att söka med {{searchEngine}}"
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Usenet", "name": "Usenet",
"description": "Låter dig se din usenet (Sabnzbd eller NZBGet) kö och historik, pausa och återuppta nedladdningar." "description": "Låter dig se din usenet (Sabnzbd eller NZBGet) kö och historik, pausa och återuppta nedladdningar"
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Gjort med ❤️ av @" "madeWithLove": "Gjort med ❤️ av @"
} },
"grow": "Växande rutnät (ta allt utrymme)"
} }

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Пошук в Інтернеті..." "placeholder": "Пошук в Інтернеті..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "Sabnzbd", "name": "Usenet",
"description": "Дозволяє переглядати чергу та історію usenet (Sabnzbd або NZBGet), призупиняти та відновлювати завантаження." "description": "Дозволяє вам бачити вашу чергу та історію в usenet (Sabnzbd або NZBGet), керувати завантаженнями"
}, },
"card": { "card": {
"errors": { "errors": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "Зроблено з ❤️ by @" "madeWithLove": "Зроблено з ❤️ by @"
} },
"grow": ""
} }

View File

@@ -8,6 +8,7 @@
}, },
"favicon": { "favicon": {
"label": "Іконка" "label": "Іконка"
},
"background": { "background": {
"label": "Фон" "label": "Фон"
}, },

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "Tìm kiếm trên web..." "placeholder": "Tìm kiếm trên web..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -9,6 +9,7 @@
"configTip": "Tải tệp cấu hình của bạn lên chỉ bằng cách kéo và thả tệp vào trong trang!" "configTip": "Tải tệp cấu hình của bạn lên chỉ bằng cách kéo và thả tệp vào trong trang!"
}, },
"credits": { "credits": {
"madeWithLove": "Được tạo bằng ❤️ bởi @" "madeWithLove": "From @ with ❤️"
} },
"grow": ""
} }

View File

@@ -19,7 +19,7 @@
} }
}, },
"buttons": { "buttons": {
"download": "Tải cấu hình xuống", "download": "Tải cấu hình",
"delete": { "delete": {
"text": "Xóa cấu hình", "text": "Xóa cấu hình",
"notifications": { "notifications": {

View File

@@ -5,5 +5,26 @@
}, },
"input": { "input": {
"placeholder": "在网上搜索..." "placeholder": "在网上搜索..."
} },
"switched-to": "",
"searchEngines": {
"search": {
"name": "",
"description": ""
},
"youtube": {
"name": "",
"description": ""
},
"torrents": {
"name": "",
"description": ""
},
"overseerr": {
"name": "Overseerr",
"description": ""
}
},
"tip": "",
"switchedSearchEngine": ""
} }

View File

@@ -1,7 +1,7 @@
{ {
"descriptor": { "descriptor": {
"name": "用户网", "name": "",
"description": "允许您查看您的用户网Sabnzbd 或 NZBGet队列和历史记录暂停和恢复下载。" "description": ""
}, },
"card": { "card": {
"errors": { "errors": {
@@ -16,7 +16,7 @@
"history": "历史" "history": "历史"
}, },
"info": { "info": {
"sizeLeft": "左侧大小", "sizeLeft": "左侧尺寸调整",
"paused": "暂停使用" "paused": "暂停使用"
}, },
"queue": { "queue": {

View File

@@ -10,5 +10,6 @@
}, },
"credits": { "credits": {
"madeWithLove": "用❤️创造,出品于" "madeWithLove": "用❤️创造,出品于"
} },
"grow": ""
} }

View File

@@ -1,5 +1,5 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import { Accordion, Grid, Paper, Stack, Text, useMantineColorScheme } from '@mantine/core'; import { Accordion, Grid, Stack, Title, useMantineColorScheme } from '@mantine/core';
import { import {
closestCenter, closestCenter,
DndContext, DndContext,
@@ -9,16 +9,16 @@ import {
useSensor, useSensor,
useSensors, useSensors,
} from '@dnd-kit/core'; } from '@dnd-kit/core';
import { arrayMove, SortableContext } from '@dnd-kit/sortable'; import { arrayMove, SortableContext } from '@dnd-kit/sortable';
import { useLocalStorage } from '@mantine/hooks'; import { useLocalStorage } from '@mantine/hooks';
import { useTranslation } from 'next-i18next'; import { useTranslation } from 'next-i18next';
import * as Modules from '../../modules';
import { useConfig } from '../../tools/state'; import { useConfig } from '../../tools/state';
import { SortableAppShelfItem, AppShelfItem } from './AppShelfItem'; import { AppShelfItem, SortableItem } from './AppShelfItem';
import { ModuleMenu, ModuleWrapper } from '../../modules/moduleWrapper'; import { ModuleWrapper } from '../../modules/moduleWrapper';
import { UsenetModule, TorrentsModule } from '../../modules'; import { UsenetModule, TorrentsModule } from '../../modules';
import TorrentsComponent from '../../modules/torrents/TorrentsModule';
import { UsenetComponent } from '../../modules/usenet/UsenetModule';
const AppShelf = (props: any) => { const AppShelf = (props: any) => {
const { config, setConfig } = useConfig(); const { config, setConfig } = useConfig();
@@ -79,13 +79,14 @@ const AppShelf = (props: any) => {
const getItems = (filter?: string) => { const getItems = (filter?: string) => {
// If filter is not set, return all the services without a category or a null category // If filter is not set, return all the services without a category or a null category
let filtered = config.services; let filtered = config.services;
const modules = Object.values(Modules).map((module) => module);
if (!filter) { if (!filter) {
filtered = config.services.filter((e) => !e.category || e.category === null); filtered = config.services.filter((e) => !e.category || e.category === null);
} }
if (filter) { if (filter) {
filtered = config.services.filter((e) => e.category === filter); filtered = config.services.filter((e) => e.category === filter);
} }
return ( return (
<DndContext <DndContext
sensors={sensors} sensors={sensors}
@@ -94,17 +95,12 @@ const AppShelf = (props: any) => {
onDragEnd={handleDragEnd} onDragEnd={handleDragEnd}
> >
<SortableContext items={config.services}> <SortableContext items={config.services}>
<Grid gutter="xl" align="center"> <Grid gutter="lg" grow={config.settings.grow}>
{filtered.map((service) => ( {filtered.map((service) => (
<Grid.Col <Grid.Col key={service.id} span="content">
key={service.id} <SortableItem service={service} key={service.id} id={service.id}>
span={6} <AppShelfItem service={service} />
xl={config.settings.appCardWidth || 2} </SortableItem>
xs={4}
sm={3}
md={3}
>
<SortableAppShelfItem service={service} key={service.id} id={service.id} />
</Grid.Col> </Grid.Col>
))} ))}
</Grid> </Grid>
@@ -123,100 +119,43 @@ const AppShelf = (props: any) => {
); );
}; };
if (categoryList.length > 0) {
const noCategory = config.services.filter(
(e) => e.category === undefined || e.category === null
);
const torrentEnabled = config.modules?.[TorrentsModule.id]?.enabled ?? false;
const usenetEnabled = config.modules?.[UsenetModule.id]?.enabled ?? false;
const downloadEnabled = usenetEnabled || torrentEnabled;
// Create an item with 0: true, 1: true, 2: true... For each category
return (
// TODO: Style accordion so that the bar is transparent to the user settings
<Stack>
<Accordion
variant="separated"
radius="lg"
order={2}
multiple
value={toggledCategories}
onChange={(state) => {
setToggledCategories([...state]);
}}
>
{categoryList.map((category, idx) => (
<Accordion.Item
style={{
background: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '255, 255, 255,'} \
${(config.settings.appOpacity || 100) / 100}`,
borderColor: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '233, 236, 239,'} \
${(config.settings.appOpacity || 100) / 100}`,
}}
key={category}
value={idx.toString()}
>
<Accordion.Control>{category}</Accordion.Control>
<Accordion.Panel>{getItems(category)}</Accordion.Panel>
</Accordion.Item>
))}
{/* Return the item for all services without category */}
{noCategory && noCategory.length > 0 ? (
<Accordion.Item
style={{
background: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '255, 255, 255,'} \
${(config.settings.appOpacity || 100) / 100}`,
borderColor: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '233, 236, 239,'} \
${(config.settings.appOpacity || 100) / 100}`,
}}
key="Other"
value="Other"
>
<Accordion.Control>{t('accordions.others.text')}</Accordion.Control>
<Accordion.Panel>{getItems()}</Accordion.Panel>
</Accordion.Item>
) : null}
{downloadEnabled ? (
<Accordion.Item
style={{
color: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '255, 255, 255,'} \
${(config.settings.appOpacity || 100) / 100}`,
background: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '255, 255, 255,'} \
${(config.settings.appOpacity || 100) / 100}`,
borderColor: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '233, 236, 239,'} \
${(config.settings.appOpacity || 100) / 100}`,
}}
key="Downloads"
value="Your downloads"
>
<Accordion.Control>{t('accordions.downloads.text')}</Accordion.Control>
<Accordion.Panel>
<Paper radius="lg" style={{ position: 'relative' }}>
{torrentEnabled && (
<>
<Text>{t('accordions.downloads.torrents')}</Text>
<ModuleMenu module={TorrentsModule} hovered />
<TorrentsComponent />
</>
)}
{usenetEnabled && (
<>
<Text mt="md">{t('accordions.downloads.usenet')}</Text>
<ModuleMenu module={UsenetModule} hovered />
<UsenetComponent />
</>
)}
</Paper>
</Accordion.Panel>
</Accordion.Item>
) : null}
</Accordion>
</Stack>
);
}
return ( return (
<Stack> <Stack>
<Accordion
variant="separated"
radius="lg"
order={2}
multiple
value={toggledCategories}
onChange={(state) => {
setToggledCategories([...state]);
}}
>
{categoryList.map((category, idx) => (
<Accordion.Item
style={{
background: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '255, 255, 255,'} \
${(config.settings.appOpacity || 100) / 100}`,
borderColor: `rgba(${colorScheme === 'dark' ? '32, 33, 35,' : '233, 236, 239,'} \
${(config.settings.appOpacity || 100) / 100}`,
}}
key={category}
value={idx.toString()}
>
<Accordion.Control>
<Title
order={5}
style={{
minWidth: 0,
}}
>
{category}
</Title>
</Accordion.Control>
<Accordion.Panel>{getItems(category)}</Accordion.Panel>
</Accordion.Item>
))}
</Accordion>
{getItems()} {getItems()}
<ModuleWrapper mt="xl" module={TorrentsModule} /> <ModuleWrapper mt="xl" module={TorrentsModule} />
<ModuleWrapper mt="xl" module={UsenetModule} /> <ModuleWrapper mt="xl" module={UsenetModule} />

View File

@@ -31,7 +31,7 @@ const useStyles = createStyles((theme) => ({
}, },
})); }));
export function SortableAppShelfItem(props: any) { export function SortableItem(props: any) {
const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ const { attributes, listeners, setNodeRef, transform, transition } = useSortable({
id: props.id, id: props.id,
}); });
@@ -43,7 +43,7 @@ export function SortableAppShelfItem(props: any) {
return ( return (
<div ref={setNodeRef} style={style} {...attributes} {...listeners}> <div ref={setNodeRef} style={style} {...attributes} {...listeners}>
<AppShelfItem service={props.service} /> {props.children}
</div> </div>
); );
} }
@@ -75,6 +75,8 @@ export function AppShelfItem(props: any) {
shadow="md" shadow="md"
className={classes.item} className={classes.item}
style={{ style={{
// Use the grab cursor when hovering over the card
cursor: hovering ? 'grab' : 'auto',
background: `rgba(${colorScheme === 'dark' ? '37, 38, 43,' : '255, 255, 255,'} \ background: `rgba(${colorScheme === 'dark' ? '37, 38, 43,' : '255, 255, 255,'} \
${(config.settings.appOpacity || 100) / 100}`, ${(config.settings.appOpacity || 100) / 100}`,
borderColor: `rgba(${colorScheme === 'dark' ? '37, 38, 43,' : '233, 236, 239,'} \ borderColor: `rgba(${colorScheme === 'dark' ? '37, 38, 43,' : '233, 236, 239,'} \
@@ -105,14 +107,14 @@ export function AppShelfItem(props: any) {
<AppShelfMenu service={service} /> <AppShelfMenu service={service} />
</motion.div> </motion.div>
</Card.Section> </Card.Section>
<Center> <Card.Section>
<Card.Section> <Center>
<AspectRatio <AspectRatio
ratio={3 / 5} ratio={3 / 5}
m="xl" m="lg"
style={{ style={{
width: 150, height: 75 * ((config.settings.appCardWidth ?? 1) * 1.2),
height: 90, width: 75 * ((config.settings.appCardWidth ?? 1) * 2),
}} }}
> >
<motion.i <motion.i
@@ -126,8 +128,8 @@ export function AppShelfItem(props: any) {
> >
<Image <Image
styles={{ root: { cursor: 'pointer' } }} styles={{ root: { cursor: 'pointer' } }}
width={80} width={75 * ((config.settings.appCardWidth ?? 1) * 1.2)}
height={80} height={75 * ((config.settings.appCardWidth ?? 1) * 1.2)}
src={service.icon} src={service.icon}
fit="contain" fit="contain"
/> />
@@ -135,8 +137,8 @@ export function AppShelfItem(props: any) {
</motion.i> </motion.i>
</AspectRatio> </AspectRatio>
{service.ping !== false && <PingComponent url={service.url} status={service.status} />} {service.ping !== false && <PingComponent url={service.url} status={service.status} />}
</Card.Section> </Center>
</Center> </Card.Section>
</Card> </Card>
</motion.div> </motion.div>
); );

View File

@@ -6,6 +6,7 @@ import { ColorSelector } from './ColorSelector';
import { OpacitySelector } from './OpacitySelector'; import { OpacitySelector } from './OpacitySelector';
import { AppCardWidthSelector } from './AppCardWidthSelector'; import { AppCardWidthSelector } from './AppCardWidthSelector';
import { ShadeSelector } from './ShadeSelector'; import { ShadeSelector } from './ShadeSelector';
import { GrowthSelector } from './GrowthSelector';
export default function TitleChanger() { export default function TitleChanger() {
const { config, setConfig } = useConfig(); const { config, setConfig } = useConfig();
@@ -74,6 +75,7 @@ export default function TitleChanger() {
<Button type="submit">{t('buttons.submit')}</Button> <Button type="submit">{t('buttons.submit')}</Button>
</Stack> </Stack>
</form> </form>
<GrowthSelector />
<ColorSelector type="primary" /> <ColorSelector type="primary" />
<ColorSelector type="secondary" /> <ColorSelector type="secondary" />
<ShadeSelector /> <ShadeSelector />

View File

@@ -21,11 +21,11 @@ export function AppCardWidthSelector() {
<Stack spacing="xs"> <Stack spacing="xs">
<Text>{t('label')}</Text> <Text>{t('label')}</Text>
<Slider <Slider
label={null} label={config.settings.appCardWidth?.toFixed(1)}
defaultValue={config.settings.appCardWidth} defaultValue={config.settings.appCardWidth ?? 0.7}
step={0.2} step={0.1}
min={0.8} min={0.3}
max={2} max={1.2}
styles={{ markLabel: { fontSize: 'xx-small' } }} styles={{ markLabel: { fontSize: 'xx-small' } }}
onChange={(value) => setappCardWidth(value)} onChange={(value) => setappCardWidth(value)}
/> />

View File

@@ -0,0 +1,30 @@
import { Switch } from '@mantine/core';
import { useTranslation } from 'next-i18next';
import { useState } from 'react';
import { useConfig } from '../../tools/state';
export function GrowthSelector() {
const { config, setConfig } = useConfig();
const defaultPosition = config?.settings?.grow || false;
const [growState, setGrowState] = useState(defaultPosition);
const { t } = useTranslation('settings/common.json');
const toggleGrowState = () => {
setGrowState(!growState);
setConfig({
...config,
settings: {
...config.settings,
grow: !growState,
},
});
};
return (
<Switch
label={t('settings/common:grow')}
checked={growState === true}
onChange={() => toggleGrowState()}
size="md"
/>
);
}

View File

@@ -48,15 +48,11 @@ export function WidgetsPositionSwitch() {
}; };
return ( return (
<Group> <Switch
<div className={classes.root}> label={t('label')}
<Switch checked={widgetPosition === 'left'}
checked={widgetPosition === 'left'} onChange={() => toggleWidgetPosition()}
onChange={() => toggleWidgetPosition()} size="md"
size="md" />
/>
</div>
{t('label')}
</Group>
); );
} }

View File

@@ -9,7 +9,7 @@ export function Logo({ style, withoutText }: any) {
const { primaryColor, secondaryColor } = useColorTheme(); const { primaryColor, secondaryColor } = useColorTheme();
return ( return (
<Group spacing="xs"> <Group spacing="xs" noWrap>
<Image <Image
width={50} width={50}
src={config.settings.logo || '/imgs/logo/logo.png'} src={config.settings.logo || '/imgs/logo/logo.png'}
@@ -18,26 +18,18 @@ export function Logo({ style, withoutText }: any) {
}} }}
/> />
{withoutText ? null : ( {withoutText ? null : (
<NextLink <Text
href="/" sx={style}
style={{ weight="bold"
textDecoration: 'none', variant="gradient"
position: 'relative', gradient={{
from: primaryColor,
to: secondaryColor,
deg: 145,
}} }}
> >
<Text {config.settings.title || 'Homarr'}
sx={style} </Text>
weight="bold"
variant="gradient"
gradient={{
from: primaryColor,
to: secondaryColor,
deg: 145,
}}
>
{config.settings.title || 'Homarr'}
</Text>
</NextLink>
)} )}
</Group> </Group>
); );

View File

@@ -1,27 +1,16 @@
import { Box, createStyles, Group, Header as Head, useMantineColorScheme } from '@mantine/core'; import { Group, Header as Head, useMantineColorScheme, useMantineTheme } from '@mantine/core';
import { useViewportSize } from '@mantine/hooks';
import { AddItemShelfButton } from '../../AppShelf/AddAppShelfItem'; import { AddItemShelfButton } from '../../AppShelf/AddAppShelfItem';
import DockerMenuButton from '../../../modules/docker/DockerModule'; import DockerMenuButton from '../../../modules/docker/DockerModule';
import SearchBar from '../../../modules/search/SearchModule';
import { SettingsMenuButton } from '../../Settings/SettingsMenu'; import { SettingsMenuButton } from '../../Settings/SettingsMenu';
import { Logo } from '../Logo'; import { Logo } from '../Logo';
import { useConfig } from '../../../tools/state'; import { useConfig } from '../../../tools/state';
import { SearchModuleComponent } from '../../../modules/search/SearchModule';
const useStyles = createStyles((theme) => ({
hide: {
[theme.fn.smallerThan('xs')]: {
display: 'none',
},
},
burger: {
[theme.fn.largerThan('sm')]: {
display: 'none',
},
},
}));
export function Header(props: any) { export function Header(props: any) {
const { classes } = useStyles(); const { width } = useViewportSize();
const MIN_WIDTH_MOBILE = useMantineTheme().breakpoints.xs;
const { config } = useConfig(); const { config } = useConfig();
const { colorScheme } = useMantineColorScheme(); const { colorScheme } = useMantineColorScheme();
@@ -35,12 +24,10 @@ export function Header(props: any) {
${(config.settings.appOpacity || 100) / 100}`, ${(config.settings.appOpacity || 100) / 100}`,
}} }}
> >
<Group p="xs" position="apart"> <Group p="xs" noWrap grow>
<Box className={classes.hide}> {width > MIN_WIDTH_MOBILE && <Logo style={{ fontSize: 22 }} />}
<Logo style={{ fontSize: 22 }} /> <Group position="right" noWrap>
</Box> <SearchModuleComponent />
<Group noWrap>
<SearchBar />
<DockerMenuButton /> <DockerMenuButton />
<SettingsMenuButton /> <SettingsMenuButton />
<AddItemShelfButton /> <AddItemShelfButton />

View File

@@ -7,6 +7,7 @@ import {
ScrollArea, ScrollArea,
createStyles, createStyles,
useMantineTheme, useMantineTheme,
Space,
} from '@mantine/core'; } from '@mantine/core';
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { Calendar } from '@mantine/dates'; import { Calendar } from '@mantine/dates';
@@ -143,12 +144,6 @@ export default function CalendarComponent(props: any) {
margin: 1, margin: 1,
} }
} }
styles={{
calendarHeader: {
marginRight: 40,
marginLeft: 40,
},
}}
allowLevelChange={false} allowLevelChange={false}
dayClassName={(date, modifiers) => cx({ [classes.weekend]: modifiers.weekend })} dayClassName={(date, modifiers) => cx({ [classes.weekend]: modifiers.weekend })}
renderDay={(renderdate) => ( renderDay={(renderdate) => (
@@ -278,10 +273,11 @@ function DayComponent(props: any) {
scrollbarSize={5} scrollbarSize={5}
style={{ style={{
height: height:
totalFiltered.slice(0, 2).length > 1 ? totalFiltered.slice(0, 2).length * 150 : 200, totalFiltered.slice(0, 2).length > 1 ? totalFiltered.slice(0, 2).length * 150 : 220,
width: 400, width: 400,
}} }}
> >
<Space mt={5} />
{sonarrFiltered.map((media: any, index: number) => ( {sonarrFiltered.map((media: any, index: number) => (
<React.Fragment key={index}> <React.Fragment key={index}>
<SonarrMediaDisplay media={media} /> <SonarrMediaDisplay media={media} />

View File

@@ -163,7 +163,7 @@ export function MediaDisplay({ media }: { media: IMedia }) {
const { t } = useTranslation('modules/common-media-cards'); const { t } = useTranslation('modules/common-media-cards');
return ( return (
<Group mr="xs" align="stretch" noWrap style={{ maxHeight: 200 }}> <Group mr="xs" align="stretch" noWrap style={{ maxHeight: 200 }} spacing="xs">
<Image src={media.poster} height={200} width={150} radius="md" fit="cover" /> <Image src={media.poster} height={200} width={150} radius="md" fit="cover" />
<Stack justify="space-around"> <Stack justify="space-around">
<Stack spacing="sm"> <Stack spacing="sm">

Some files were not shown because too many files have changed in this diff Show More