Compare commits

...

19 Commits

Author SHA1 Message Date
Chris Hunt
be59ac794e Allow ico images fixes #1357 2024-11-05 11:11:34 +00:00
KodeStar
f820c0b4f6 Merge pull request #1388 from dfernandezdaw/2.x
Update Spanish translations
2024-11-05 10:56:55 +00:00
KodeStar
2b43760dc8 Merge pull request #1391 from linuxserver/bugfix/two_dots
Fix 2 dots that are visible on light backgrounds
2024-11-05 10:50:21 +00:00
KodeStar
8f360f97ef Merge branch '2.x' into bugfix/two_dots 2024-11-05 10:44:15 +00:00
KodeStar
014f054862 Merge pull request #1390 from linuxserver/feature/search_from_url
Search from URL fixed #1369
2024-11-05 10:42:59 +00:00
Chris Hunt
5ccb87cd7f Fix 2 dots that are visible on light backgrounds #1383 2024-11-05 10:42:05 +00:00
Chris Hunt
8ba8f0c867 Prettier fix 2024-11-05 10:33:12 +00:00
Chris Hunt
c2a3368c7b Search from URL fixed #1369 2024-11-05 10:29:34 +00:00
KodeStar
395c775d4e Merge pull request #1387 from linuxserver/bugfix/search_category_tiles
Fix searching of tiles in category mode
2024-11-05 10:14:02 +00:00
KodeStar
1063d2cd09 Update app.php 2024-11-05 09:42:10 +00:00
David
18609fb3c2 Update Spanish translations 2024-11-04 21:18:04 +01:00
Chris Hunt
b880333856 Fixes #1386 2024-11-04 10:30:24 +00:00
KodeStar
026bcf9e43 Merge pull request #1384 from linuxserver/feature/throttle_websitelookup
Throttle websitelookup's to 10 per minute to limit port scan effectiveness
2024-11-04 10:05:52 +00:00
Chris Hunt
837f5c49fa Throttle websitelookup's to 10 per minute to limit port scan effictiveness 2024-11-04 09:54:10 +00:00
KodeStar
a4973869d4 Merge pull request #1372 from tremor021/2.x
Added Serbian translation
2024-11-04 09:38:23 +00:00
KodeStar
07ea22dd10 Merge pull request #1328 from goodactive/2.x
chore: fix some typos in comments
2024-11-04 09:25:06 +00:00
tremor021
6188b1d669 Added Serbian translation 2024-09-27 22:04:30 +02:00
goodactive
184e19abbc chore: fix some typos in comments
Signed-off-by: goodactive <goodactive@qq.com>
2024-04-19 18:00:20 +08:00
KodeStar
f405cf2ddf Update validation.php
Fix missing comma in Japanese translation
2024-03-31 21:40:31 +01:00
17 changed files with 176 additions and 43 deletions

View File

@@ -12924,7 +12924,7 @@ namespace Illuminate\Support\Facades {
$instance->substituteImplicitBindings($route);
}
/**
* Register a callback to to run after implicit bindings are substituted.
* Register a callback to run after implicit bindings are substituted.
*
* @param callable $callback
* @return \Illuminate\Routing\Router

View File

@@ -117,7 +117,7 @@ function className($name)
*/
function isImage(string $file, string $extension): bool
{
$allowedExtensions = ['jpg', 'jpeg', 'png', 'bmp', 'gif', 'svg', 'webp'];
$allowedExtensions = ['jpg', 'jpeg', 'png', 'bmp', 'gif', 'svg', 'webp', 'ico'];
if (!in_array($extension, $allowedExtensions)) {
return false;

View File

@@ -185,7 +185,7 @@ class ItemController extends Controller
{
// Get the item
$item = Item::find($id);
if ($item->appid === null && $item->class !== null) { // old apps wont have an app id so set it
if ($item->appid === null && $item->class !== null) { // old apps won't have an app id so set it
$app = Application::where('class', $item->class)->first();
if ($app) {
$item->appid = $app->appid;

View File

@@ -5,6 +5,7 @@ namespace App;
use Cache;
use Form;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Request as Input;
use Yaml;
abstract class Search
@@ -106,7 +107,7 @@ abstract class Search
if ((bool) $homepage_search !== true) {
return $output;
}
$user_search_provider = $user_search_provider ?? 'none';
$user_search_provider = Input::get('p') ?? $user_search_provider ?? 'none';
if ((bool) $search_provider) {
if ((bool) $user_search_provider) {
@@ -124,7 +125,7 @@ abstract class Search
$output .= '</select>';
$output .= Form::text(
'q',
null,
Input::get('q') ?? null,
[
'class' => 'homesearch',
'autofocus' => 'autofocus',

View File

@@ -17,7 +17,7 @@ return [
*/
'name' => env('APP_NAME', 'Heimdall'),
'version' => '2.6.1',
'version' => '2.6.3',
/*
|--------------------------------------------------------------------------

View File

@@ -4,23 +4,23 @@ return array (
'settings.system' => 'Sistema',
'settings.appearance' => 'Apariencia',
'settings.miscellaneous' => 'Miscelánea',
'settings.advanced' => 'Avanzada',
'settings.advanced' => 'Avanzado',
'settings.support' => 'Soporte',
'settings.donate' => 'Donar',
'settings.version' => 'Versión',
'settings.background_image' => 'Imagen de Fondo',
'settings.trianglify' => 'Trianglify',
'settings.trianglify_seed' => 'Trianglify Random Seed',
'settings.window_target' => 'Vínculo abre en',
'settings.window_target.current' => 'Abrir en ésta pestaña',
'settings.trianglify' => 'Patrón de triángulos',
'settings.trianglify_seed' => 'Semilla Aleatoria del Patrón de Triángulos',
'settings.window_target' => 'Abrir enlace en',
'settings.window_target.current' => 'Abrir en esta pestaña',
'settings.window_target.one' => 'Abrir en la misma pestaña',
'settings.window_target.new' => 'Abrir en una nueva pestaña',
'settings.homepage_search' => 'Página de Inicio de Búsqueda',
'settings.homepage_search' => 'Búsqueda en Página de Inicio',
'settings.search_provider' => 'Proveedor de búsqueda',
'settings.language' => 'Idioma',
'settings.reset' => 'Restablecer a predeterminado',
'settings.remove' => 'Quitar',
'settings.search' => 'búsqueda',
'settings.search' => 'buscar',
'settings.no_items' => 'No se encontraron elementos',
'settings.label' => 'Etiqueta',
'settings.value' => 'Valor',
@@ -28,6 +28,10 @@ return array (
'settings.view' => 'Ver',
'settings.custom_css' => 'CSS Personalizado',
'settings.custom_js' => 'JavaScript Personalizado',
'settings.treat_tags_as' => 'Tratar etiquetas como:',
'settings.folders' => 'Carpetas',
'settings.tags' => 'Etiquetas',
'settings.categories' => 'Categorías',
'options.none' => '- no establecido -',
'options.google' => 'Google',
'options.ddg' => 'DuckDuckGo',
@@ -42,38 +46,39 @@ return array (
'buttons.cancel' => 'Cancelar',
'buttons.add' => 'Añadir',
'buttons.upload' => 'Cargar un archivo',
'buttons.downloadapps' => 'Actualizar lista de Applicaciones',
'dash.pin_item' => 'Pin elemento al tablero',
'buttons.downloadapps' => 'Actualizar Lista de Aplicaciones',
'dash.pin_item' => 'Anclar elemento al tablero',
'dash.no_apps' => 'Actualmente no hay aplicaciones ancladas, :link1 o :link2',
'dash.link1' => 'Agregue una aplicación aquí',
'dash.link2' => 'Pin de un elemento en el tablero',
'dash.link2' => 'Anclar un elemento en el tablero',
'dash.pinned_items' => 'Elementos Anclados',
'apps.app_list' => 'Lista de aplicaciones',
'apps.app_list' => 'Listado de aplicaciones',
'apps.view_trash' => 'Vista de la papelera de reciclaje',
'apps.add_application' => 'Agregar aplicación',
'apps.application_name' => 'Nombre de la aplicación',
'apps.colour' => 'Color',
'apps.icon' => 'Icono',
'apps.pinned' => 'Fijado',
'apps.pinned' => 'Anclado',
'apps.title' => 'Título',
'apps.hex' => 'Código de color hexadecimal',
'apps.username' => 'Nombre de usuario',
'apps.password' => 'Contraseña',
'apps.config' => 'Config',
'apps.config' => 'Configuración',
'apps.apikey' => 'Clave de API',
'apps.enable' => 'Habilitar',
'apps.tag_list' => 'Lista de Etiquetas',
'apps.tag_list' => 'Listado de etiquetas',
'apps.add_tag' => 'Añadir Etiqueta',
'apps.tag_name' => 'Nombre de Etiqueta',
'apps.tags' => 'Etiquetas',
'apps.override' => 'Si es differente de la URL principal',
'apps.override' => 'Si es diferente de la URL principal',
'apps.preview' => 'Previsualizar',
'apps.apptype' => 'Tipo de Aplicación',
'apps.website' => 'Sitio Web',
'apps.description' => 'Descripción',
'apps.only_admin_account' => '¡Solo si tienes cuenta de administrador!',
'apps.autologin_url' => 'URL de auto inicio de sessión',
'apps.autologin_url' => 'URL de inicio de sesión automático',
'apps.show_deleted' => 'Mostrando Aplicaciones Eliminadas',
'apps.import' => 'Importar',
'dashboard' => 'Tablero Inicial',
'user.user_list' => 'Usuarios',
'user.add_user' => 'Añadir Usuario',
@@ -82,27 +87,31 @@ return array (
'user.email' => 'Correo Electrónico',
'user.password_confirm' => 'Confirmar Contraseña',
'user.secure_front' => 'Permitir acceso público a la interfaz - Forzado solo si una contraseña está definida.',
'user.autologin' => 'Permitir inicio de sesión desde una URL específica. Cualquiera con el vínculo puede iniciar sesión.',
'user.autologin' => 'Permitir inicio de sesión desde una URL específica. Cualquiera con el enlace puede iniciar sesión.',
'url' => 'Url',
'title' => 'Título',
'delete' => 'Borrar',
'optional' => 'Opcional',
'restore' => 'Restaurar',
'export' => 'Exportar',
'import' => 'Importar',
'alert.success.item_created' => 'Elemento creado con éxito',
'alert.success.item_updated' => 'Artículo actualizado con éxito',
'alert.success.item_updated' => 'Elemento actualizado con éxito',
'alert.success.item_deleted' => 'Elemento eliminado correctamente',
'alert.success.item_restored' => 'Elemento restaurado con éxito',
'alert.success.updating' => 'Actualizando lista de aplicaciones',
'alert.success.tag_created' => 'Etiqueta creada exitósamente',
'alert.success.tag_updated' => 'Etiqueta actualizada exitósamente',
'alert.success.tag_deleted' => 'Etiqueta eliminada exitósamente',
'alert.success.tag_restored' => 'Etiqueta restaurada exitósamente',
'alert.success.setting_updated' => 'Ha editado con éxito esta configuración',
'alert.success.tag_updated' => 'Etiqueta actualizada exitosamente',
'alert.success.tag_deleted' => 'Etiqueta eliminada exitosamente',
'alert.success.tag_restored' => 'Etiqueta restaurada exitosamente',
'alert.success.setting_updated' => 'Configuración editada con éxito',
'alert.error.not_exist' => 'Esta configuración no existe.',
'alert.success.user_created' => 'Usuario creado exitósamente',
'alert.success.user_updated' => 'Usuario actualizado exitósamente',
'alert.success.user_deleted' => 'Usuario eliminado exitósamente',
'alert.success.user_restored' => 'Usuario restaurado exitósamente',
'alert.error.file_too_big' => 'El fichero es demasiado grande.',
'alert.error.file_not_stored' => 'El fichero no se ha podido almacenar.',
'alert.success.user_created' => 'Usuario creado exitosamente',
'alert.success.user_updated' => 'Usuario actualizado exitosamente',
'alert.success.user_deleted' => 'Usuario eliminado exitosamente',
'alert.success.user_restored' => 'Usuario restaurado exitosamente',
'dashboard.reorder' => 'Reordenar y anclar elementos',
'dashboard.settings' => 'Ajustes',
);

View File

@@ -93,7 +93,7 @@ return [
'timezone' => ':attribute は有効なゾーンでなければなりません。',
'unique' => ':attribute は既に取得されています。',
'uploaded' => ':attribute のアップロードに失敗しました。',
'url' => ':attribute 形式が無効です。'
'url' => ':attribute 形式が無効です。',
/*
|--------------------------------------------------------------------------

117
lang/rs/app.php Normal file
View File

@@ -0,0 +1,117 @@
<?php
return array (
'settings.system' => 'Sistem',
'settings.appearance' => 'Izgled',
'settings.miscellaneous' => 'Razno',
'settings.advanced' => 'Napredno',
'settings.support' => 'Podrška',
'settings.donate' => 'Doniraj',
'settings.version' => 'Verzija',
'settings.background_image' => 'Slika u pozadini',
'settings.trianglify' => 'Trianglify pozadine',
'settings.trianglify_seed' => 'Trianglify Random Seed',
'settings.window_target' => 'Linkovi se otvaraju',
'settings.window_target.current' => 'U ovom tab-u',
'settings.window_target.one' => 'U istom tab-u',
'settings.window_target.new' => 'U novom tab-u',
'settings.homepage_search' => 'Pretraga na početnoj strani',
'settings.search_provider' => 'Podrazumevani pretraživač',
'settings.language' => 'Jezik',
'settings.reset' => 'Vraćanje na podrazumevane vrednosti',
'settings.remove' => 'Ukloni',
'settings.search' => 'pretraga',
'settings.no_items' => 'Nije pronađen ni jedan rezultat',
'settings.label' => 'Labela',
'settings.value' => 'Vrednost',
'settings.edit' => 'Izmeni',
'settings.view' => 'Pregled',
'settings.custom_css' => 'Ručni CSS',
'settings.custom_js' => 'Ručni JavaScript',
'settings.treat_tags_as' => 'Tretiraj Oznake Kao:',
'settings.folders' => 'Fascikle',
'settings.tags' => 'Oznake',
'settings.categories' => 'Kategorije',
'options.none' => '- nepodešeno -',
'options.google' => 'Google',
'options.ddg' => 'DuckDuckGo',
'options.bing' => 'Bing',
'options.qwant' => 'Qwant',
'options.startpage' => 'StartPage',
'options.yes' => 'Da',
'options.no' => 'Ne',
'options.nzbhydra' => 'NZBHydra',
'options.jackett' => 'Jackett',
'buttons.save' => 'Sačuvaj',
'buttons.cancel' => 'Otkaži',
'buttons.add' => 'Dodaj',
'buttons.upload' => 'Učitaj ikonu',
'buttons.downloadapps' => 'Ažuriraj Listu Aplikacija',
'dash.pin_item' => 'Zakači na Dashboard',
'dash.no_apps' => 'Trenutno nema zakačenih aplikacija, :link1 or :link2',
'dash.link1' => 'Dodaj aplikaciju ovde',
'dash.link2' => 'Zakači stavku na Dashboard',
'dash.pinned_items' => 'Zakačene Stavke',
'apps.app_list' => 'Lista aplikacija',
'apps.view_trash' => 'Pogledaj smeće',
'apps.add_application' => 'Dodaj aplikaciju',
'apps.application_name' => 'Naziv aplikacije',
'apps.colour' => 'Boja',
'apps.icon' => 'Ikona',
'apps.pinned' => 'Zakačeno',
'apps.title' => 'Naziv',
'apps.hex' => 'Hexadecimalna boja',
'apps.username' => 'Korisnik',
'apps.password' => 'Šifra',
'apps.config' => 'Konfiguracija',
'apps.apikey' => 'API Ključ',
'apps.enable' => 'Omogući',
'apps.tag_list' => 'Lista oznaka',
'apps.add_tag' => 'Dodaj oznaku',
'apps.tag_name' => 'Naziv oznake',
'apps.tags' => 'Oznake',
'apps.override' => 'Ukoliko je različito od glavnom url-a',
'apps.preview' => 'Prikaz',
'apps.apptype' => 'Tip Aplikacije',
'apps.website' => 'Web sajt',
'apps.description' => 'Opis',
'apps.only_admin_account' => 'Samo ako imate administratorski nalog!',
'apps.autologin_url' => 'Url za automatsko logovanje',
'apps.show_deleted' => 'Prikazivanje obrisanih aplikacija',
'app.import' => 'Uvoz',
'dashboard' => 'Početni Dashboard',
'user.user_list' => 'Korisnici',
'user.add_user' => 'Dodaj korisnika',
'user.username' => 'Korisnik',
'user.avatar' => 'Slika',
'user.email' => 'E-mail',
'user.password_confirm' => 'Potvrdi šifu',
'user.secure_front' => 'Dozvoli javni pristup početnoj stranici - Forsira se samo ako je podešena šifra.',
'user.autologin' => 'Dozvoli logovanje sa specifičnog URL-a. Bilo ko sa linkom se može ulogovati.',
'url' => 'URL',
'title' => 'Naziv',
'delete' => 'Obriši',
'optional' => 'Opcionalno',
'restore' => 'Povrati',
'export' => 'Izvezi',
'import' => 'Uvezi',
'alert.success.item_created' => 'Stavka uspešno kreirana',
'alert.success.item_updated' => 'Stavka uspešno ažurirana',
'alert.success.item_deleted' => 'Stavka uspešno obrisana',
'alert.success.item_restored' => 'Stavka uspešno povraćena',
'alert.success.updating' => 'Ažuriranje liste aplikacija',
'alert.success.tag_created' => 'Oznaka uspešno kreirana',
'alert.success.tag_updated' => 'Oznaka uspešno ažurirana',
'alert.success.tag_deleted' => 'Oznaka uspešno obrisana',
'alert.success.tag_restored' => 'Oznaka uspešno povraćena',
'alert.success.setting_updated' => 'Uspešno ste izmenili ovo podešavanje',
'alert.error.not_exist' => 'Ovo podešavanje ne postoji.',
'alert.error.file_too_big' => 'Prevelik fajl.',
'alert.error.file_not_stored' => 'Nije moguće učitati fajl.',
'alert.success.user_created' => 'Korisnik uspešno kreiran',
'alert.success.user_updated' => 'Korisnik uspešnop ažuriran',
'alert.success.user_deleted' => 'Korisnik uspešno obrisan',
'alert.success.user_restored' => 'Korisnik uspešno povraćen',
'dashboard.reorder' => 'Preuredi i zakači stavke',
'dashboard.settings' => 'Podešavanja',
);

2
public/css/app.css vendored

File diff suppressed because one or more lines are too long

2
public/js/app.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,4 @@
{
"/css/app.css": "/css/app.css?id=9ac09de3efefe57251cba47c5747c556",
"/js/app.js": "/js/app.js?id=a3df64b8054d7a3f742957b38d687835"
"/css/app.css": "/css/app.css?id=e8db4d3d99fdd3f0c747bb894c843e8e",
"/js/app.js": "/js/app.js?id=3b306fb20ef1a3c96c09963a4f6ff712"
}

View File

@@ -25,7 +25,7 @@ Why not use it as your browser start page? It even has the ability to include a
If you want to see a quick video of Heimdall in use, go to https://youtu.be/GXnnMAxPzMc
## Supported applications
You can use the app to link to any site or application, but Foundation apps will auto fill in the icon for the app and supply a default color for the tile. In addition, Enhanced apps allow you provide details to an apps API, allowing you to view live stats directly on the dashboad. For example, the NZBGet and Sabnzbd Enhanced apps will display the queue size, and download speed while something is downloading.
You can use the app to link to any site or application, but Foundation apps will auto fill in the icon for the app and supply a default color for the tile. In addition, Enhanced apps allow you provide details to an apps API, allowing you to view live stats directly on the dashboard. For example, the NZBGet and Sabnzbd Enhanced apps will display the queue size, and download speed while something is downloading.
Supported applications are recognized by the title of the application as entered in the title field when adding an application. For example, to add a link to pfSense, begin by typing "p" in the title field and then select "pfSense" from the list of supported applications.

View File

@@ -111,7 +111,7 @@ $.when($.ready).then(() => {
$("#search-container")
.on("input", "input[name=q]", function () {
const search = this.value;
const items = $("#sortable").children(".item-container");
const items = $("#sortable").find(".item-container");
if ($("#search-container select[name=provider]").val() === "tiles") {
if (search.length > 0) {
items.hide();
@@ -129,7 +129,7 @@ $.when($.ready).then(() => {
}
})
.on("change", "select[name=provider]", function () {
const items = $("#sortable").children(".item-container");
const items = $("#sortable").find(".item-container");
if ($(this).val() === "tiles") {
$("#search-container button").hide();
const search = $("#search-container input[name=q]").val();
@@ -150,6 +150,8 @@ $.when($.ready).then(() => {
}
});
$("#search-container select[name=provider]").trigger("change");
$("#app")
.on("click", "#config-button", (e) => {
e.preventDefault();

View File

@@ -141,6 +141,7 @@ body {
top: -58px;
transition: all .35s ease-in-out;
z-index: 1;
overflow: hidden;
ul {
display: inline-block;
list-style: none;

View File

@@ -3,7 +3,7 @@
@foreach($categories as $category)
<?php $apps = $category->children; ?>
<div class="category item-container" data-name="{{ $category->title }}" data-id="{{ $category->id }}">
<div class="category item-containerz" data-name="{{ $category->title }}" data-id="{{ $category->id }}">
<div class="title"><a href="{{ $category->link }}" style="{{ $category->colour ? 'color: ' . $category->colour .';' : '' }}">{{ $category->title }}</a></div>
@foreach($apps as $app)
@include('item')

View File

@@ -56,10 +56,13 @@ Route::name('tags.')->prefix('tag')->group(function () {
/**
* Item Routes
*/
Route::middleware(['throttle:10,1'])->group(function () {
Route::get('/items/websitelookup/{url}', [ItemController::class, 'websitelookup'])->name('lookup');
});
Route::resource('items', ItemController::class);
Route::name('items.')->prefix('items')->group(function () {
Route::get('/websitelookup/{url}', [ItemController::class, 'websitelookup'])->name('lookup');
Route::get('/pin/{id}', [ItemController::class, 'pin'])->name('pin');
Route::get('/restore/{id}', [ItemController::class, 'restore'])->name('restore');
Route::get('/unpin/{id}', [ItemController::class, 'unpin'])->name('unpin');

File diff suppressed because one or more lines are too long