@ -0,0 +1,12 @@ |
|||
<?php |
|||
|
|||
function format_bytes($bytes, $is_drive_size = true, $beforeunit = '', $afterunit = '') |
|||
{ |
|||
$btype = ($is_drive_size === true) ? 1000 : 1024; |
|||
$labels = array('B','KB','MB','GB','TB'); |
|||
for($x = 0; $bytes >= $btype && $x < (count($labels) - 1); $bytes /= $btype, $x++); // use 1000 rather than 1024 to simulate HD size not real size |
|||
if($labels[$x] == "TB") return(round($bytes, 3).$beforeunit.$labels[$x].$afterunit); |
|||
elseif($labels[$x] == "GB") return(round($bytes, 2).$beforeunit.$labels[$x].$afterunit); |
|||
elseif($labels[$x] == "MB") return(round($bytes, 2).$beforeunit.$labels[$x].$afterunit); |
|||
else return(round($bytes, 0).$beforeunit.$labels[$x].$afterunit); |
|||
} |
@ -0,0 +1,11 @@ |
|||
<?php namespace App\SupportedApps\Contracts; |
|||
|
|||
interface Livestats { |
|||
|
|||
public function configDetails(); |
|||
|
|||
public function testConfig(); |
|||
|
|||
public function executeConfig(); |
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
class Jdownloader implements Contracts\Applications { |
|||
public function defaultColour() |
|||
{ |
|||
return '#2b494f'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/jdownloader.png'; |
|||
} |
|||
} |
@ -0,0 +1,12 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
class Mcmyadmin implements Contracts\Applications { |
|||
public function defaultColour() |
|||
{ |
|||
return '#30404b'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/mcmyadmin.png'; |
|||
} |
|||
} |
@ -0,0 +1,12 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
class Nextcloud implements Contracts\Applications { |
|||
public function defaultColour() |
|||
{ |
|||
return '#0e2c3e'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/nextcloud.png'; |
|||
} |
|||
} |
@ -0,0 +1,12 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
class Openhab implements Contracts\Applications { |
|||
public function defaultColour() |
|||
{ |
|||
return '#b7b7b7'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/openhab.png'; |
|||
} |
|||
} |
@ -1,16 +1,70 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
class Pihole implements Contracts\Applications { |
|||
use GuzzleHttp\Exception\GuzzleException; |
|||
use GuzzleHttp\Client; |
|||
|
|||
class Pihole implements Contracts\Applications, Contracts\Livestats { |
|||
public function defaultColour() |
|||
{ |
|||
return '#222'; |
|||
return '#352222'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/pihole.png'; |
|||
} |
|||
|
|||
public function configDetails() |
|||
{ |
|||
return null; |
|||
return 'pihole'; |
|||
} |
|||
|
|||
public function testConfig() |
|||
{ |
|||
$res = $this->buildRequest(); |
|||
switch($res->getStatusCode()) { |
|||
case 200: |
|||
echo 'Successfully connected to the API'; |
|||
break; |
|||
case 401: |
|||
echo 'Failed: Invalid credentials'; |
|||
break; |
|||
case 404: |
|||
echo 'Failed: Please make sure your URL is correct and that there is a trailing slash'; |
|||
break; |
|||
default: |
|||
echo 'Something went wrong... Code: '.$res->getStatusCode(); |
|||
break; |
|||
} |
|||
} |
|||
|
|||
public function executeConfig() |
|||
{ |
|||
$output = ''; |
|||
$res = $this->buildRequest(); |
|||
$data = json_decode($res->getBody()); |
|||
|
|||
$output = ' |
|||
<ul class="livestats"> |
|||
<li><span class="title">Domains<br />Blocked</span><strong>'.$data->domains_being_blocked.'</strong></li> |
|||
<li><span class="title">Blocked<br />Today</span><strong>'.$data->ads_blocked_today.'</span></strong></li> |
|||
</ul> |
|||
'; |
|||
return $output; |
|||
} |
|||
|
|||
public function buildRequest() |
|||
{ |
|||
$config = $this->config; |
|||
$url = $config->url; |
|||
|
|||
$api_url = $url.'admin/api.php'; |
|||
//die( $api_url.' --- '); |
|||
|
|||
$client = new Client(['http_errors' => false]); |
|||
$res = $client->request('GET', $api_url); |
|||
return $res; |
|||
|
|||
} |
|||
|
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
class Plexpy implements Contracts\Applications { |
|||
public function defaultColour() |
|||
{ |
|||
return '#2d2208'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/plexpy.png'; |
|||
} |
|||
} |
@ -0,0 +1,12 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
class Plexrequests implements Contracts\Applications { |
|||
public function defaultColour() |
|||
{ |
|||
return '#845c2c'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/plexrequests.png'; |
|||
} |
|||
} |
@ -0,0 +1,82 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
use GuzzleHttp\Exception\GuzzleException; |
|||
use GuzzleHttp\Client; |
|||
|
|||
class Sabnzbd implements Contracts\Applications, Contracts\Livestats { |
|||
|
|||
public $config; |
|||
|
|||
public function defaultColour() |
|||
{ |
|||
return '#3e3924'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/sabnzbd.png'; |
|||
} |
|||
public function configDetails() |
|||
{ |
|||
return 'sabnzbd'; |
|||
} |
|||
public function testConfig() |
|||
{ |
|||
$res = $this->buildRequest('queue'); |
|||
switch($res->getStatusCode()) { |
|||
case 200: |
|||
$data = json_decode($res->getBody()); |
|||
if(isset($data->error) && !empty($data->error)) { |
|||
echo 'Failed: '.$data->error; |
|||
} else { |
|||
echo 'Successfully connected to the API'; |
|||
} |
|||
break; |
|||
case 401: |
|||
echo 'Failed: Invalid credentials'; |
|||
break; |
|||
case 404: |
|||
echo 'Failed: Please make sure your URL is correct and that there is a trailing slash'; |
|||
break; |
|||
default: |
|||
echo 'Something went wrong... Code: '.$res->getStatusCode(); |
|||
break; |
|||
} |
|||
} |
|||
public function executeConfig() |
|||
{ |
|||
$output = ''; |
|||
$res = $this->buildRequest('queue'); |
|||
$data = json_decode($res->getBody()); |
|||
//$data->result->RemainingSizeMB = '10000000'; |
|||
//$data->result->DownloadRate = '100000000'; |
|||
$size = $data->queue->mbleft; |
|||
$rate = $data->queue->kbpersec; |
|||
$queue_size = format_bytes($size*1000*1000, false, ' <span>', '</span>'); |
|||
$current_speed = format_bytes($rate*1000, false, ' <span>'); |
|||
|
|||
if($size > 0 || $rate > 0) { |
|||
$output = ' |
|||
<ul class="livestats"> |
|||
<li><span class="title">Queue</span><strong>'.$queue_size.'</strong></li> |
|||
<li><span class="title">Speed</span><strong>'.$current_speed.'/s</span></strong></li> |
|||
</ul> |
|||
'; |
|||
} |
|||
return $output; |
|||
} |
|||
public function buildRequest($endpoint) |
|||
{ |
|||
$config = $this->config; |
|||
$url = $config->url; |
|||
$apikey = $config->apikey; |
|||
|
|||
$api_url = $url.'api?output=json&apikey='.$apikey.'&mode='.$endpoint; |
|||
//die( $api_url.' --- '); |
|||
|
|||
$client = new Client(['http_errors' => false]); |
|||
$res = $client->request('GET', $api_url); |
|||
return $res; |
|||
|
|||
} |
|||
|
|||
} |
@ -0,0 +1,12 @@ |
|||
<?php namespace App\SupportedApps; |
|||
|
|||
class Traefik implements Contracts\Applications { |
|||
public function defaultColour() |
|||
{ |
|||
return '#427d8c'; |
|||
} |
|||
public function icon() |
|||
{ |
|||
return 'supportedapps/traefik.png'; |
|||
} |
|||
} |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 9.1 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
@ -0,0 +1,2 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig> |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 7.1 KiB |
Before Width: | Height: | Size: 0 B After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 5.2 KiB |
@ -0,0 +1,41 @@ |
|||
{ |
|||
"name": "App", |
|||
"icons": [ |
|||
{ |
|||
"src": "\/android-icon-36x36.png", |
|||
"sizes": "36x36", |
|||
"type": "image\/png", |
|||
"density": "0.75" |
|||
}, |
|||
{ |
|||
"src": "\/android-icon-48x48.png", |
|||
"sizes": "48x48", |
|||
"type": "image\/png", |
|||
"density": "1.0" |
|||
}, |
|||
{ |
|||
"src": "\/android-icon-72x72.png", |
|||
"sizes": "72x72", |
|||
"type": "image\/png", |
|||
"density": "1.5" |
|||
}, |
|||
{ |
|||
"src": "\/android-icon-96x96.png", |
|||
"sizes": "96x96", |
|||
"type": "image\/png", |
|||
"density": "2.0" |
|||
}, |
|||
{ |
|||
"src": "\/android-icon-144x144.png", |
|||
"sizes": "144x144", |
|||
"type": "image\/png", |
|||
"density": "3.0" |
|||
}, |
|||
{ |
|||
"src": "\/android-icon-192x192.png", |
|||
"sizes": "192x192", |
|||
"type": "image\/png", |
|||
"density": "4.0" |
|||
} |
|||
] |
|||
} |
@ -1,4 +1,4 @@ |
|||
{ |
|||
"/css/app.css": "/css/app.css?id=8c034347751a0b8faeb2", |
|||
"/js/app.js": "/js/app.js?id=559585a774e3f088503a" |
|||
"/css/app.css": "/css/app.css?id=a571eeda02c71a01f251", |
|||
"/js/app.js": "/js/app.js?id=b38be2e595ece6fcef81" |
|||
} |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 5.0 KiB |
@ -0,0 +1,80 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| App Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
*/ |
|||
|
|||
'settings.system' => 'Systemet', |
|||
'settings.appearance' => 'Utseende', |
|||
'settings.miscellaneous' => 'Diverse', |
|||
|
|||
'settings.version' => 'Versjon', |
|||
'settings.background_image' => 'Bakgrunnsbilde', |
|||
'settings.homepage_search' => 'Startside Søk', |
|||
'settings.search_provider' => 'Søkemotor', |
|||
'settings.language' => 'Språk', |
|||
'settings.reset' => 'Tilbakestill tilbake til standard', |
|||
'settings.remove' => 'Fjern', |
|||
'settings.search' => 'søk', |
|||
'settings.no_items' => 'Ingen funn', |
|||
|
|||
|
|||
'settings.label' => 'Merkelapp', |
|||
'settings.value' => 'Verdi', |
|||
'settings.edit' => 'Endre', |
|||
'settings.view' => 'Se', |
|||
|
|||
'options.none' => '- ikke valgt -', |
|||
'options.google' => 'Google', |
|||
'options.ddg' => 'DuckDuckGo', |
|||
'options.bing' => 'Bing', |
|||
'options.yes' => 'Ja', |
|||
'options.no' => 'Nei', |
|||
|
|||
'buttons.save' => 'Lagre', |
|||
'buttons.cancel' => 'Avbryt', |
|||
'buttons.add' => 'Legg til', |
|||
'buttons.upload' => 'Last opp en fil', |
|||
|
|||
'dash.pin_item' => 'Fest objektet til dashboardet', |
|||
'dash.no_apps' => 'Det er for øyeblikket ingen festede applikasjoner, :link1 eller :link2', |
|||
'dash.link1' => 'Legg til en applikasjon her', |
|||
'dash.link2' => 'Fest et objekt til dashboardet', |
|||
'dash.pinned_items' => 'Festede Objekter', |
|||
|
|||
'apps.app_list' => 'Applikasjonsliste', |
|||
'apps.view_trash' => 'Vis papirkurven', |
|||
'apps.add_application' => 'Legg til en applikasjon', |
|||
'apps.application_name' => 'Applikasjonsnavn', |
|||
'apps.colour' => 'Farge', |
|||
'apps.icon' => 'Ikon', |
|||
'apps.pinned' => 'Festet', |
|||
'apps.title' => 'Tittel', |
|||
'apps.hex' => 'Hex-farge', |
|||
'apps.username' => 'Brukernavn', |
|||
'apps.password' => 'Passord', |
|||
'apps.config' => 'Konfigurasjon', |
|||
'apps.apikey' => 'Api nøkkel', |
|||
'apps.enable' => 'Aktiver', |
|||
|
|||
'url' => 'Url', |
|||
'title' => 'Tittel', |
|||
'delete' => 'Slett', |
|||
'optional' => 'Valgfritt', |
|||
'restore' => 'Tilbakestill', |
|||
|
|||
'alert.success.item_created' => 'Objektet ble opprettet', |
|||
'alert.success.item_updated' => 'Objektet ble oppdatert', |
|||
'alert.success.item_deleted' => 'Objektet ble slettet', |
|||
'alert.success.item_restored' => 'Objektet ble gjenopprettet', |
|||
|
|||
'alert.success.setting_updated' => 'Du har oppdatert denne innstillingen', |
|||
'alert.error.not_exist' => 'Denne innstillingen eksisterer ikke.', |
|||
|
|||
|
|||
]; |
@ -0,0 +1,19 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Authentication Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| The following language lines are used during authentication for various |
|||
| messages that we need to display to the user. You are free to modify |
|||
| these language lines according to your application's requirements. |
|||
| |
|||
*/ |
|||
|
|||
'failed' => 'Påloggingsinformasjonen stemmer ikke overens med våre data.', |
|||
'throttle' => 'For mange påloggingsforsøk. Prøv igjen om :seconds sekunder.', |
|||
|
|||
]; |
@ -0,0 +1,19 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Pagination Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| The following language lines are used by the paginator library to build |
|||
| the simple pagination links. You are free to change them to anything |
|||
| you want to customize your views to better match your application. |
|||
| |
|||
*/ |
|||
|
|||
'previous' => '« Forrige', |
|||
'next' => 'Neste »', |
|||
|
|||
]; |
@ -0,0 +1,22 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Password Reset Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| The following language lines are the default lines which match reasons |
|||
| that are given by the password broker for a password update attempt |
|||
| has failed, such as for an invalid token or invalid new password. |
|||
| |
|||
*/ |
|||
|
|||
'password' => 'Passord må være minst seks tegn og i samsvar med bekreftelsen.', |
|||
'reset' => 'Passordet ditt har blitt tilbakestilt!', |
|||
'sent' => 'Vi har sendt deg en e-post med en tilbakestillingslink for ditt passord!', |
|||
'token' => 'Denne tilgangstoken er ikke gyldig.', |
|||
'user' => "Vi fant ingen med den e-postadressen.", |
|||
|
|||
]; |
@ -0,0 +1,78 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| App Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
*/ |
|||
|
|||
'settings.system' => 'Sistem', |
|||
'settings.appearance' => 'Görünüm', |
|||
'settings.miscellaneous' => 'Çeşitli', |
|||
|
|||
'settings.version' => 'Versiyon', |
|||
'settings.background_image' => 'Arkaplan Resmi', |
|||
'settings.homepage_search' => 'Anasayfa Arama', |
|||
'settings.search_provider' => 'Arama Motoru', |
|||
'settings.language' => 'Dil', |
|||
'settings.reset' => 'Varsayılana Geri Dön', |
|||
'settings.remove' => 'Sil', |
|||
'settings.search' => 'ara', |
|||
'settings.no_items' => 'Öğe bulunamadı', |
|||
|
|||
|
|||
'settings.label' => 'Etiket', |
|||
'settings.value' => 'Değer', |
|||
'settings.edit' => 'Düzenle', |
|||
'settings.view' => 'Görüntüle', |
|||
|
|||
'options.none' => '- ayarlanmadı -', |
|||
'options.google' => 'Google', |
|||
'options.ddg' => 'DuckDuckGo', |
|||
'options.bing' => 'Bing', |
|||
'options.yes' => 'Evet', |
|||
'options.no' => 'Hayır', |
|||
|
|||
'buttons.save' => 'Kaydet', |
|||
'buttons.cancel' => 'İptal', |
|||
'buttons.add' => 'Ekle', |
|||
'buttons.upload' => 'Dosya yükle', |
|||
|
|||
'dash.pin_item' => 'Ana panele iğnele', |
|||
'dash.no_apps' => 'Ana panele iğneli öğeler, :link1 or :link2', |
|||
'dash.link1' => 'Yeni uygulama ekle', |
|||
'dash.link2' => 'Ana panele iğnele', |
|||
'dash.pinned_items' => 'İğnelenen öğeler', |
|||
|
|||
'apps.app_list' => 'Uygulama listesi', |
|||
'apps.view_trash' => 'Çöpü görüntüle', |
|||
'apps.add_application' => 'Uygulama ekle', |
|||
'apps.application_name' => 'Uygulama adı', |
|||
'apps.colour' => 'Renk', |
|||
'apps.icon' => 'İkon', |
|||
'apps.pinned' => 'İğneli', |
|||
'apps.title' => 'Başlık', |
|||
'apps.hex' => 'Hex değeri', |
|||
'apps.username' => 'Kullanıcı adı', |
|||
'apps.password' => 'Şifre', |
|||
'apps.config' => 'Yapılandırma', |
|||
|
|||
'url' => 'Adres', |
|||
'title' => 'Başlık', |
|||
'delete' => 'Sil', |
|||
'optional' => 'İsteğe bağlı', |
|||
'restore' => 'Eski haline getir', |
|||
|
|||
'alert.success.item_created' => 'Öğe yaratıldı', |
|||
'alert.success.item_updated' => 'Öğe güncellendi', |
|||
'alert.success.item_deleted' => 'Öğe silindi', |
|||
'alert.success.item_restored' => 'Öğe eski haline getirildi', |
|||
|
|||
'alert.success.setting_updated' => 'Ayarlama kaydedildi', |
|||
'alert.error.not_exist' => 'Böyle bir seçenek yok.', |
|||
|
|||
|
|||
]; |
@ -0,0 +1,19 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Authentication Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| The following language lines are used during authentication for various |
|||
| messages that we need to display to the user. You are free to modify |
|||
| these language lines according to your application's requirements. |
|||
| |
|||
*/ |
|||
|
|||
'failed' => 'Kimlik bilgileri doğru değil.', |
|||
'throttle' => 'Çok fazla girişim. :seconds saniye sonra tekrar deneyin.', |
|||
|
|||
]; |
@ -0,0 +1,19 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Pagination Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| The following language lines are used by the paginator library to build |
|||
| the simple pagination links. You are free to change them to anything |
|||
| you want to customize your views to better match your application. |
|||
| |
|||
*/ |
|||
|
|||
'previous' => '« Önceki', |
|||
'next' => 'Sonraki »', |
|||
|
|||
]; |
@ -0,0 +1,22 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Password Reset Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| The following language lines are the default lines which match reasons |
|||
| that are given by the password broker for a password update attempt |
|||
| has failed, such as for an invalid token or invalid new password. |
|||
| |
|||
*/ |
|||
|
|||
'password' => 'Şifre en az altı karakter olmalı ve onaylamasına uymalıdır.', |
|||
'reset' => 'Şifreniz sıfırlandı!', |
|||
'sent' => 'Şifre sıfırlama bağlantısı eposta adresinize yollandı!', |
|||
'token' => 'Şifre sıfırlama simgesi geçerli değil.', |
|||
'user' => "Adresle ilişkili kullanıcı adı bulunamadı.", |
|||
|
|||
]; |
@ -0,0 +1,121 @@ |
|||
<?php |
|||
|
|||
return [ |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Validation Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| The following language lines contain the default error messages used by |
|||
| the validator class. Some of these rules have multiple versions such |
|||
| as the size rules. Feel free to tweak each of these messages here. |
|||
| |
|||
*/ |
|||
|
|||
'accepted' => ':attribute kabul edilmelidir.', |
|||
'active_url' => ':attribute geçerli bir adres değil.', |
|||
'after' => ':attribute :date tarihinden sonra olmalıdır.', |
|||
'after_or_equal' => ':attribute :date ile aynı veya daha sonra tarihte olmalıdır.', |
|||
'alpha' => ':attribute sadece harf içerebilir.', |
|||
'alpha_dash' => ':attribute sadece harf, rakam, veya tire içerebilir.', |
|||
'alpha_num' => ':attribute sadece harf ve rakam içerebilir.', |
|||
'array' => ':attribute dizi olmalıdır.', |
|||
'before' => ':attribute :date tarihinden önce olmalıdır.', |
|||
'before_or_equal' => ':attribute :date ile aynı ya da daha önce tarihte olmalıdır.', |
|||
'between' => [ |
|||
'numeric' => ':attribute :min ile :max arasında olmalıdır.', |
|||
'file' => ':attribute :min ile :max kilobayt arasında olmalıdır.', |
|||
'string' => ':attribute :min ile :max arasında karakter içermelidir.', |
|||
'array' => ':attribute :min ile :max arasi öğe içermelidir.', |
|||
], |
|||
'boolean' => ':attribute alanı doğru ya da yanlış olmalıdır.', |
|||
'confirmed' => ':attribute onaylamasına uymuyor.', |
|||
'date' => ':attribute geçerli bir tarih değil.', |
|||
'date_format' => ':attribute :format düzenine uymuyor.', |
|||
'different' => ':attribute ve :other farklı olmalı.', |
|||
'digits' => ':attribute :digits haneli olmalıdır.', |
|||
'digits_between' => ':attribute :min ile :max arası haneli olmalıdır.', |
|||
'dimensions' => ':attribute resim boyutları geçersiz.', |
|||
'distinct' => ':attribute alan değeri zaten mevcut.', |
|||
'email' => ':attribute geçerli bir eposta adresi olmalıdır.', |
|||
'exists' => 'Seçili :attribute geçersiz.', |
|||
'file' => ':attribute dosya olmalıdır.', |
|||
'filled' => ':attribute alanı değer içermelidir.', |
|||
'image' => ':attribute resim olmalıdır.', |
|||
'in' => 'Seçili :attribute geçersiz.', |
|||
'in_array' => ':attribute :other içinde bulunmalıdır.', |
|||
'integer' => ':attribute tamsayı olmalıdır.', |
|||
'ip' => ':attribute geçerli IP adresi olmalıdır.', |
|||
'ipv4' => ':attribute geçerli IPv4 adresi olmalıdır.', |
|||
'ipv6' => ':attribute geçerli IPv6 adresi olmalıdır.', |
|||
'json' => ':attribute geçerli JSON dizesi olmalıdır.', |
|||
'max' => [ |
|||
'numeric' => ':attribute :max sayısından küçük olmalıdır.', |
|||
'file' => ':attribute :max kilobayttan küçük olmalıdır.', |
|||
'string' => ':attribute :max haneden az olmalıdır.', |
|||
'array' => ':attribute :max öğeden az içermelidir.', |
|||
], |
|||
'mimes' => 'Geçerli :attribute dosya tipi: :values.', |
|||
'mimetypes' => 'Geçerli :attribute dosya tipi: :values.', |
|||
'min' => [ |
|||
'numeric' => ':attribute en az :min olmalıdır.', |
|||
'file' => ':attribute en az :min kilobayt olmalıdır.', |
|||
'string' => ':attribute en az :min haneli olmalıdır.', |
|||
'array' => ':attribute en az :min öğe içermelidir.', |
|||
], |
|||
'not_in' => 'Seçili :attribute geçersiz.', |
|||
'numeric' => ':attribute sayı olmalıdır.', |
|||
'present' => ':attribute alanı dolu olmalı.', |
|||
'regex' => ':attribute düzeni geçersiz.', |
|||
'required' => ':attribute alanı gereklidir.', |
|||
'required_if' => ':other :value ise :attribute alanı gereklidir.', |
|||
'required_unless' => ':other :values içinde değilse :attribute alanı gereklidir.', |
|||
'required_with' => ':values dolu ise :attribute alanı gereklidir.', |
|||
'required_with_all' => ':values dolu ise :attribute alanı gereklidir.', |
|||
'required_without' => ':values boş ise :attribute alanı gereklidir.', |
|||
'required_without_all' => ':values değerlerinin tamamı boş ise :attribute alanı gereklidir.', |
|||
'same' => ':attribute ve :other aynı olmalı.', |
|||
'size' => [ |
|||
'numeric' => ':attribute :size olmalıdır.', |
|||
'file' => ':attribute :size kilobayt olmalıdır.', |
|||
'string' => ':attribute :size haneli olmalıdır.', |
|||
'array' => ':attribute :size öğe içermelidir.', |
|||
], |
|||
'string' => ':attribute dize olmalıdır.', |
|||
'timezone' => ':attribute geçerli bir zaman dilimi olmalıdır.', |
|||
'unique' => ':attribute zaten kullanımda.', |
|||
'uploaded' => ':attribute yüklenemedi.', |
|||
'url' => ':attribute düzeni geçersiz.', |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Custom Validation Language Lines |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| Here you may specify custom validation messages for attributes using the |
|||
| convention "attribute.rule" to name the lines. This makes it quick to |
|||
| specify a specific custom language line for a given attribute rule. |
|||
| |
|||
*/ |
|||
|
|||
'custom' => [ |
|||
'attribute-name' => [ |
|||
'rule-name' => 'custom-message', |
|||
], |
|||
], |
|||
|
|||
/* |
|||
|-------------------------------------------------------------------------- |
|||
| Custom Validation Attributes |
|||
|-------------------------------------------------------------------------- |
|||
| |
|||
| The following language lines are used to swap attribute place-holders |
|||
| with something more reader friendly such as E-Mail Address instead |
|||
| of "email". This simply helps us make messages a little cleaner. |
|||
| |
|||
*/ |
|||
|
|||
'attributes' => [], |
|||
|
|||
]; |
@ -1,12 +1,15 @@ |
|||
<h2>{{ __('app.apps.config') }} ({{ __('app.optional') }})</h2> |
|||
<div class="items"> |
|||
<input type="hidden" name="config[type]" value="\App\SupportedApps\Nzbget" /> |
|||
<input type="hidden" data-config="type" class="config-item" name="config[type]" value="\App\SupportedApps\Nzbget" /> |
|||
<div class="input"> |
|||
<label>{{ __('app.apps.username') }}</label> |
|||
{!! Form::text('config[username]', null, array('placeholder' => __('app.apps.username'), 'class' => 'form-control')) !!} |
|||
{!! Form::text('config[username]', null, array('placeholder' => __('app.apps.username'), 'data-config' => 'username', 'class' => 'form-control config-item')) !!} |
|||
</div> |
|||
<div class="input"> |
|||
<label>{{ __('app.apps.password') }}</label> |
|||
{!! Form::text('config[password]', null, array('placeholder' => __('app.apps.password'), 'class' => 'form-control')) !!} |
|||
{!! Form::text('config[password]', null, array('placeholder' => __('app.apps.password'), 'data-config' => 'password', 'class' => 'form-control config-item')) !!} |
|||
</div> |
|||
<div class="input"> |
|||
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button> |
|||
</div> |
|||
</div> |
@ -0,0 +1,21 @@ |
|||
<h2>{{ __('app.apps.config') }} ({{ __('app.optional') }})</h2> |
|||
<div class="items"> |
|||
<input type="hidden" data-config="type" class="config-item" name="config[type]" value="\App\SupportedApps\Pihole" /> |
|||
<input type="hidden" data-config="dataonly" class="config-item" name="config[dataonly]" value="1" /> |
|||
<div class="input"> |
|||
<label>{{ __('app.apps.enable') }}</label> |
|||
{!! Form::hidden('config[enabled]', '0') !!} |
|||
<label class="switch"> |
|||
<?php |
|||
$checked = false; |
|||
if(isset($item->config->enabled) && (bool)$item->config->enabled === true) $checked = true; |
|||
$set_checked = ($checked) ? ' checked="checked"' : ''; |
|||
?> |
|||
<input type="checkbox" name="config[enabled]" value="1"<?php echo $set_checked;?> /> |
|||
<span class="slider round"></span> |
|||
</label> |
|||
</div> |
|||
<div class="input"> |
|||
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button> |
|||
</div> |
|||
</div> |
@ -0,0 +1,11 @@ |
|||
<h2>{{ __('app.apps.config') }} ({{ __('app.optional') }})</h2> |
|||
<div class="items"> |
|||
<input type="hidden" data-config="type" class="config-item" name="config[type]" value="\App\SupportedApps\Sabnzbd" /> |
|||
<div class="input"> |
|||
<label>{{ __('app.apps.apikey') }}</label> |
|||
{!! Form::text('config[apikey]', null, array('placeholder' => __('app.apps.apikey'), 'data-config' => 'apikey', 'class' => 'form-control config-item')) !!} |
|||
</div> |
|||
<div class="input"> |
|||
<button style="margin-top: 32px;" class="btn test" id="test_config">Test</button> |
|||
</div> |
|||
</div> |
After Width: | Height: | Size: 57 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 41 KiB |
@ -0,0 +1,5 @@ |
|||
phpunit.xml |
|||
composer.lock |
|||
build |
|||
vendor |
|||
coverage.clover |
@ -0,0 +1,46 @@ |
|||
before_commands: |
|||
- "composer install --prefer-source" |
|||
|
|||
tools: |
|||
external_code_coverage: |
|||
timeout: 600 |
|||
php_code_coverage: |
|||
enabled: true |
|||
test_command: ./vendor/bin/phpunit |
|||
php_code_sniffer: |
|||
enabled: true |
|||
config: |
|||
standard: PSR2 |
|||
filter: |
|||
paths: ["src/*", "tests/*"] |
|||
php_cpd: |
|||
enabled: true |
|||
excluded_dirs: ["build/*", "tests", "vendor"] |
|||
php_cs_fixer: |
|||
enabled: true |
|||
config: |
|||
level: all |
|||
filter: |
|||
paths: ["src/*", "tests/*"] |
|||
php_loc: |
|||
enabled: true |
|||
excluded_dirs: ["build", "tests", "vendor"] |
|||
php_mess_detector: |
|||
enabled: true |
|||
config: |
|||
ruleset: phpmd.xml.dist |
|||
design_rules: { eval_expression: false } |
|||
filter: |
|||
paths: ["src/*"] |
|||
php_pdepend: |
|||
enabled: true |
|||
excluded_dirs: ["build", "tests", "vendor"] |
|||
php_analyzer: |
|||
enabled: true |
|||
filter: |
|||
paths: ["src/*", "tests/*"] |
|||
php_hhvm: |
|||
enabled: true |
|||
filter: |
|||
paths: ["src/*", "tests/*"] |
|||
sensiolabs_security_checker: true |
@ -0,0 +1,14 @@ |
|||
#!/bin/sh |
|||
set -x |
|||
if [ "$TRAVIS_PHP_VERSION" = 'hhvm' ] || [ "$TRAVIS_PHP_VERSION" = 'hhvm-nightly' ] ; then |
|||
curl -sS https://getcomposer.org/installer > composer-installer.php |
|||
hhvm composer-installer.php |
|||
hhvm -v ResourceLimit.SocketDefaultTimeout=30 -v Http.SlowQueryThreshold=30000 composer.phar update --prefer-source |
|||
elif [ "$TRAVIS_PHP_VERSION" = '5.3.3' ] ; then |
|||
composer self-update |
|||
composer update --prefer-source --no-dev |
|||
composer dump-autoload |
|||
else |
|||
composer self-update |
|||
composer update --prefer-source |
|||
fi |