mirror of
https://github.com/linuxserver/Heimdall.git
synced 2026-02-21 12:10:34 +09:00
Merge branch 'master' of https://github.com/linuxserver/Heimdall into v1.2
This commit is contained in:
49
resources/assets/js/app.js
vendored
49
resources/assets/js/app.js
vendored
@@ -6,7 +6,33 @@ $.when( $.ready ).then(function() {
|
||||
{
|
||||
$('.message-container').fadeOut();
|
||||
}, 3500);
|
||||
}
|
||||
|
||||
if($('.livestats-container').length) {
|
||||
$('.livestats-container').each(function(index){
|
||||
var id = $(this).data('id');
|
||||
var dataonly = $(this).data('dataonly');
|
||||
var increaseby = (dataonly == 1) ? 20000 : 1000;
|
||||
var container = $(this);
|
||||
var max_timer = 30000;
|
||||
var timer = 5000;
|
||||
(function worker() {
|
||||
$.ajax({
|
||||
url: '/get_stats/'+id,
|
||||
success: function(data) {
|
||||
container.html(data);
|
||||
if(data != '') timer = increaseby;
|
||||
else {
|
||||
if(timer < max_timer) timer += 2000;
|
||||
}
|
||||
},
|
||||
complete: function() {
|
||||
// Schedule the next request when the current one's complete
|
||||
setTimeout(worker, timer);
|
||||
}
|
||||
});
|
||||
})();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -56,6 +82,29 @@ $.when( $.ready ).then(function() {
|
||||
var app = $('#app');
|
||||
app.removeClass('sidebar');
|
||||
|
||||
}).on('click', '#test_config', function(e) {
|
||||
e.preventDefault();
|
||||
var apiurl = $('#create input[name=url]').val();
|
||||
|
||||
|
||||
var override_url = $('#create input[name=override_url]');
|
||||
if(override_url.length && override_url.val() != '') {
|
||||
apiurl = override_url;
|
||||
}
|
||||
var data = {};
|
||||
data['url'] = apiurl;
|
||||
$('input.config-item').each(function(index){
|
||||
var config = $(this).data('config');
|
||||
data[config] = $(this).val();
|
||||
})
|
||||
|
||||
$.post(
|
||||
'/test_config',
|
||||
{ data }, function(data) {
|
||||
alert(data);
|
||||
}
|
||||
);
|
||||
|
||||
});
|
||||
$('#pinlist').on('click', 'a', function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
124
resources/assets/sass/_app.scss
vendored
124
resources/assets/sass/_app.scss
vendored
@@ -232,7 +232,7 @@ body {
|
||||
padding: 15px;
|
||||
padding-right: 55px;
|
||||
//border: 2px solid rgba(0,0,0,0.4);
|
||||
box-shadow: 0 0 20px 2px rgba(0,0,0,0.3);
|
||||
//box-shadow: 0 0 15px 1px rgba(35, 35, 35, 0.44);
|
||||
color: white;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
@@ -240,6 +240,11 @@ body {
|
||||
outline: 1px solid transparent;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border: 1px solid #333333;
|
||||
border: 1px solid rgb(74, 74, 74);
|
||||
border: 1px solid rgba(76, 76, 76, 0.4);
|
||||
-webkit-background-clip: padding-box;
|
||||
background-clip: padding-box;
|
||||
&:after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
@@ -268,6 +273,9 @@ body {
|
||||
.title {
|
||||
font-size: 16px;
|
||||
}
|
||||
.details {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.text-center {
|
||||
text-align: center!important;
|
||||
@@ -349,6 +357,9 @@ body {
|
||||
}
|
||||
}
|
||||
}
|
||||
.homesearch {
|
||||
height: 51px;
|
||||
}
|
||||
.module-actions {
|
||||
display: flex;
|
||||
justify-content:space-between;
|
||||
@@ -418,7 +429,7 @@ div.create {
|
||||
|
||||
.app-icon {
|
||||
max-width: 60px;
|
||||
margin-right: 20px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.sidenav {
|
||||
@@ -517,17 +528,29 @@ div.create {
|
||||
}
|
||||
|
||||
@-webkit-keyframes autofill {
|
||||
to {
|
||||
background:#f5f5f5;
|
||||
color:#fff;
|
||||
}
|
||||
}
|
||||
|
||||
input:-webkit-autofill {
|
||||
-webkit-animation-name: autofill;
|
||||
-webkit-animation-fill-mode: both;
|
||||
}
|
||||
|
||||
to {
|
||||
background:#f5f5f5;
|
||||
color:$app-text;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
@keyframes autofill {
|
||||
to {
|
||||
background:#f5f5f5;
|
||||
color:$app-text;
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
input:-webkit-autofill {
|
||||
-webkit-animation-name: autofill;
|
||||
-webkit-animation-fill-mode: both;
|
||||
}
|
||||
input:autofill {
|
||||
animation-name: autofill;
|
||||
animation-fill-mode: both;
|
||||
}
|
||||
|
||||
button.link {
|
||||
border: none;
|
||||
appearance: none;
|
||||
@@ -570,7 +593,8 @@ div.create {
|
||||
background: white;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0px 0px 5px 0 rgba(0,0,0,0.4);
|
||||
overflow: hidden;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
input {
|
||||
padding: 17px 15px;
|
||||
@@ -581,12 +605,12 @@ div.create {
|
||||
}
|
||||
button {
|
||||
position: absolute;
|
||||
right: 14px;
|
||||
top: 14px;
|
||||
right: 0px;
|
||||
top: 0px;
|
||||
border: none;
|
||||
font-size: 16px;
|
||||
padding: 7px 15px;
|
||||
line-height: 37px;
|
||||
line-height: 38px;
|
||||
font-weight: 500;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
@@ -690,7 +714,18 @@ hr {
|
||||
padding: 8px 12px;
|
||||
border-radius: 8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
&.test {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
color: white;
|
||||
text-transform: uppercase;
|
||||
padding: 8px 50px;
|
||||
background: #207774;
|
||||
}
|
||||
}
|
||||
|
||||
.upload-btn-wrapper input[type=file] {
|
||||
font-size: 100px;
|
||||
@@ -706,4 +741,55 @@ hr {
|
||||
img {
|
||||
margin-right: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ui-helper-hidden-accessible {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.livestats-container {
|
||||
.livestats {
|
||||
margin: 5px 0px -5px;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
list-style: none;
|
||||
justify-content: space-between;
|
||||
width: 100%;
|
||||
|
||||
li {
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
line-height: 1;
|
||||
}
|
||||
span {
|
||||
display: block;
|
||||
text-transform: uppercase;
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
opacity: 0.5;
|
||||
line-height: 1;
|
||||
}
|
||||
strong {
|
||||
display: block;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
input:-webkit-autofill,
|
||||
input:-webkit-autofill:hover,
|
||||
input:-webkit-autofill:focus
|
||||
input:-webkit-autofill,
|
||||
textarea:-webkit-autofill,
|
||||
textarea:-webkit-autofill:hover
|
||||
textarea:-webkit-autofill:focus,
|
||||
select:-webkit-autofill,
|
||||
select:-webkit-autofill:hover,
|
||||
select:-webkit-autofill:focus {
|
||||
border: inherit;
|
||||
-webkit-text-fill-color: inherit;
|
||||
-webkit-box-shadow: inherit;
|
||||
transition: inherit;
|
||||
color: $app-text!important;
|
||||
}
|
||||
|
||||
@@ -59,6 +59,8 @@ return [
|
||||
'apps.username' => 'Username',
|
||||
'apps.password' => 'Password',
|
||||
'apps.config' => 'Config',
|
||||
'apps.apikey' => 'Api Key',
|
||||
'apps.enable' => 'Enable',
|
||||
|
||||
'url' => 'Url',
|
||||
'title' => 'Title',
|
||||
|
||||
80
resources/lang/no/app.php
Normal file
80
resources/lang/no/app.php
Normal file
@@ -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.',
|
||||
|
||||
|
||||
];
|
||||
19
resources/lang/no/auth.php
Normal file
19
resources/lang/no/auth.php
Normal file
@@ -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.',
|
||||
|
||||
];
|
||||
19
resources/lang/no/pagination.php
Normal file
19
resources/lang/no/pagination.php
Normal file
@@ -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 »',
|
||||
|
||||
];
|
||||
22
resources/lang/no/passwords.php
Normal file
22
resources/lang/no/passwords.php
Normal file
@@ -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.",
|
||||
|
||||
];
|
||||
78
resources/lang/tr/app.php
Normal file
78
resources/lang/tr/app.php
Normal file
@@ -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.',
|
||||
|
||||
|
||||
];
|
||||
19
resources/lang/tr/auth.php
Normal file
19
resources/lang/tr/auth.php
Normal file
@@ -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.',
|
||||
|
||||
];
|
||||
19
resources/lang/tr/pagination.php
Normal file
19
resources/lang/tr/pagination.php
Normal file
@@ -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 »',
|
||||
|
||||
];
|
||||
22
resources/lang/tr/passwords.php
Normal file
22
resources/lang/tr/passwords.php
Normal file
@@ -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ı.",
|
||||
|
||||
];
|
||||
121
resources/lang/tr/validation.php
Normal file
121
resources/lang/tr/validation.php
Normal file
@@ -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' => [],
|
||||
|
||||
];
|
||||
@@ -6,7 +6,23 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>{{ config('app.name') }}</title>
|
||||
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="/apple-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="/apple-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="/apple-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/manifest.json">
|
||||
<meta name="msapplication-TileColor" content="#ffffff">
|
||||
<meta name="msapplication-TileImage" content="/ms-icon-144x144.png">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
<link rel="stylesheet" href="{{ mix('css/app.css') }}" type="text/css" />
|
||||
|
||||
</head>
|
||||
@@ -56,18 +72,13 @@
|
||||
|
||||
@yield('content')
|
||||
<div id="config-buttons">
|
||||
@if(!Route::is('dash'))
|
||||
<a id="dash" class="config" href="{{ route('dash') }}"><i class="fas fa-th"></i></a>
|
||||
@endif
|
||||
@if(!Request::is(['items', 'items/*']))
|
||||
<a id="items" class="config" href="{{ route('items.index') }}"><i class="fas fa-list"></i></a>
|
||||
@endif
|
||||
@if(!Request::is(['settings', 'settings/*']))
|
||||
<a id="settings" class="config" href="{{ route('settings.index') }}"><i class="fas fa-cogs"></i></a>
|
||||
@endif
|
||||
@if(Route::is('dash'))
|
||||
<a id="config-button" class="config" href=""><i class="fas fa-exchange"></i></a>
|
||||
@endif
|
||||
|
||||
<a id="dash" class="config" href="{{ route('dash') }}"><i class="fas fa-th"></i></a>
|
||||
<a id="items" class="config" href="{{ route('items.index') }}"><i class="fas fa-list"></i></a>
|
||||
<a id="settings" class="config" href="{{ route('settings.index') }}"><i class="fas fa-cogs"></i></a>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
|
||||
@@ -3,10 +3,14 @@
|
||||
@if($app->icon)
|
||||
<img class="app-icon" src="{{ asset('storage/'.$app->icon) }}" />
|
||||
@else
|
||||
<i class="fas fa-app-store-ios"></i>
|
||||
<img class="app-icon" src="{{ asset('img/heimdall-icon-small.png') }}" />
|
||||
@endif
|
||||
<div class="title">{{ $app->title }}</div>
|
||||
|
||||
<div class="details">
|
||||
<div class="title">{{ $app->title }}</div>
|
||||
@if(isset($app->config->enabled) && ((bool)$app->config->enabled === true))
|
||||
<div data-id="{{ $app->id }}" data-dataonly="{{ $app->config->dataonly or '0' }}" class="livestats-container"></div>
|
||||
@endif
|
||||
</div>
|
||||
<a class="link" href="{{ $app->url }}"><i class="fas fa-arrow-alt-to-right"></i></a>
|
||||
</div>
|
||||
<a class="item-edit" href="{{ route('items.edit', $app->id) }}"><i class="fas fa-pencil"></i></a>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
@section('content')
|
||||
|
||||
{!! Form::open(array('route' => 'items.store', 'files' => true, 'method'=>'POST')) !!}
|
||||
{!! Form::open(array('route' => 'items.store', 'id' => 'itemform', 'files' => true, 'method'=>'POST')) !!}
|
||||
@include('items.form')
|
||||
{!! Form::close() !!}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
@section('content')
|
||||
|
||||
{!! Form::model($item, ['method' => 'PATCH', 'files' => true, 'route' => ['items.update', $item->id]]) !!}
|
||||
{!! Form::model($item, ['method' => 'PATCH', 'id' => 'itemform', 'files' => true, 'route' => ['items.update', $item->id]]) !!}
|
||||
@include('items.form')
|
||||
{!! Form::close() !!}
|
||||
|
||||
|
||||
@@ -6,32 +6,28 @@
|
||||
<a href="{{ route('items.index') }}" class="button"><i class="fa fa-ban"></i><span>{{ __('app.buttons.cancel') }}</span></a>
|
||||
</div>
|
||||
</header>
|
||||
<div class="create">
|
||||
<div id="create" class="create">
|
||||
{!! csrf_field() !!}
|
||||
<!--<div class="input">
|
||||
<label>Application name</label>
|
||||
{!! Form::select('supported', \App\Item::supportedOptions(), array('placeholder' => 'Title','class' => 'form-control')) !!}
|
||||
</div>-->
|
||||
|
||||
<div class="input">
|
||||
<label>{{ __('app.apps.application_name') }} *</label>
|
||||
{!! Form::text('title', null, array('placeholder' => __('app.apps.title'), 'id' => 'appname', 'class' => 'form-control')) !!}
|
||||
<hr />
|
||||
<label>{{ strtoupper(__('app.url')) }}</label>
|
||||
{!! Form::text('url', null, array('placeholder' => __('app.url'),'class' => 'form-control')) !!}
|
||||
{!! Form::text('url', null, array('placeholder' => __('app.url'), 'id' => 'appurl', 'class' => 'form-control')) !!}
|
||||
</div>
|
||||
<div class="input">
|
||||
<label>{{ __('app.apps.colour') }} *</label>
|
||||
{!! Form::text('colour', null, array('placeholder' => __('app.apps.hex'),'class' => 'form-control color-picker')) !!}
|
||||
<hr />
|
||||
<label>{{ __('app.apps.pinned') }}</label>
|
||||
{!! Form::hidden('pinned', '0') !!}
|
||||
<label class="switch">
|
||||
<?php
|
||||
$checked = false;
|
||||
if(isset($item->pinned) && (bool)$item->pinned === true) $checked = true;
|
||||
$set_checked = ($checked) ? ' checked="checked"' : '';
|
||||
?>
|
||||
{!! Form::hidden('pinned', '0') !!}
|
||||
?>
|
||||
<input type="checkbox" name="pinned" value="1"<?php echo $set_checked;?> />
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
@@ -40,19 +36,23 @@
|
||||
<label>{{ __('app.apps.icon') }}</label>
|
||||
<div class="icon-container">
|
||||
<div id="appimage">
|
||||
@if(isset($item->icon) && !empty($item->icon))
|
||||
<img src="{{ asset('storage/'.$item->icon) }}" />
|
||||
{!! Form::hidden('icon', $item->icon, ['class' => 'form-control']) !!}
|
||||
@if(isset($item->icon) && !empty($item->icon) || old('icon'))
|
||||
<?php
|
||||
if(isset($item->icon)) $icon = $item->icon;
|
||||
else $icon = old('icon');
|
||||
?>
|
||||
<img src="{{ asset('storage/'.$icon) }}" />
|
||||
{!! Form::hidden('icon', $icon, ['class' => 'form-control']) !!}
|
||||
@endif
|
||||
</div>
|
||||
<div class="upload-btn-wrapper">
|
||||
<button class="btn">{{ __('app.buttons.upload')}} </button>
|
||||
<input type="file" name="myfile" />
|
||||
<input type="file" name="file" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if(isset($item) && $item->config)
|
||||
@if(isset($item) && isset($item->config->view))
|
||||
<div id="sapconfig" style="display: block;">
|
||||
@if(isset($item))
|
||||
@include('supportedapps.'.$item->config->view)
|
||||
|
||||
@@ -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>
|
||||
21
resources/views/supportedapps/pihole.blade.php
Normal file
21
resources/views/supportedapps/pihole.blade.php
Normal file
@@ -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>
|
||||
11
resources/views/supportedapps/sabnzbd.blade.php
Normal file
11
resources/views/supportedapps/sabnzbd.blade.php
Normal file
@@ -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>
|
||||
Reference in New Issue
Block a user