diff --git a/app/Helper.php b/app/Helper.php
index b3b994c7..86cf5e8a 100644
--- a/app/Helper.php
+++ b/app/Helper.php
@@ -35,6 +35,18 @@ function title_color($hex)
}
}
+function getLinkTargetAttribute()
+{
+ $target = \App\Setting::fetch('window_target');
+
+ if($target === 'current') {
+ return '';
+ } else {
+ return ' target="' . $target . '"';
+ }
+}
+
+
function className($name)
{
diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php
index 3688debd..3b42163e 100644
--- a/app/Http/Controllers/Auth/LoginController.php
+++ b/app/Http/Controllers/Auth/LoginController.php
@@ -59,7 +59,7 @@ class LoginController extends Controller
public function login(Request $request)
{
$current_user = User::currentUser();
- $request->merge(['username' => $current_user->username]);
+ $request->merge(['username' => $current_user->username, 'remember' => true]);
//die(print_r($request->all()));
$this->validateLogin($request);
@@ -98,7 +98,7 @@ class LoginController extends Controller
public function autologin($uuid)
{
$user = User::where('autologin', $uuid)->first();
- Auth::login($user);
+ Auth::login($user, true);
session(['current_user' => $user]);
return redirect()->route('dash');
}
diff --git a/app/Http/Controllers/ItemController.php b/app/Http/Controllers/ItemController.php
index 5892e1d5..3fbb67a7 100644
--- a/app/Http/Controllers/ItemController.php
+++ b/app/Http/Controllers/ItemController.php
@@ -30,11 +30,11 @@ class ItemController extends Controller
{
$data['apps'] = Item::whereHas('parents', function ($query) {
$query->where('id', 0);
- })->pinned()->orderBy('order', 'asc')->get();
+ })->orWhere('type', 1)->pinned()->orderBy('order', 'asc')->get();
$data['all_apps'] = Item::whereHas('parents', function ($query) {
$query->where('id', 0);
- })->orderBy('order', 'asc')->get();
+ })->orWhere('type', 1)->orderBy('order', 'asc')->get();
//$data['all_apps'] = Item::doesntHave('parents')->get();
//die(print_r($data['apps']));
@@ -66,7 +66,7 @@ class ItemController extends Controller
$item = Item::findOrFail($id);
$item->pinned = true;
$item->save();
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route);
}
@@ -80,7 +80,7 @@ class ItemController extends Controller
$item = Item::findOrFail($id);
$item->pinned = false;
$item->save();
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route);
}
@@ -105,7 +105,7 @@ class ItemController extends Controller
$data['ajax'] = true;
return view('sortable', $data);
} else {
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route);
}
}
@@ -140,7 +140,7 @@ class ItemController extends Controller
//
$data['tags'] = Item::ofType('tag')->orderBy('title', 'asc')->pluck('title', 'id');
$data['tags']->prepend(__('app.dashboard'), 0);
- $data['current_tags'] = [];
+ $data['current_tags'] = collect([0 => __('app.dashboard')]);
return view('items.create', $data);
}
@@ -188,7 +188,7 @@ class ItemController extends Controller
$item->parents()->sync($request->tags);
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route)
->with('success', __('app.alert.success.item_created'));
}
@@ -265,7 +265,7 @@ class ItemController extends Controller
$item->parents()->sync($request->tags);
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route)
->with('success',__('app.alert.success.item_updated'));
}
@@ -288,7 +288,7 @@ class ItemController extends Controller
Item::find($id)->delete();
}
- $route = route('items.index', [], false);
+ $route = route('items.index', []);
return redirect($route)
->with('success',__('app.alert.success.item_deleted'));
}
@@ -306,7 +306,7 @@ class ItemController extends Controller
->where('id', $id)
->restore();
- $route = route('items.inded', [], false);
+ $route = route('items.index', []);
return redirect($route)
->with('success',__('app.alert.success.item_restored'));
}
diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php
index 71297a5a..3d79db50 100644
--- a/app/Http/Controllers/SettingsController.php
+++ b/app/Http/Controllers/SettingsController.php
@@ -47,7 +47,7 @@ class SettingsController extends Controller
'setting' => $setting,
]);
} else {
- $route = route('settings.list', [], false);
+ $route = route('settings.list', []);
return redirect($route)
->with([
'error' => __('app.alert.error.not_exist'),
@@ -85,13 +85,13 @@ class SettingsController extends Controller
$user->settings()->detach($setting->id);
$user->settings()->save($setting, ['uservalue' => $setting_value]);
- $route = route('settings.index', [], false);
+ $route = route('settings.index', []);
return redirect($route)
->with([
'success' => __('app.alert.success.setting_updated'),
]);
} else {
- $route = route('settings.index', [], false);
+ $route = route('settings.index', []);
return redirect($route)
->with([
'error' => __('app.alert.error.not_exist'),
@@ -111,7 +111,7 @@ class SettingsController extends Controller
$user->settings()->detach($setting->id);
$user->settings()->save($setting, ['uservalue' => '']);
}
- $route = route('settings.index', [], false);
+ $route = route('settings.index', []);
return redirect($route)
->with([
'success' => __('app.alert.success.setting_updated'),
diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php
index 324cfabe..77723911 100644
--- a/app/Http/Controllers/TagController.php
+++ b/app/Http/Controllers/TagController.php
@@ -74,7 +74,7 @@ class TagController extends Controller
//die(print_r($request->all()));
Item::create($request->all());
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route)
->with('success', __('app.alert.success.tag_created'));
}
@@ -139,7 +139,7 @@ class TagController extends Controller
Item::find($id)->update($request->all());
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route)
->with('success',__('app.alert.success.tag_updated'));
}
@@ -162,7 +162,7 @@ class TagController extends Controller
Item::find($id)->delete();
}
- $route = route('tags.index', [], false);
+ $route = route('tags.index', []);
return redirect($route)
->with('success',__('app.alert.success.item_deleted'));
}
@@ -179,7 +179,7 @@ class TagController extends Controller
Item::withTrashed()
->where('id', $id)
->restore();
- $route = route('tags.index', [], false);
+ $route = route('tags.index', []);
return redirect($route)
->with('success',__('app.alert.success.item_restored'));
}
diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php
index df28a1f8..7448cd22 100644
--- a/app/Http/Controllers/UserController.php
+++ b/app/Http/Controllers/UserController.php
@@ -80,7 +80,7 @@ class UserController extends Controller
$user->save();
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route)
->with('success',__('app.alert.success.user_updated'));
}
@@ -150,7 +150,7 @@ class UserController extends Controller
$user->save();
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route)
->with('success',__('app.alert.success.user_updated'));
@@ -166,7 +166,7 @@ class UserController extends Controller
{
if($user->id !== 1) {
$user->delete();
- $route = route('dash', [], false);
+ $route = route('dash', []);
return redirect($route)
->with('success',__('app.alert.success.user_deleted'));
diff --git a/app/Http/Middleware/TrustProxies.php b/app/Http/Middleware/TrustProxies.php
index 4d7d39c8..7945af40 100644
--- a/app/Http/Middleware/TrustProxies.php
+++ b/app/Http/Middleware/TrustProxies.php
@@ -12,7 +12,7 @@ class TrustProxies extends Middleware
*
* @var array
*/
- protected $proxies = ['192.168.0.0/16', '172.16.0.0/12','10.0.0.0/8'];
+ protected $proxies = ['192.168.0.0/16', '172.16.0.0/12','10.0.0.0/8', '127.0.0.1'];
/**
* The current proxy header mappings.
diff --git a/app/Item.php b/app/Item.php
index f559945f..374b1868 100644
--- a/app/Item.php
+++ b/app/Item.php
@@ -20,7 +20,11 @@ class Item extends Model
static::addGlobalScope('user_id', function (Builder $builder) {
$current_user = User::currentUser();
- $builder->where('user_id', $current_user->id)->orWhere('user_id', 0);
+ if($current_user) {
+ $builder->where('user_id', $current_user->id)->orWhere('user_id', 0);
+ } else {
+ $builder->where('user_id', 0);
+ }
});
}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 176d44ac..db1eda92 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -72,22 +72,30 @@ class AppServiceProvider extends ServiceProvider
explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
}
if(!\Auth::check()) {
- if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
+ if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])
+ && !empty($_SERVER['PHP_AUTH_USER']) && !empty($_SERVER['PHP_AUTH_PW'])) {
$credentials = ['username' => $_SERVER['PHP_AUTH_USER'], 'password' => $_SERVER['PHP_AUTH_PW']];
- if (\Auth::attempt($credentials)) {
+ if (\Auth::attempt($credentials, true)) {
// Authentication passed...
$user = \Auth::user();
//\Session::put('current_user', $user);
session(['current_user' => $user]);
}
}
+ elseif(isset($_SERVER['REMOTE_USER']) && !empty($_SERVER['REMOTE_USER'])) {
+ $user = User::where('username', $_SERVER['REMOTE_USER'])->first();
+ if ($user) {
+ \Auth::login($user, true);
+ session(['current_user' => $user]);
+ }
+ }
}
$alt_bg = '';
if($bg_image = Setting::fetch('background_image')) {
- $alt_bg = ' style="background-image: url(/storage/'.$bg_image.')"';
+ $alt_bg = ' style="background-image: url(storage/'.$bg_image.')"';
}
$lang = Setting::fetch('language');
\App::setLocale($lang);
diff --git a/app/Search.php b/app/Search.php
index b68e4c38..2d65413c 100644
--- a/app/Search.php
+++ b/app/Search.php
@@ -89,10 +89,14 @@ abstract class Search
if(empty($app->class)) continue;
if(($provider = Item::isSearchProvider($app->class)) !== false) {
$name = Item::nameFromClass($app->class);
- $providers[strtolower($name)] = [
+ $providers[$app->id] = [
'type' => $provider->type,
'class' => $app->class,
'url' => $app->url,
+ 'title' => $app->title,
+ 'colour' => $app->colour,
+ 'icon' => $app->icon,
+ 'description' => $app->description
];
}
@@ -125,18 +129,22 @@ abstract class Search
$provider = self::providerDetails($user_search_provider);
$output .= '
';
}
}
@@ -144,4 +152,4 @@ abstract class Search
}
-}
\ No newline at end of file
+}
diff --git a/composer.json b/composer.json
index de6e3d62..c3357a22 100644
--- a/composer.json
+++ b/composer.json
@@ -5,7 +5,7 @@
"license": "MIT",
"type": "project",
"require": {
- "php": ">=7.0.0",
+ "php": ">=7.1.3",
"fideloper/proxy": "^4.0",
"graham-campbell/github": "^7.5",
"guzzlehttp/guzzle": "^6.3",
diff --git a/config/app.php b/config/app.php
index f768e05b..cf4738c3 100644
--- a/config/app.php
+++ b/config/app.php
@@ -14,7 +14,7 @@ return [
*/
'name' => env('APP_NAME', 'Heimdall'),
- 'version' => '2.2.1',
+ 'version' => '2.2.3',
/*
|--------------------------------------------------------------------------
diff --git a/database/seeds/SettingsSeeder.php b/database/seeds/SettingsSeeder.php
index 249c32c7..5941fbd5 100644
--- a/database/seeds/SettingsSeeder.php
+++ b/database/seeds/SettingsSeeder.php
@@ -96,7 +96,7 @@ class SettingsSeeder extends Seeder
]);
if(!$setting = Setting::find(4)) {
-
+
$setting = new Setting;
$setting->id = 4;
$setting->group_id = 3;
@@ -117,9 +117,10 @@ class SettingsSeeder extends Seeder
'en' => 'English',
'fi' => 'Suomi (Finnish)',
'fr' => 'Français (French)',
+ 'el' => 'Ελληνικά (Greek)',
'it' => 'Italiano (Italian)',
- 'no' => 'Norsk (Norwegian)',
- 'pl' => 'Polski (Polish)',
+ 'no' => 'Norsk (Norwegian)',
+ 'pl' => 'Polski (Polish)',
'sv' => 'Svenska (Swedish)',
'es' => 'Español (Spanish)',
'tr' => 'Türkçe (Turkish)',
@@ -146,7 +147,7 @@ class SettingsSeeder extends Seeder
]);
if(!$setting = Setting::find(7)) {
-
+
$setting = new Setting;
$setting->id = 7;
$setting->group_id = 3;
diff --git a/public/css/app.css b/public/css/app.css
index 0a5b9ccc..23cbdeef 100644
--- a/public/css/app.css
+++ b/public/css/app.css
@@ -1,4 +1,5 @@
-/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}body{background:#cfd2d4}#switchuser{background:rgba(0,0,0,.5);position:absolute;padding:10px;color:#fff;text-align:center;bottom:0;left:0;display:flex;flex-direction:column;justify-content:center;align-items:center;border-top:2px solid hsla(0,0%,100%,.15);border-right:2px solid hsla(0,0%,100%,.15);box-shadow:0 0 10px 0 rgba(0,0,0,.4);border-radius:0 9px 0 0;line-height:1.5;font-size:14px}#switchuser img{width:50px;margin-bottom:5px;border-radius:50%}#switchuser .btn{font-size:13px;color:#fff;text-decoration:none;margin:8px -10px -10px;border-radius:0;width:calc(100% + 22px);background:hsla(0,0%,100%,.15);transition:all .35s ease-in-out}#switchuser .btn:hover{background:#d64d55}#app{min-height:100vh;background-image:url(../img/bg1.jpg);background-repeat:no-repeat;background-size:cover;background-position:bottom}#app,#app nav{display:flex;flex-direction:column}#app nav{height:100%;position:absolute;width:340px;left:-340px;transition:all .35s ease-in-out;background:rgba(0,0,0,.7);color:#fff;z-index:2}#app .content{flex-grow:1;display:flex;flex-direction:column}#app .content .appheader{background:rgba(0,0,0,.4);text-align:center;position:absolute;height:58px;width:100%;top:-58px;transition:all .35s ease-in-out;z-index:1}#app .content .appheader ul{display:inline-block;list-style:none;height:58px;border-left:1px solid rgba(0,0,0,.6);border-right:1px solid hsla(0,0%,100%,.1);margin:0;padding:0}#app .content .appheader li{display:inline-block;border-right:1px solid rgba(0,0,0,.6);border-left:1px solid hsla(0,0%,100%,.1)}#app .content .appheader a{display:inline-block;color:#fff;text-decoration:none;padding:20px}#app main{flex-direction:column}#app #sortable,#app main{padding:30px 10px;display:flex;justify-content:center;align-items:center;flex:1;position:relative;flex-wrap:wrap;align-content:center;list-style:none;margin:0}#config-buttons{position:fixed;bottom:0;right:0;display:flex;flex-direction:column}#config-buttons a{width:50px;height:50px;background:rgba(0,0,0,.8);text-align:center;line-height:50px;color:#fff;margin-top:1px}#config-buttons a img{width:26px;height:26px;margin-top:12px}.userlist,.userlist .user{display:flex;justify-content:center;align-items:center}.userlist .user{background:rgba(0,0,0,.5);padding:15px;flex-direction:column;margin:20px;color:#fff;text-decoration:none;border-radius:15px;border:5px solid hsla(0,0%,100%,.7);box-shadow:0 0 10px 0 rgba(0,0,0,.4)}.userlist .user-img{width:130px;height:130px;border-radius:50%;margin:10px 10px 15px}.userlist #password{color:#2f313a;width:100%;padding:5px 10px;margin:15px -5px}.userlist .btn{width:100%}.userlist .forgot{color:#fff;font-size:12px;margin-top:25px}.item-container{position:relative}.item-container .item-edit{color:#fff;position:absolute;bottom:20px;left:8px;width:30px;height:30px;background:rgba(0,0,0,.7);border-radius:50%;text-align:center;line-height:30px;display:none}.black{color:#000!important}.white{color:#fff!important}.message-container,.message-container2{width:100%;padding:10px 20px}.alert{margin:30px auto;text-align:center;max-width:800px;background:#f1f4f7;display:flex;justify-content:center;padding:5px 20px 5px 80px;box-shadow:0 0 15px 3px rgba(0,0,0,.3)}.alert.alert-danger,.alert.alert-success{position:relative}.alert.alert-danger:before,.alert.alert-success:before{content:"\F00C";font-family:Font Awesome\ 5 Pro;font-weight:900;position:absolute;top:0;left:0;bottom:0;width:60px;background:#0eb584;text-align:center;color:#fff;line-height:57px;font-size:24px;align-items:center;justify-content:center;display:flex}.alert.alert-danger:before{content:"\F00D";background:#d64d55}.alert a{color:#91a1b3}#app.header .add-item,#app.header .item{transform:scale(.9);opacity:.8;margin:20px 0}#app.sidebar nav{left:0}.add-item{width:280px;height:90px;margin:20px;flex:0 0 280px;border-radius:6px;padding:20px;border:4px dashed hsla(0,0%,100%,.7);box-shadow:0 0 20px 2px rgba(0,0,0,.3);color:#fff;overflow:hidden;position:relative;display:none;outline:1px solid transparent}.add-item.active,.add-item a{display:block}.add-item a{width:100%;text-align:center;line-height:40px;color:#fff;font-size:19px}.item{width:280px;height:90px;margin:20px;flex:0 0 280px;background-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.25));border-radius:6px;padding:15px 55px 15px 15px;color:#fff;overflow:hidden;position:relative;transition:all .35s ease-in-out;outline:1px solid transparent;display:flex;align-items:center;border:1px solid #4a4a4a;border:1px solid rgba(76,76,76,.4);-webkit-background-clip:padding-box;background-clip:padding-box}.item:after{content:"";width:90px;height:90px;border-radius:50%;position:absolute;right:-48px;top:0;background:hsla(0,0%,100%,.1);box-shadow:0 0 40px 0 rgba(0,0,0,.2)}.item .link{position:absolute;right:0;top:0;height:100%;width:100%;text-align:right;line-height:90px;color:#fff;font-size:24px;z-index:1;padding-right:10px}.item .title{font-size:16px}.item .details{width:100%}.text-center{text-align:center!important}.module-container{box-shadow:0 0 10px 0 rgba(0,0,0,.4);border:1px solid #cdced8;background:#f9fafd;max-width:1000px;width:100%;margin:10px 40px;border-radius:5px;overflow:hidden}.module-container footer,.module-container header{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #fff;background:#f2f3f6;font-size:16px;border-bottom:1px solid #dbdce3;height:60px;position:relative}.module-container footer .section-title,.module-container header .section-title{font-size:18px;color:#5b5b5b;margin-left:25px}.module-container footer{border-top:1px solid #dbdce3}.module-container .table{width:100%;margin:0;background:#fff}.module-container .table thead th{background:#f2f3f6;color:#767d94;border-top:1px solid #fff;text-align:left;font-size:13px;text-transform:uppercase;padding:15px 25px}.module-container .table tbody tr:hover{background:#fefbf2}.module-container .table tbody tr:hover td:first-child{position:relative}.module-container .table tbody tr:hover td:first-child:before{content:"";position:absolute;top:0;left:0;bottom:0;width:5px;background:#0eb584}.module-container .table tbody td{padding:20px 25px;font-size:13px;color:#2f313a;max-width:500px;word-break:break-word}.module-container .table tbody td.form-error{background:#e69191;color:#fff;text-align:center}.module-container .table tbody a{color:#2f313a}.homesearch{height:51px}.toggleinput{display:flex;flex-direction:column-reverse;line-height:1;font-size:9px;font-weight:400;text-transform:uppercase;color:#ababab;padding:0 20px}.toggleinput label.name{margin-top:6px}.module-actions{display:flex;justify-content:space-between;align-items:center}.module-actions .button{font-size:18px;color:#515564;padding:0 10px;border:none;border-left:1px solid #cdced8;display:flex;line-height:1;position:relative;background:transparent;flex-direction:column;justify-content:center;align-items:center;min-width:65px;height:60px;text-decoration:none;box-sizing:border-box}.module-actions .button:after{position:absolute;content:"";top:0;left:0;bottom:0;border-right:1px solid #fff}.module-actions .button span{display:inline-block;line-height:1;font-size:9px;font-weight:400;text-transform:uppercase;color:#ababab;position:relative;top:4px;margin:0}div.create{padding:30px 15px;display:flex;flex-wrap:wrap}div.create .input{width:280px;margin:20px}div.create .input label:not(.switch){width:100%;font-size:13px;color:#9094a5;margin-bottom:15px;display:block;font-weight:300}div.create .input input,div.create .input select{width:100%;border:1px solid #dedfe2;padding:10px;border-radius:6px}.app-icon{max-width:60px;margin-right:15px}.sidenav{position:relative}.sidenav .close-sidenav{position:absolute;top:20px;right:20px;font-size:24px;color:#ccc}.sidenav h2{font-weight:300;padding:20px;margin:0}.sidenav ul{list-style:none;margin:0;padding:20px}.sidenav ul li{display:flex;justify-content:space-between;padding:5px}.sidenav ul li a{color:#2b3542}.sidenav ul li a.active{color:#46b0e6}.trashed{font-size:11px;color:#91a1b3;margin-left:20px}.switch{position:relative;display:inline-block;width:36px;height:20px}.switch input{display:none}.slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#4a556b}.slider,.slider:before{position:absolute;transition:.4s}.slider:before{content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff}input:checked+.slider{background-color:#2196f3}input:focus+.slider{box-shadow:0 0 1px #2196f3}input:checked+.slider:before{transform:translateX(16px)}.slider.round{border-radius:20px}.slider.round:before{border-radius:50%}@-webkit-keyframes autofill{to{background:#f5f5f5;color:#2f313a;font-weight:700}}@keyframes autofill{to{background:#f5f5f5;color:#2f313a;font-weight:700}}input:-webkit-autofill{-webkit-animation-name:autofill;-webkit-animation-fill-mode:both}input:autofill{-webkit-animation-name:autofill;animation-name:autofill;-webkit-animation-fill-mode:both;animation-fill-mode:both}button.link{border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent}a.settinglink{color:#2f313a;font-size:13px;margin:15px 5px;display:inline-block;font-weight:700}.setting-view-image{margin-bottom:20px;display:inline-block}.setting-view-image img{max-width:330px}.searchform{display:flex;align-self:flex-start;text-align:center;margin:50px auto;padding:14px;background:rgba(0,0,0,.2);border-radius:14px;box-shadow:inset 0 1px 6px 0 rgba(0,0,0,.3);border-top:1px solid rgba(0,0,0,.5);border-bottom:1px solid hsla(0,0%,100%,.35);position:relative;width:100%;max-width:620px}.searchform form{width:100%}.searchform .input-container{background:#fff;border-radius:5px;box-shadow:0 0 5px 0 rgba(0,0,0,.4);overflow:hidden;position:relative;display:flex}.searchform input{padding:17px 15px;font-size:15px;border:0;width:100%;background:transparent}.searchform button{position:absolute;right:0;top:0;border:none;font-size:16px;padding:7px 15px;line-height:38px;font-weight:500;border-top-right-radius:5px;border-bottom-right-radius:5px;color:#fff;text-transform:uppercase;background:#d64d55}.searchform select{padding:0 10px;background:#f5f5f5;border:none;border-right:1px solid #ddd}.ui-autocomplete{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0 0 10px 25px;list-style:none;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:5px;box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px}.ui-menu-item{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#555;white-space:nowrap;text-decoration:none}.ui-state-active,.ui-state-hover{font-weight:700}#appimage img{max-width:95px}#sapconfig,.newblock{display:none;width:100%}#sapconfig h2,.newblock h2{background:#f2f3f6;padding:2px 25px;height:60px;margin-left:-15px;width:calc(100% + 30px);border-top:1px solid #dbdce3;border-bottom:1px solid #dbdce3;font-size:18px;color:#5b5b5b;font-weight:500;display:flex;justify-content:space-between;align-items:center}#sapconfig .items,.newblock .items{display:flex}hr{margin:23px 0 18px;height:0;border-style:none;border-width:0;border-top:1px solid #eaeaea;border-bottom:1px solid #fff}.upload-btn-wrapper{position:relative;overflow:hidden;display:inline-block}.btn{border:none;background-color:#d64d55;padding:8px 12px;border-radius:8px}.btn,.btn.test{color:#fff;font-size:16px}.btn.test{font-weight:500;border-top-right-radius:5px;border-bottom-right-radius:5px;text-transform:uppercase;padding:8px 50px;background:#207774}.upload-btn-wrapper input[type=file]{font-size:100px;position:absolute;left:0;top:0;opacity:0}.icon-container{display:flex;align-items:center}.icon-container img{margin-right:15px}.ui-helper-hidden-accessible{display:none}.livestats-container .livestats{margin:5px 0 0;padding:0;display:flex;list-style:none;justify-content:space-between;width:100%}.livestats-container .livestats span{display:block;text-transform:uppercase;font-size:11px;font-weight:500;opacity:.5;line-height:1;display:flex;text-align:left}.livestats-container .livestats strong{display:block;line-height:1;display:flex;align-items:center;color:#fff;font-size:12px;line-height:1.2}.livestats-container .livestats strong span{margin-left:4px}.livestats-container .livestats li{text-align:center;margin:0;line-height:1}.livestats-container .livestats li.right{text-align:right}.livestats-container .livestats li.right span{justify-content:flex-end}.livestats-container .livestats.flexcolumn{flex-direction:column}.livestats-container.black .livestats strong{color:#000}input:-webkit-autofill,input:-webkit-autofill:focus input:-webkit-autofill,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus{border:inherit;-webkit-text-fill-color:inherit;-webkit-box-shadow:inherit;transition:inherit;color:#2f313a!important}.title-marquee{width:125px;overflow:hidden;display:flex;align-items:flex-start;margin-top:2px}.title-marquee>span,.title-marquee>strong{white-space:nowrap;transform:translate(0);-webkit-animation:marquee 8s linear;animation:marquee 8s linear}.no-marquee .title,.title-marquee .title{margin-right:4px}@-webkit-keyframes marquee{0%{transform:translate(0)}20%{transform:translate(0)}95%{transform:translate(-200%)}to{transform:translate(-200%)}}@keyframes marquee{0%{transform:translate(0)}20%{transform:translate(0)}95%{transform:translate(-200%)}to{transform:translate(-200%)}}
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-webkit-box-sizing:inherit;box-sizing:inherit}body{background:#cfd2d4}#switchuser{background:rgba(0,0,0,.5);position:absolute;padding:10px;color:#fff;text-align:center;bottom:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-top:2px solid hsla(0,0%,100%,.15);border-right:2px solid hsla(0,0%,100%,.15);-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.4);box-shadow:0 0 10px 0 rgba(0,0,0,.4);border-radius:0 9px 0 0;line-height:1.5;font-size:14px}#switchuser img{width:50px;margin-bottom:5px;border-radius:50%}#switchuser .btn{font-size:13px;color:#fff;text-decoration:none;margin:8px -10px -10px;border-radius:0;width:calc(100% + 22px);background:hsla(0,0%,100%,.15);-webkit-transition:all .35s ease-in-out;transition:all .35s ease-in-out}#switchuser .btn:hover{background:#d64d55}#app{min-height:100vh;background-image:url("../img/bg1.jpg");background-repeat:no-repeat;background-size:cover;background-position:bottom}#app,#app nav{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#app nav{height:100%;position:absolute;width:340px;left:-340px;-webkit-transition:all .35s ease-in-out;transition:all .35s ease-in-out;background:rgba(0,0,0,.7);color:#fff;z-index:2}#app .content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#app .content .appheader{background:rgba(0,0,0,.4);text-align:center;position:absolute;height:58px;width:100%;top:-58px;-webkit-transition:all .35s ease-in-out;transition:all .35s ease-in-out;z-index:1}#app .content .appheader ul{display:inline-block;list-style:none;height:58px;border-left:1px solid rgba(0,0,0,.6);border-right:1px solid hsla(0,0%,100%,.1);margin:0;padding:0}#app .content .appheader li{display:inline-block;border-right:1px solid rgba(0,0,0,.6);border-left:1px solid hsla(0,0%,100%,.1)}#app .content .appheader a{display:inline-block;color:#fff;text-decoration:none;padding:20px}#app main{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#app #sortable,#app main{padding:30px 10px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:1;-ms-flex:1;flex:1;position:relative;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:center;align-content:center;list-style:none;margin:0}#app #sortable,#app main,#config-buttons{display:-webkit-box;display:-ms-flexbox;display:flex}#config-buttons{position:fixed;bottom:0;right:0;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}#config-buttons a{width:50px;height:50px;background:rgba(0,0,0,.8);text-align:center;line-height:50px;color:#fff;margin-top:1px}#config-buttons a img{width:26px;height:26px;margin-top:12px}.userlist,.userlist .user{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.userlist .user{background:rgba(0,0,0,.5);padding:15px;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;margin:20px;color:#fff;text-decoration:none;border-radius:15px;border:5px solid hsla(0,0%,100%,.7);-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.4);box-shadow:0 0 10px 0 rgba(0,0,0,.4)}.userlist .user-img{width:130px;height:130px;margin-bottom:20px;border-radius:50%;margin:10px 10px 15px}.userlist #password{color:#2f313a;width:100%;padding:5px 10px;margin:15px -5px}.userlist .btn{width:100%}.userlist .forgot{color:#fff;font-size:12px;margin-top:25px}.item-container{position:relative}.item-container .item-edit{color:#fff;position:absolute;bottom:20px;left:8px;width:30px;height:30px;background:rgba(0,0,0,.7);border-radius:50%;text-align:center;line-height:30px;display:none}.black{color:#000!important}.white{color:#fff!important}.message-container,.message-container2{width:100%;padding:10px 20px}.alert{margin:30px auto;text-align:center;max-width:800px;background:#f1f4f7;padding:5px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-left:80px;-webkit-box-shadow:0 0 15px 3px rgba(0,0,0,.3);box-shadow:0 0 15px 3px rgba(0,0,0,.3)}.alert.alert-danger,.alert.alert-success{position:relative}.alert.alert-danger:before,.alert.alert-success:before{content:"\F00C";font-family:Font Awesome\ 5 Pro;font-weight:900;position:absolute;top:0;left:0;bottom:0;width:60px;background:#0eb584;text-align:center;color:#fff;line-height:57px;font-size:24px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-ms-flexbox;display:flex}.alert.alert-danger:before{content:"\F00D";background:#d64d55}.alert a{color:#91a1b3}#app.header .add-item,#app.header .item{-webkit-transform:scale(.9);transform:scale(.9);opacity:.8;margin:20px 0}#app.sidebar nav{left:0}.add-item{width:280px;height:90px;margin:20px;-webkit-box-flex:0;-ms-flex:0 0 280px;flex:0 0 280px;border-radius:6px;padding:20px;border:4px dashed hsla(0,0%,100%,.7);-webkit-box-shadow:0 0 20px 2px rgba(0,0,0,.3);box-shadow:0 0 20px 2px rgba(0,0,0,.3);color:#fff;overflow:hidden;position:relative;display:none;outline:1px solid transparent}.add-item.active,.add-item a{display:block}.add-item a{width:100%;text-align:center;line-height:40px;color:#fff;font-size:19px}.item{width:280px;height:90px;margin:20px;-webkit-box-flex:0;-ms-flex:0 0 280px;flex:0 0 280px;background-image:-webkit-gradient(linear,left top,right top,from(hsla(0,0%,100%,0)),to(hsla(0,0%,100%,.25)));background-image:linear-gradient(90deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.25));border-radius:6px;padding:15px;padding-right:55px;color:#fff;overflow:hidden;position:relative;-webkit-transition:all .35s ease-in-out;transition:all .35s ease-in-out;outline:1px solid transparent;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border:1px solid #333;border:1px solid #4a4a4a;border:1px solid rgba(76,76,76,.4);background-clip:padding-box}.item:after{content:"";width:90px;height:90px;border-radius:50%;position:absolute;right:-48px;top:0;background:hsla(0,0%,100%,.1);-webkit-box-shadow:0 0 40px 0 rgba(0,0,0,.2);box-shadow:0 0 40px 0 rgba(0,0,0,.2)}.item .link{position:absolute;right:0;top:0;height:100%;width:100%;text-align:right;line-height:90px;color:#fff;font-size:24px;z-index:1;padding-right:10px}.item .title{font-size:16px}.item .details{width:100%}.text-center{text-align:center!important}.module-container{-webkit-box-shadow:0 0 10px 0 rgba(0,0,0,.4);box-shadow:0 0 10px 0 rgba(0,0,0,.4);border:1px solid #cdced8;background:#f9fafd;max-width:1000px;width:100%;margin:10px 40px;border-radius:5px;overflow:hidden}.module-container footer,.module-container header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;border-top:1px solid #fff;background:#f2f3f6;font-size:16px;border-bottom:1px solid #dbdce3;height:60px;position:relative}.module-container footer .section-title,.module-container header .section-title{font-size:18px;color:#5b5b5b;margin-left:25px}.module-container footer{border-top:1px solid #dbdce3}.module-container .table{width:100%;margin:0;background:#fff}.module-container .table thead th{background:#f2f3f6;color:#767d94;border-top:1px solid #fff;text-align:left;font-size:13px;text-transform:uppercase;padding:15px 25px}.module-container .table tbody tr:hover{background:#fefbf2}.module-container .table tbody tr:hover td:first-child{position:relative}.module-container .table tbody tr:hover td:first-child:before{content:"";position:absolute;top:0;left:0;bottom:0;width:5px;background:#0eb584}.module-container .table tbody td{padding:20px 25px;font-size:13px;color:#2f313a;max-width:500px;word-break:break-word}.module-container .table tbody td.form-error{background:#e69191;color:#fff;text-align:center}.module-container .table tbody a{color:#2f313a}.homesearch{height:51px}.toggleinput{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse;line-height:1;font-size:9px;font-weight:400;text-transform:uppercase;color:#ababab;padding:0 20px}.toggleinput label.name{margin-top:6px}.module-actions{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.module-actions,.module-actions .button{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.module-actions .button{font-size:18px;color:#515564;padding:0 10px;border:none;border-left:1px solid #cdced8;line-height:1;position:relative;background:transparent;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;min-width:65px;height:60px;text-decoration:none;-webkit-box-sizing:border-box;box-sizing:border-box}.module-actions .button:after{position:absolute;content:"";top:0;left:0;bottom:0;border-right:1px solid #fff}.module-actions .button span{display:inline-block;line-height:1;font-size:9px;font-weight:400;text-transform:uppercase;color:#ababab;position:relative;top:4px;margin:0}div.create{padding:30px 15px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}div.create .input{width:280px;margin:20px}div.create .input label:not(.switch){width:100%;font-size:13px;color:#9094a5;margin-bottom:15px;display:block;font-weight:300}div.create .input input,div.create .input select{width:100%;border:1px solid #dedfe2;padding:10px;border-radius:6px}.app-icon{max-width:60px;margin-right:15px}.sidenav{position:relative}.sidenav .close-sidenav{position:absolute;top:20px;right:20px;font-size:24px;color:#ccc}.sidenav h2{font-weight:300;padding:20px;margin:0}.sidenav ul{list-style:none;margin:0;padding:20px}.sidenav ul li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:5px}.sidenav ul li a{color:#2b3542}.sidenav ul li a.active{color:#46b0e6}.trashed{font-size:11px;color:#91a1b3;margin-left:20px}.switch{position:relative;display:inline-block;width:36px;height:20px}.switch input{display:none}.slider{cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#4a556b}.slider,.slider:before{position:absolute;-webkit-transition:.4s;transition:.4s}.slider:before{content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff}input:checked+.slider{background-color:#2196f3}input:focus+.slider{-webkit-box-shadow:0 0 1px #2196f3;box-shadow:0 0 1px #2196f3}input:checked+.slider:before{-webkit-transform:translateX(16px);transform:translateX(16px)}.slider.round{border-radius:20px}.slider.round:before{border-radius:50%}@-webkit-keyframes autofill{to{background:#f5f5f5;color:#2f313a;font-weight:700}}@keyframes autofill{to{background:#f5f5f5;color:#2f313a;font-weight:700}}input:-webkit-autofill{-webkit-animation-name:autofill;-webkit-animation-fill-mode:both}input:autofill{-webkit-animation-name:autofill;animation-name:autofill;-webkit-animation-fill-mode:both;animation-fill-mode:both}button.link{border:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent}a.settinglink{color:#2f313a;font-size:13px;margin:15px 5px;display:inline-block;font-weight:700}.setting-view-image{margin-bottom:20px;display:inline-block}.setting-view-image img{max-width:330px}.searchform{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-item-align:start;align-self:flex-start;text-align:center;margin:50px auto;padding:14px;background:rgba(0,0,0,.2);border-radius:14px;-webkit-box-shadow:inset 0 1px 6px 0 rgba(0,0,0,.3);box-shadow:inset 0 1px 6px 0 rgba(0,0,0,.3);border-top:1px solid rgba(0,0,0,.5);border-bottom:1px solid hsla(0,0%,100%,.35);position:relative;width:100%;max-width:620px}.searchform form{width:100%}.searchform .input-container{background:#fff;border-radius:5px;-webkit-box-shadow:0 0 5px 0 rgba(0,0,0,.4);box-shadow:0 0 5px 0 rgba(0,0,0,.4);overflow:hidden;position:relative;display:-webkit-box;display:-ms-flexbox;display:flex}.searchform input{padding:17px 15px;font-size:15px;border:0 none;width:100%;background:transparent}.searchform button{position:absolute;right:0;top:0;border:none;font-size:16px;padding:7px 15px;line-height:38px;font-weight:500;border-top-right-radius:5px;border-bottom-right-radius:5px;color:#fff;text-transform:uppercase;background:#d64d55}.searchform select{padding:0 10px;background:#f5f5f5;border:none;border-right:1px solid #ddd}.ui-autocomplete{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;padding:4px 0;margin:0 0 10px 25px;list-style:none;background-color:#fff;border-color:#ccc;border:1px solid rgba(0,0,0,.2);border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);background-clip:padding-box;*border-right-width:2px;*border-bottom-width:2px}.ui-menu-item{display:block;padding:3px 15px;clear:both;font-weight:400;line-height:18px;color:#555;white-space:nowrap;text-decoration:none}.ui-state-active,.ui-state-hover{font-weight:700}#appimage img{max-width:95px}#sapconfig,.newblock{display:none;width:100%}#sapconfig h2,.newblock h2{background:#f2f3f6;padding:2px 25px;height:60px;margin-left:-15px;width:calc(100% + 30px);border-top:1px solid #dbdce3;border-bottom:1px solid #dbdce3;font-size:18px;color:#5b5b5b;font-weight:500;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center}#sapconfig .items,#sapconfig h2,.newblock .items,.newblock h2{display:-webkit-box;display:-ms-flexbox;display:flex}hr{margin:23px 0 18px;height:0;border-style:none;border-width:0;border-top:1px solid #eaeaea;border-bottom:1px solid #fff}.upload-btn-wrapper{position:relative;overflow:hidden;display:inline-block}.btn{border:none;background-color:#d64d55;padding:8px 12px;border-radius:8px}.btn,.btn.test{color:#fff;font-size:16px}.btn.test{font-weight:500;border-top-right-radius:5px;border-bottom-right-radius:5px;text-transform:uppercase;padding:8px 50px;background:#207774}.upload-btn-wrapper input[type=file]{font-size:100px;position:absolute;left:0;top:0;opacity:0}.icon-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.icon-container img{margin-right:15px}.ui-helper-hidden-accessible{display:none}.livestats-container .livestats{margin:5px 0 0;padding:0;display:-webkit-box;display:-ms-flexbox;display:flex;list-style:none;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:100%}.livestats-container .livestats span{text-transform:uppercase;font-size:11px;font-weight:500;opacity:.5;text-align:left}.livestats-container .livestats span,.livestats-container .livestats strong{display:block;line-height:1;display:-webkit-box;display:-ms-flexbox;display:flex}.livestats-container .livestats strong{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#fff;font-size:12px;line-height:1.2}.livestats-container .livestats strong span{margin-left:4px}.livestats-container .livestats li{text-align:center;margin:0;line-height:1}.livestats-container .livestats li.right{text-align:right}.livestats-container .livestats li.right span{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.livestats-container .livestats.flexcolumn{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.livestats-container.black .livestats strong{color:#000}input:-webkit-autofill,input:-webkit-autofill:focus input:-webkit-autofill,input:-webkit-autofill:hover,select:-webkit-autofill,select:-webkit-autofill:focus,select:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover textarea:-webkit-autofill:focus{border:inherit;-webkit-text-fill-color:inherit;-webkit-box-shadow:inherit;-webkit-transition:inherit;transition:inherit;color:#2f313a!important}.title-marquee{width:125px;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin-top:2px}.title-marquee>span,.title-marquee>strong{white-space:nowrap;-webkit-transform:translate(0);transform:translate(0);-webkit-animation:marquee 8s linear;animation:marquee 8s linear}.no-marquee .title,.title-marquee .title{margin-right:4px}@-webkit-keyframes marquee{0%{-webkit-transform:translate(0);transform:translate(0)}20%{-webkit-transform:translate(0);transform:translate(0)}95%{-webkit-transform:translate(-200%);transform:translate(-200%)}to{-webkit-transform:translate(-200%);transform:translate(-200%)}}@keyframes marquee{0%{-webkit-transform:translate(0);transform:translate(0)}20%{-webkit-transform:translate(0);transform:translate(0)}95%{-webkit-transform:translate(-200%);transform:translate(-200%)}to{-webkit-transform:translate(-200%);transform:translate(-200%)}}
+
/*! Huebee v2.0.0
http://huebee.buzz
----------------------------------------------- */.huebee{position:absolute;z-index:1;transform:translateY(0);transition:opacity .15s,transform .15s}.huebee.is-hidden{opacity:0;transform:translateY(10px)}.huebee.is-static-open{position:relative;z-index:auto}.huebee__container{position:absolute;left:0;top:5px;padding:10px;background:#eee;border-radius:5px;box-shadow:0 5px 10px rgba(0,0,0,.3)}.huebee.is-static-open .huebee__container{position:relative;display:inline-block;left:auto;top:auto;box-shadow:none}.huebee__canvas{display:block;cursor:pointer}.huebee__cursor{width:15px;height:15px;position:absolute;left:0;top:0;box-sizing:content-box;border:3px solid #fff;border-radius:5px;pointer-events:none}.huebee__cursor.is-hidden{opacity:0}.huebee__close-button{display:block;position:absolute;width:24px;height:24px;top:-9px;right:-9px;border-radius:12px;background:#222}.huebee__close-button__x{stroke:#fff;stroke-width:3;stroke-linecap:round}.huebee__close-button:hover{background:#fff;cursor:pointer}.huebee__close-button:hover .huebee__close-button__x{stroke:#222}.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:39px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #dedfe2;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#f2f3f6;border:1px solid #dedfe2;border-radius:4px;cursor:default;float:left;margin-right:5px;font-size:13px;font-weight:300;margin-top:5px;padding:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #dedfe2;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:linear-gradient(180deg,#fff 50%,#eee);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:linear-gradient(180deg,#eee 50%,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFCCCCCC",GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:linear-gradient(180deg,#fff 0,#eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:linear-gradient(180deg,#eee 50%,#fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFFFFFFF",GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
\ No newline at end of file
+---------------------------------------------- */.huebee{position:absolute;z-index:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-transition:opacity .15s,-webkit-transform .15s;transition:opacity .15s,-webkit-transform .15s;transition:opacity .15s,transform .15s;transition:opacity .15s,transform .15s,-webkit-transform .15s}.huebee.is-hidden{opacity:0;-webkit-transform:translateY(10px);transform:translateY(10px)}.huebee.is-static-open{position:relative;z-index:auto}.huebee__container{position:absolute;left:0;top:5px;padding:10px;background:#eee;border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.3);box-shadow:0 5px 10px rgba(0,0,0,.3)}.huebee.is-static-open .huebee__container{position:relative;display:inline-block;left:auto;top:auto;-webkit-box-shadow:none;box-shadow:none}.huebee__canvas{display:block;cursor:pointer}.huebee__cursor{width:15px;height:15px;position:absolute;left:0;top:0;-webkit-box-sizing:content-box;box-sizing:content-box;border:3px solid #fff;border-radius:5px;pointer-events:none}.huebee__cursor.is-hidden{opacity:0}.huebee__close-button{display:block;position:absolute;width:24px;height:24px;top:-9px;right:-9px;border-radius:12px;background:#222}.huebee__close-button__x{stroke:#fff;stroke-width:3;stroke-linecap:round}.huebee__close-button:hover{background:#fff;cursor:pointer}.huebee__close-button:hover .huebee__close-button__x{stroke:#222}.select2-container{-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:block;height:28px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir=rtl] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer;display:block;min-height:39px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{-webkit-box-sizing:border-box;box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:#fff;border:1px solid #aaa;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0!important;clip:rect(0 0 0 0)!important;-webkit-clip-path:inset(50%)!important;clip-path:inset(50%)!important;height:1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;width:1px!important;white-space:nowrap!important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir=rtl] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--default .select2-selection--multiple{background-color:#fff;border:1px solid #dedfe2;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#f2f3f6;border:1px solid #dedfe2;border-radius:4px;cursor:default;float:left;margin-right:5px;font-size:13px;font-weight:300;margin-top:5px;padding:5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-search--inline,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__placeholder{float:right}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:1px solid #dedfe2;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--above .select2-selection--single{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple,.select2-container--default.select2-container--open.select2-container--below .select2-selection--single{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;-webkit-box-shadow:none;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:#fff}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#fff),to(#eee));background-image:linear-gradient(180deg,#fff 50%,#eee);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:700;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#eee),to(#ccc));background-image:linear-gradient(180deg,#eee 50%,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFCCCCCC",GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent;border-style:solid;border-width:5px 4px 0;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir=rtl] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888;border-width:0 4px 5px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),color-stop(50%,#eee));background-image:linear-gradient(180deg,#fff 0,#eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFFFF",endColorstr="#FFEEEEEE",GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(50%,#eee),to(#fff));background-image:linear-gradient(180deg,#eee 50%,#fff);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFEEEEEE",endColorstr="#FFFFFFFF",GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:#fff;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:700;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice{float:right;margin-left:5px;margin-right:auto}.select2-container--classic[dir=rtl] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;-webkit-box-shadow:none;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb}
\ No newline at end of file
diff --git a/public/js/app.js b/public/js/app.js
index 8c7eb0c8..f974c9f7 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -1 +1 @@
-!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return-1==i.indexOf(e)&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{};return(n[t]=n[t]||{})[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return-1!=i&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=0,o=n[i];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),o=n[i+=r?0:1]}return this}},t}),function(t,e){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(n){return e(t,n)}):"object"==typeof module&&module.exports?module.exports=e(t,require("ev-emitter")):t.Unipointer=e(t,t.EvEmitter)}(window,function(t,e){function n(){}var i=n.prototype=Object.create(e.prototype);i.bindStartEvent=function(t){this._bindStartEvent(t,!0)},i.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},i._bindStartEvent=function(e,n){var i=(n=void 0===n||!!n)?"addEventListener":"removeEventListener";t.navigator.pointerEnabled?e[i]("pointerdown",this):t.navigator.msPointerEnabled?e[i]("MSPointerDown",this):(e[i]("mousedown",this),e[i]("touchstart",this))},i.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},i.getTouch=function(t){for(var e=0;e.5;var o=this.colorGrid[e.toUpperCase()];this.updateCursor(o),this.setTexts(),this.setBackgrounds(),n||this.emitEvent("change",[e,t.hue,t.sat,t.lum])}},h.setTexts=function(){if(this.setTextElems)for(var t=0;t0&&(void 0===document.addEventListener||void 0===t?console.log("This browser does not support visibilityChange"):document.addEventListener(e,function(){document[t]?function(){for(var t of n)window.clearTimeout(t)}():function(){for(var t of i)t()}()},!1),o.each(function(t){var e=$(this).data("id"),o=1==$(this).data("dataonly")?2e4:1e3,s=$(this),r=5e3,a=function i(){$.ajax({url:"/get_stats/"+e,dataType:"json",success:function(t){s.html(t.html),"active"==t.status?r=o:r<3e4&&(r+=2e3)},complete:function(){n[t]=window.setTimeout(i,r)}})};i[t]=a,a()})),$("#upload").change(function(){!function(t){if(t.files&&t.files[0]){var e=new FileReader;e.onload=function(t){$("#appimage img").attr("src",t.target.result)},e.readAsDataURL(t.files[0])}}(this)}),$("#sortable").sortable({stop:function(t,e){var n=$("#sortable").sortable("toArray",{attribute:"data-id"});$.post("/order",{order:n})}}),$("#sortable").sortable("disable"),$("#app").on("click","#config-button",function(t){t.preventDefault();var e=$("#app"),n=e.hasClass("header");e.toggleClass("header"),n?($(".add-item").hide(),$(".item-edit").hide(),$("#app").removeClass("sidebar"),$("#sortable").sortable("disable")):($("#sortable").sortable("enable"),setTimeout(function(){$(".add-item").fadeIn(),$(".item-edit").fadeIn()},350))}).on("click","#add-item, #pin-item",function(t){t.preventDefault();var e=$("#app");e.hasClass("sidebar");e.toggleClass("sidebar")}).on("click",".close-sidenav",function(t){t.preventDefault(),$("#app").removeClass("sidebar")}).on("click","#test_config",function(t){t.preventDefault();var e=$("#create input[name=url]").val(),n=$('#create input[name="config[override_url]"]').val();n.length&&""!=n&&(e=n);var i={};i.url=e,$(".config-item").each(function(t){var e=$(this).data("config");i[e]=$(this).val()}),$.post("/test_config",{data:i},function(t){alert(t)})}),$("#pinlist").on("click","a",function(t){t.preventDefault();var e=$(this),n=e.data("id"),i=e.data("tag");$.get("/items/pintoggle/"+n+"/true/"+i,function(t){var n=$(t).filter("#sortable").html();$("#sortable").html(n),e.toggleClass("active")})})});
+var _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t};!function(t,e){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",e):"object"==("undefined"==typeof module?"undefined":_typeof(module))&&module.exports?module.exports=e():t.EvEmitter=e()}("undefined"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var n=this._events=this._events||{},i=n[t]=n[t]||[];return-1==i.indexOf(e)&&i.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var n=this._onceEvents=this._onceEvents||{};return(n[t]=n[t]||{})[e]=!0,this}},e.off=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=n.indexOf(e);return-1!=i&&n.splice(i,1),this}},e.emitEvent=function(t,e){var n=this._events&&this._events[t];if(n&&n.length){var i=0,o=n[i];e=e||[];for(var s=this._onceEvents&&this._onceEvents[t];o;){var r=s&&s[o];r&&(this.off(t,o),delete s[o]),o.apply(this,e),i+=r?0:1,o=n[i]}return this}},t}),function(t,e){"function"==typeof define&&define.amd?define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(n){return e(t,n)}):"object"==("undefined"==typeof module?"undefined":_typeof(module))&&module.exports?module.exports=e(t,require("ev-emitter")):t.Unipointer=e(t,t.EvEmitter)}(window,function(t,e){function n(){}function i(){}var o=i.prototype=Object.create(e.prototype);o.bindStartEvent=function(t){this._bindStartEvent(t,!0)},o.unbindStartEvent=function(t){this._bindStartEvent(t,!1)},o._bindStartEvent=function(e,n){n=void 0===n||!!n;var i=n?"addEventListener":"removeEventListener";t.navigator.pointerEnabled?e[i]("pointerdown",this):t.navigator.msPointerEnabled?e[i]("MSPointerDown",this):(e[i]("mousedown",this),e[i]("touchstart",this))},o.handleEvent=function(t){var e="on"+t.type;this[e]&&this[e](t)},o.getTouch=function(t){for(var e=0;e.5;var o=this.colorGrid[e.toUpperCase()];this.updateCursor(o),this.setTexts(),this.setBackgrounds(),n||this.emitEvent("change",[e,t.hue,t.sat,t.lum])}},f.setTexts=function(){if(this.setTextElems)for(var t=0;t0&&(void 0===document.addEventListener||void 0===o?console.log("This browser does not support visibilityChange"):document.addEventListener(s,function(){document[o]?t():e()},!1),h.each(function(t){var e=$(this).data("id"),n=$(this).data("dataonly"),o=1==n?2e4:1e3,s=$(this),h=5e3,c=function n(){$.ajax({url:i+"/get_stats/"+e,dataType:"json",success:function(t){s.html(t.html),"active"==t.status?h=o:h<3e4&&(h+=2e3)},complete:function(){r[t]=window.setTimeout(n,h)}})};a[t]=c,c()})),$("#upload").change(function(){n(this)}),$("#sortable").sortable({stop:function(t,e){var n=$("#sortable").sortable("toArray",{attribute:"data-id"});$.post(i+"/order",{order:n})}}),$("#sortable").sortable("disable"),$("#app").on("click","#config-button",function(t){t.preventDefault();var e=$("#app"),n=e.hasClass("header");e.toggleClass("header"),n?($(".add-item").hide(),$(".item-edit").hide(),$("#app").removeClass("sidebar"),$("#sortable").sortable("disable")):($("#sortable").sortable("enable"),setTimeout(function(){$(".add-item").fadeIn(),$(".item-edit").fadeIn()},350))}).on("click","#add-item, #pin-item",function(t){t.preventDefault();var e=$("#app");e.hasClass("sidebar");e.toggleClass("sidebar")}).on("click",".close-sidenav",function(t){t.preventDefault(),$("#app").removeClass("sidebar")}).on("click","#test_config",function(t){t.preventDefault();var e=$("#create input[name=url]").val(),n=$('#create input[name="config[override_url]"]').val();n.length&&""!=n&&(e=n);var o={};o.url=e,$(".config-item").each(function(t){var e=$(this).data("config");o[e]=$(this).val()}),$.post(i+"/test_config",{data:o},function(t){alert(t)})}),$("#pinlist").on("click","a",function(t){t.preventDefault();var e=$(this),n=e.data("id"),o=e.data("tag");$.get(i+"/items/pintoggle/"+n+"/true/"+o,function(t){var n=$(t).filter("#sortable").html();$("#sortable").html(n),e.toggleClass("active")})})});
diff --git a/public/js/fontawesome.js b/public/js/fontawesome.js
index 312fe748..59583d2f 100644
--- a/public/js/fontawesome.js
+++ b/public/js/fontawesome.js
@@ -481,6 +481,7 @@ function define(prefix, icons) {
var icons = {
"arrow-alt-to-right": [448, 512, [], "f34c", "M448 88v336c0 13.3-10.7 24-24 24h-24c-13.3 0-24-10.7-24-24V88c0-13.3 10.7-24 24-24h24c13.3 0 24 10.7 24 24zM24 320h136v87.7c0 17.8 21.5 26.7 34.1 14.1l152.2-152.2c7.5-7.5 7.5-19.8 0-27.3L194.1 90.1c-12.6-12.6-34.1-3.7-34.1 14.1V192H24c-13.3 0-24 10.7-24 24v80c0 13.3 10.7 24 24 24z"],
"ban": [512, 512, [], "f05e", "M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"],
+ "check": [512, 512, [], "f00c", "M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"],
"cloud-download": [640, 512, [], "f0ed", "M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-139.9 93L305 412.3c-9.4 9.4-24.6 9.4-33.9 0l-92.7-92.7c-9.4-9.4-9.4-24.6 0-33.9l10.8-10.8c9.6-9.6 25.2-9.3 34.5.5l32.4 34.5V184c0-13.3 10.7-24 24-24h16c13.3 0 24 10.7 24 24v125.9l32.4-34.5c9.3-9.9 24.9-10.1 34.5-.5l10.8 10.8c9.2 9.3 9.2 24.5-.1 33.9z"],
"cogs": [640, 512, [], "f085", "M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"],
"edit": [576, 512, [], "f044", "M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"],
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index 13b44cc4..83d5ca29 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -1,4 +1,4 @@
{
- "/css/app.css": "/css/app.css?id=62b46d36567ec0e3418f",
- "/js/app.js": "/js/app.js?id=d8215a9716aec5f9e409"
+ "/css/app.css": "/css/app.css?id=e4ac968c3a08d246c3b0",
+ "/js/app.js": "/js/app.js?id=f5edf362209887248205"
}
diff --git a/readme.md b/readme.md
index c286d6c7..fc624ebf 100644
--- a/readme.md
+++ b/readme.md
@@ -38,7 +38,15 @@ Apart from the Laravel dependencies, namely PHP >= 7.1.3, OpenSSL PHP Extension,
If you find you can't change the background make sure `php_fileinfo` is enabled in your php.ini. I believe it should be by default, but one user came across the issue on a windows system.
-Installation is as simple as cloning the repository somewhere, or downloading and extracting the zip/tar and pointing your httpd document root to the `/public` folder. For simple testing you could just go to the folder and type `php artisan serve`
+Installation is as simple as cloning the repository somewhere, or downloading and extracting the zip/tar and pointing your httpd document root to the `/public` folder then creating the .env file and generating an encryption key (this is all taken care of for you with the docker).
+
+```
+cd /path/to/heimdall
+cp .env.example .env
+php artisan key:generate
+```
+
+For simple testing you could just go to the folder and type `php artisan serve`
There is also a multi-arch Docker which supports x86-64, armhf and arm64, instructions on how to use them at
@@ -129,12 +137,11 @@ location / {
auth_basic "Restricted";
auth_basic_user_file /config/nginx/.htpasswd;
include /config/nginx/proxy.conf;
- proxy_pass https://heimdall:443;
+ proxy_set_header X-Forwarded-Proto https;
+ proxy_pass http://heimdall;
}
```
-If you are using HTTPS and things aren't working try adding `FORCE_HTTPS=true` to the end of your `.env` file or proxy to the https version of the app.
-
### Self-signed certificates and local CAs
Per default Heimdall uses the standard certificate bundle file (`ca-certificates.crt`) to verify HTTPS sites and will ignore additional certificates placed in `/etc/ssl/certs`. If you wish to use enhanced apps with HTTPS sites that use a self-signed certificate or certs signed with your own local CA, you can override the default bundle:
diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js
index a0b109fe..7331cba4 100644
--- a/resources/assets/js/app.js
+++ b/resources/assets/js/app.js
@@ -1,5 +1,7 @@
$.when( $.ready ).then(function() {
+ var base = (document.querySelector('base') || {}).href;
+
if($('.message-container').length) {
setTimeout(
function()
@@ -58,7 +60,7 @@ $.when( $.ready ).then(function() {
var timer = 5000;
var fun = function worker() {
$.ajax({
- url: '/get_stats/'+id,
+ url: base+'/get_stats/'+id,
dataType: 'json',
success: function(data) {
container.html(data.html);
@@ -118,7 +120,7 @@ $.when( $.ready ).then(function() {
attribute: 'data-id'
});
$.post(
- '/order',
+ base+'/order',
{ order:idsInOrder }
);
}
@@ -173,7 +175,7 @@ $.when( $.ready ).then(function() {
data[config] = $(this).val();
});
- $.post('/test_config', { data: data }, function(data) {
+ $.post(base+'/test_config', { data: data }, function(data) {
alert(data);
});
@@ -183,7 +185,7 @@ $.when( $.ready ).then(function() {
var current = $(this);
var id = current.data('id');
var tag = current.data('tag');
- $.get('/items/pintoggle/'+id+'/true/'+tag, function(data) {
+ $.get(base+'/items/pintoggle/'+id+'/true/'+tag, function(data) {
var inner = $(data).filter('#sortable').html();
$('#sortable').html(inner);
current.toggleClass('active');
diff --git a/resources/lang/da/app.php b/resources/lang/da/app.php
new file mode 100644
index 00000000..8e31072f
--- /dev/null
+++ b/resources/lang/da/app.php
@@ -0,0 +1,120 @@
+ 'System',
+ 'settings.appearance' => 'Appearance',
+ 'settings.miscellaneous' => 'Miscellaneous',
+ 'settings.support' => 'Support',
+ 'settings.donate' => 'Doner',
+
+ 'settings.version' => 'Version',
+ 'settings.background_image' => 'Baggrundsbillede',
+ 'settings.window_target' => 'Link opens in',
+ 'settings.window_target.current' => 'Åbn i denne fane',
+ 'settings.window_target.one' => 'Åbn i den samme fane',
+ 'settings.window_target.new' => 'Åbn i en ny fane',
+ 'settings.homepage_search' => 'Homepage Search',
+ 'settings.search_provider' => 'Standardsøgemaskine',
+ 'settings.language' => 'Sprog',
+ 'settings.reset' => 'Nulstil tilbage til standard',
+ 'settings.remove' => 'Fjern',
+ 'settings.search' => 'søg',
+ 'settings.no_items' => 'Intet fundet',
+
+
+ 'settings.label' => 'Etiket',
+ 'settings.value' => 'Værdi',
+ 'settings.edit' => 'Rediger',
+ 'settings.view' => 'Vis',
+
+ 'options.none' => '- ikke indstillet -',
+ 'options.google' => 'Google',
+ 'options.ddg' => 'DuckDuckGo',
+ 'options.bing' => 'Bing',
+ 'options.qwant' => 'Qwant',
+ 'options.startpage' => 'Startside',
+ 'options.yes' => 'Ja',
+ 'options.no' => 'Nej',
+ 'options.nzbhydra' => 'NZBHydra',
+ 'options.jackett' => 'Jackett',
+
+ 'buttons.save' => 'Gem',
+ 'buttons.cancel' => 'Afbryd',
+ 'buttons.add' => 'Tilføj',
+ 'buttons.upload' => 'Upload et ikon',
+ 'buttons.downloadapps' => 'Opdater apps-listen',
+
+ 'dash.pin_item' => 'Fastgør element til dashboard',
+ 'dash.no_apps' => 'Der er i øjeblikket ingen fastgjorte applikationer, :link1 eller :link2',
+ 'dash.link1' => 'Add an application here',
+ 'dash.link2' => 'Pin an item to the dash',
+ 'dash.pinned_items' => 'Fastgjorte elementer',
+
+ 'apps.app_list' => 'Applikations liste',
+ 'apps.view_trash' => 'View trash',
+ 'apps.add_application' => 'Tilføj applikation',
+ 'apps.application_name' => 'Applikations navn',
+ 'apps.colour' => 'Farver',
+ 'apps.icon' => 'Ikon',
+ 'apps.pinned' => 'Fastgjort',
+ 'apps.title' => 'Titel',
+ 'apps.hex' => 'Hex farver',
+ 'apps.username' => 'brugernavn',
+ 'apps.password' => 'kodeord',
+ 'apps.config' => 'Config',
+ 'apps.apikey' => 'API nøgle',
+ 'apps.enable' => 'Aktiver',
+ 'apps.tag_list' => 'Tags liste',
+ 'apps.add_tag' => 'Tilføj tag',
+ 'apps.tag_name' => 'Tag navn',
+ 'apps.tags' => 'Tags',
+ 'apps.override' => 'Hvis det er anderledes end hovedwebadressen',
+ 'apps.preview' => 'Eksempel',
+ 'apps.apptype' => 'Applikationstype',
+
+ 'dashboard' => 'Home dashboard',
+
+ 'user.user_list' => 'Brugere',
+ 'user.add_user' => 'Tilføj bruger',
+ 'user.username' => 'Brugernavn',
+ 'user.avatar' => 'Avatar',
+ 'user.email' => 'E-mail',
+ 'user.password_confirm' => 'Bekræft kodeord',
+ 'user.secure_front' => 'Tillad offentlig adgang til forsiden - Kun håndhævet, hvis der er angivet en adgangskode.',
+ 'user.autologin' => 'Tillad at logge ind fra en bestemt URL. Alle med linket kan logge ind.',
+
+ 'url' => 'URL',
+ 'title' => 'Title',
+ 'delete' => 'Slet',
+ 'optional' => 'Valgfri',
+ 'restore' => 'Genskab',
+
+ 'alert.success.item_created' => 'Item created successfully',
+ 'alert.success.item_updated' => 'Item updated successfully',
+ 'alert.success.item_deleted' => 'Item deleted successfully',
+ 'alert.success.item_restored' => 'Item restored successfully',
+ 'alert.success.updating' => 'Updating apps list',
+
+ 'alert.success.tag_created' => 'Tag oprettet med succes',
+ 'alert.success.tag_updated' => 'Tag opdateret med succes',
+ 'alert.success.tag_deleted' => 'Tag slettet med succes',
+ 'alert.success.tag_restored' => 'Tag genskabt med succes',
+
+ 'alert.success.setting_updated' => 'You have successfully edited this setting',
+ 'alert.error.not_exist' => 'Denne indstilling findes ikke.',
+
+ 'alert.success.user_created' => 'Bruger oprettet med succes',
+ 'alert.success.user_updated' => 'Bruger opdateret med succes',
+ 'alert.success.user_deleted' => 'Bruger slettet med succes',
+ 'alert.success.user_restored' => 'Bruger genskabt med succes',
+
+
+];
diff --git a/resources/lang/da/pagination.php b/resources/lang/da/pagination.php
new file mode 100644
index 00000000..f0fb56ae
--- /dev/null
+++ b/resources/lang/da/pagination.php
@@ -0,0 +1,19 @@
+ '« Tidligere',
+ 'next' => 'Næste »',
+
+];
diff --git a/resources/lang/da/passwords.php b/resources/lang/da/passwords.php
new file mode 100644
index 00000000..9303a558
--- /dev/null
+++ b/resources/lang/da/passwords.php
@@ -0,0 +1,22 @@
+ 'Adgangskoder skal bestå af mindst seks tegn og matche bekræftelsen.',
+ 'reset' => 'Din adgangskode er nulstillet!',
+ 'sent' => 'Vi har sendt dig en e-mail med et link til nulstilling af adgangskode!',
+ 'token' => 'Dit token er ikke gyldigt!',
+ 'user' => "Vi kan ikke finde en bruger med den e-mail-adresse.",
+
+];
diff --git a/resources/lang/el/app.php b/resources/lang/el/app.php
new file mode 100644
index 00000000..bb16f41a
--- /dev/null
+++ b/resources/lang/el/app.php
@@ -0,0 +1,120 @@
+ 'Σύστημα',
+ 'settings.appearance' => 'Εμφάνιση',
+ 'settings.miscellaneous' => 'Λοιπά',
+ 'settings.support' => 'Υποστήριξη',
+ 'settings.donate' => 'Δωρεά',
+
+ 'settings.version' => 'Έκδοση',
+ 'settings.background_image' => 'Εικόνα Παρασκηνίου',
+ 'settings.window_target' => 'Ο Σύνδεσμος ανοίγει σε',
+ 'settings.window_target.current' => 'Άνοιγμα σε αυτή την καρτέλα',
+ 'settings.window_target.one' => 'Άνοιγμα στην ίδια καρτέλα',
+ 'settings.window_target.new' => 'Άνοιγμα σε νέα καρτέλα',
+ 'settings.homepage_search' => 'Αναζήτηση στην Αρχική Σελίδα',
+ 'settings.search_provider' => 'Προεπιλεγμένος Πάροχος Αναζήτησης',
+ 'settings.language' => 'Γλώσσα',
+ 'settings.reset' => 'Επαναφορά πίσω στις προεπιλογές',
+ 'settings.remove' => 'Αφαίρεση',
+ 'settings.search' => 'αναζήτηση',
+ 'settings.no_items' => 'Δε βρεθηκαν αποτελέσματα',
+
+
+ 'settings.label' => 'Ετικέτα',
+ 'settings.value' => 'Τιμή',
+ 'settings.edit' => 'Επεξεργασία',
+ 'settings.view' => 'Προβολή',
+
+ 'options.none' => '- μη ορισμένο -',
+ 'options.google' => 'Google',
+ 'options.ddg' => 'DuckDuckGo',
+ 'options.bing' => 'Bing',
+ 'options.qwant' => 'Qwant',
+ 'options.startpage' => 'StartPage',
+ 'options.yes' => 'Ναι',
+ 'options.no' => 'Όχι',
+ 'options.nzbhydra' => 'NZBHydra',
+ 'options.jackett' => 'Jackett',
+
+ 'buttons.save' => 'Αποθήκευση',
+ 'buttons.cancel' => 'Ακύρωση',
+ 'buttons.add' => 'Προσθήκη',
+ 'buttons.upload' => 'Μεταφόρτωση ενός αρχείου',
+ 'buttons.downloadapps' => 'Ανανέωση Λίστας Εφαρμογών',
+
+ 'dash.pin_item' => 'Καρφίτσωμα του αντικειμένου στο ταμπλό',
+ 'dash.no_apps' => 'Δεν υπάρχουν προς το παρόν καρφιτσωμένες εφαρμογές, :link1 ή :link2',
+ 'dash.link1' => 'Προσθήκη μίας εφαρμογής εδώ',
+ 'dash.link2' => 'Καρφίτσωμα ενός αντικειμένου στο ταμπλό',
+ 'dash.pinned_items' => 'Καρφιτσωμένα αντικείμενα',
+
+ 'apps.app_list' => 'Λίστα Εφαρμογών',
+ 'apps.view_trash' => 'Εμφάνιση Απορριμμάτων',
+ 'apps.add_application' => 'Προσθήκη εφαρμογής',
+ 'apps.application_name' => 'Όνομα Εφαρμογής',
+ 'apps.colour' => 'Χρώμα',
+ 'apps.icon' => 'Εικονίδιο',
+ 'apps.pinned' => 'Καρφιτσωμένο',
+ 'apps.title' => 'Τίτλος',
+ 'apps.hex' => 'Hex χρώμα',
+ 'apps.username' => 'Όνομα χρήστη',
+ 'apps.password' => 'Κωδικός πρόσβασης',
+ 'apps.config' => 'Ρύθμιση',
+ 'apps.apikey' => 'Κλειδί API',
+ 'apps.enable' => 'Ενεργοποίηση',
+ 'apps.tag_list' => 'Λίστα Ετικετών',
+ 'apps.add_tag' => 'Προσθήκη ετικέτας',
+ 'apps.tag_name' => 'Όνομα Ετικέτας',
+ 'apps.tags' => 'Ετικέτες',
+ 'apps.override' => 'Αν διαφορετικό με το κύριο url',
+ 'apps.preview' => 'Προεπισκόπιση',
+ 'apps.apptype' => 'Τύπος Εφαρμογής',
+
+ 'dashboard' => 'Αρχικό ταμπλό',
+
+ 'user.user_list' => 'Χρήστες',
+ 'user.add_user' => 'Προσθήκη χρήστη',
+ 'user.username' => 'Όνομα χρήστη',
+ 'user.avatar' => 'Εικόνα χρήστη',
+ 'user.email' => 'Email',
+ 'user.password_confirm' => 'Επιβεβαίωση κωδικού πρόσβασης',
+ 'user.secure_front' => 'Χορήγηση δημόσιας πρόσβασης στο εμπρόσθιο τμήμα - Τίθεται σε ενέργεια μόνο εαν έχει ορισθεί κωδικός.',
+ 'user.autologin' => 'Χορήγηση πρόσβασης από ένα συγκεκριμένο URL. Οποιοσδήποτε με τον σύνδεσμο μπορεί να εισέρθει.',
+
+ 'url' => 'URL',
+ 'title' => 'Τίτλος',
+ 'delete' => 'Διαγραφή',
+ 'optional' => 'Προεραιτικό',
+ 'restore' => 'Επαναφορά',
+
+ 'alert.success.item_created' => 'Το αντικείμενο δημιουργήθηκε επιτυχώς',
+ 'alert.success.item_updated' => 'Το αντικείμενο ενημερώθηκε επιτυχώς',
+ 'alert.success.item_deleted' => 'Το αντικείμενο διαγράφηκε επιτυχώς',
+ 'alert.success.item_restored' => 'Το αντικείμενο επαναφέρθηκε επιτυχώς',
+ 'alert.success.updating' => 'Η λίστα των εφαρμογών ενημερώνεται',
+
+ 'alert.success.tag_created' => 'Η ετικέτα δημιουργήθηκε επιτυχώ',
+ 'alert.success.tag_updated' => 'Η ετικέτα ενημερώθηκε επιτυχώς',
+ 'alert.success.tag_deleted' => 'Η ετικέτα διαγράφηκε επιτυχώς',
+ 'alert.success.tag_restored' => 'Η ετικέτα επαναφέρθηκε επιτυχώς',
+
+ 'alert.success.setting_updated' => 'Επεξεργαστήκατε επιτυχώς αυτή τη ρύθμιση',
+ 'alert.error.not_exist' => 'Αυτή η ρύθμιση δεν υπάρχει.',
+
+ 'alert.success.user_created' => 'Ο χρήστης δημιουργήθηκε επιτυχώς',
+ 'alert.success.user_updated' => 'Ο χρήστης ενημερώθηκε επιτυχώς',
+ 'alert.success.user_deleted' => 'Ο χρήστης διαγράφηκε επιτυχώς',
+ 'alert.success.user_restored' => 'Ο χρήστης επαναφέρθηκε επιτυχώς',
+
+
+];
diff --git a/resources/lang/el/auth.php b/resources/lang/el/auth.php
new file mode 100644
index 00000000..7d8fe8b7
--- /dev/null
+++ b/resources/lang/el/auth.php
@@ -0,0 +1,19 @@
+ 'Αυτά τα διαπιστευτήρια δεν ταιριάζουν με τα μητρώα μας.',
+ 'throttle' => 'Πολλές προσπάθειες εισόδου. Παρακαλούμε προσπαθήστε ξανά σε :seconds δευτερόλεπτα.',
+
+];
diff --git a/resources/lang/el/pagination.php b/resources/lang/el/pagination.php
new file mode 100644
index 00000000..afe01985
--- /dev/null
+++ b/resources/lang/el/pagination.php
@@ -0,0 +1,19 @@
+ '« Προηγούμενη',
+ 'next' => 'Επόμενη »',
+
+];
diff --git a/resources/lang/el/passwords.php b/resources/lang/el/passwords.php
new file mode 100644
index 00000000..4ecdc14a
--- /dev/null
+++ b/resources/lang/el/passwords.php
@@ -0,0 +1,22 @@
+ 'Οι κωδικοί πρόσβασης πρέπει να αποτελλούνται τουλάχιστον από έξι χαρακτήρες και να ταιριάζουν με την επικύρωση.',
+ 'reset' => 'Έχει γίνει επαναφορά του κωδικού σας!',
+ 'sent' => 'Σας στείλαμε ένα Ε-mail με τον σύνδεσμο για την επαναφορά του κωδικού πρόσβασής σας!',
+ 'token' => 'Αυτό το token για την επαναφορά του κωδικού πρόσβασής σας είναι άκυρο.',
+ 'user' => "Δεν μπορούμε να βρόυμε κάποιον χρήστη με αυτή τη διεύθυνση E-mail.",
+
+];
diff --git a/resources/lang/el/validation.php b/resources/lang/el/validation.php
new file mode 100644
index 00000000..c815c37e
--- /dev/null
+++ b/resources/lang/el/validation.php
@@ -0,0 +1,121 @@
+ 'Το πεδίο :attribute πρέπει να έχει γίνει αποδεκτό.',
+ 'active_url' => 'Το πεδίο :attribute δέν είναι μία έγκυρη διεύθυνση URL.',
+ 'after' => 'Το πεδίο :attribute πρέπει να είναι μία ημερομηνία μετά από :date.',
+ 'after_or_equal' => 'Το πεδίο :attribute πρέπει να είναι μία ημερομηνία μετά από :date ή ίδια με :date.',
+ 'alpha' => 'Το πεδίο :attribute μπορεί να περιέχει μόνο γράμματαμπορεί να περιέχει μόνο γράμματα.',
+ 'alpha_dash' => 'Το πεδίο :attribute μπορεί να περιέχει μόνο γράμματα, αριθμούς, και παύλες.',
+ 'alpha_num' => 'Το πεδίο :attribute μπορεί να περιέχει μόνο γράμματα και αριθμούς.',
+ 'array' => 'Το πεδίο :attribute πρέπει να είναι ένας πίνακας.',
+ 'before' => 'Το πεδίο :attribute πρέπει να είναι μία ημερομηνία πρίν από :date.',
+ 'before_or_equal' => 'Το πεδίο :attribute πρέπει να είναι μία ημερομηνία πρίν από :date ή ίση με :date.',
+ 'between' => [
+ 'numeric' => 'Το πεδίο :attribute πρέπει να είναι μεταξύ από :min και :max.',
+ 'file' => 'Το πεδίο :attribute πρέπει να είναι μεταξύ από :min και :max kilobytes.',
+ 'string' => 'Το πεδίο :attribute πρέπει να είναι μεταξύ από :min και :max characters.',
+ 'array' => 'Το πεδίο :attribute πρέπει να έχει μεταξύ :min και :max αντικείμενα.',
+ ],
+ 'boolean' => 'Το πεδίο :attribute πρέπει να είναι αληθές ή ψευδές.',
+ 'confirmed' => 'Η επικύρωση του πεδίου :attribute δεν ταιριάζει.',
+ 'date' => 'Το πεδίο :attribute δεν είναι μία έγκυρη ημερομηνία.',
+ 'date_format' => 'Το πεδίο :attribute δεν ταιριάζει με τη μορφή :format.',
+ 'different' => 'Τα πεδία :attribute και :other πρέπει να είναι διαφορετικά.',
+ 'digits' => 'Το πεδίο :attribute πρέπει να είναι :digits ψηφία.',
+ 'digits_between' => 'Το πεδίο :attribute πρέπει να είναι μεταξύ από :min και :max ψηφία.',
+ 'dimensions' => 'Το πεδίο :attribute δεν έχει έγκυρες διαστάσεις εικόνας.',
+ 'distinct' => 'Το πεδίο :attribute έχει μία διπλότυπη τιμή.',
+ 'email' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη διεύθυνση E-mail.',
+ 'exists' => 'Το επιλεγμένο πεδίο :attribute είναι άκυρο.',
+ 'file' => 'Το πεδίο :attribute πρέπει να έιναι ένα αρχείο.',
+ 'filled' => 'Το πεδίο :attribute πρέπει να έχει μία τιμή.',
+ 'image' => 'Το πεδίο :attribute πρέπει να είναι μία εικόνα.',
+ 'in' => 'Το πεδίο selected :attribute είναι άκυρο.',
+ 'in_array' => 'Το πεδίο :attribute δεν υπάρχει στο :other.',
+ 'integer' => 'Το πεδίο :attribute πρέπει να είναι ένας ακέραιος αριθμός.',
+ 'ip' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη διεύθυνση IP.',
+ 'ipv4' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη διεύθυνση IPv4.',
+ 'ipv6' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη διεύθυνση IPv6.',
+ 'json' => 'Το πεδίο :attribute πρέπει να είναι ένα έγκυρο JSON string.',
+ 'max' => [
+ 'numeric' => 'Το πεδίο :attribute δεν γίνεται να είναι μεγαλύτερο από :max.',
+ 'file' => 'Το πεδίο :attribute δεν γίνεται να είναι μεγαλύτερο από :max kilobytes.',
+ 'string' => 'Το πεδίο :attribute δεν γίνεται να είναι μεγαλύτερο από :max χαρακτήρες.',
+ 'array' => 'Το πεδίο :attribute δεν γίνεται να έχει περισσότερα από :max αντικείμενα.',
+ ],
+ 'mimes' => 'Το πεδίο :attribute πρέπει να είναι ένα αρχείου τύπου: :values.',
+ 'mimetypes' => 'Το πεδίο :attribute πρέπει να είναι ένα αρχείου τύπου: :values.',
+ 'min' => [
+ 'numeric' => 'Το πεδίο :attribute πρέπει να είναι τουλάχιστον :min.',
+ 'file' => 'Το πεδίο :attribute πρέπει να είναι τουλάχιστον :min kilobytes.',
+ 'string' => 'Το πεδίο :attribute πρέπει να είναι τουλάχιστον :min χαρακτήρες.',
+ 'array' => 'Το πεδίο :attribute πρέπει να έχει τουλάχιστον :min αντικείμενα.',
+ ],
+ 'not_in' => 'Το επιλεγμένο πεδίο :attribute είναι άκυρο.',
+ 'numeric' => 'Το πεδίο :attribute πρέπει να ένας αριθμός.',
+ 'present' => 'Το πεδίο :attribute πρέπει να είναι παρόν.',
+ 'regex' => 'Η μορφή του πεδίου :attribute είναι άκυρη.',
+ 'required' => 'Το πεδίο :attribute είναι απαιτούμενο.',
+ 'required_if' => 'Το πεδίο :attribute είναι απαιτούμενο εάν :other είναι :value.',
+ 'required_unless' => 'Το πεδίο :attribute είναι απαιτούμενο εκτός αν :other βρίσκεται στις τιμές :values.',
+ 'required_with' => 'Το πεδίο :attribute είναι απαιτούμενο εάν οι τιμές :values είναι παρούσες.',
+ 'required_with_all' => 'Το πεδίο :attribute είναι απαιτούμενο εάν οι τιμές :values είναι παρούσες.',
+ 'required_without' => 'Το πεδίο :attribute είναι απαιτούμενο εάν οι τιμές :values δεν είναι παρούσες.',
+ 'required_without_all' => 'Το πεδίο :attribute είναι απαιτούμενο εάν καμία από τις τιμές :values δεν είναι παρούσες.',
+ 'same' => 'Το πεδίο :attribute και :other πρέπει να είναι ίδια.',
+ 'size' => [
+ 'numeric' => 'Το πεδίο :attribute πρέπει να είναι :size.',
+ 'file' => 'Το πεδίο :attribute πρέπει να είναι :size kilobytes.',
+ 'string' => 'Το πεδίο :attribute πρέπει να είναι :size χαρακτήρες.',
+ 'array' => 'Το πεδίο :attribute πρέπει να περιέχει :size αντικείμενα.',
+ ],
+ 'string' => 'Το πεδίο :attribute πρέπει να είναι ένα string.',
+ 'timezone' => 'Το πεδίο :attribute πρέπει να είναι μία έγκυρη ζώνη ώρας.',
+ 'unique' => 'Το πεδίο :attribute έχει ήδη χρησιμοποιηθεί.',
+ 'uploaded' => 'Το πεδίο :attribute απέτυχε να μεταφορτωθεί.',
+ 'url' => 'Η μορφή του πεδίου :attribute είναι άκυρη.',
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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' => [],
+
+];
diff --git a/resources/lang/en/app.php b/resources/lang/en/app.php
index 61e95454..61296da5 100644
--- a/resources/lang/en/app.php
+++ b/resources/lang/en/app.php
@@ -44,11 +44,12 @@ return [
'options.yes' => 'Yes',
'options.no' => 'No',
'options.nzbhydra' => 'NZBHydra',
+ 'options.jackett' => 'Jackett',
'buttons.save' => 'Save',
'buttons.cancel' => 'Cancel',
'buttons.add' => 'Add',
- 'buttons.upload' => 'Upload a file',
+ 'buttons.upload' => 'Upload an icon',
'buttons.downloadapps' => 'Update Apps List',
'dash.pin_item' => 'Pin item to dashboard',
diff --git a/resources/lang/es/app.php b/resources/lang/es/app.php
index 2be3bffc..e585d7b0 100644
--- a/resources/lang/es/app.php
+++ b/resources/lang/es/app.php
@@ -22,6 +22,7 @@ return array (
'options.ddg' => 'DuckDuckGo',
'options.bing' => 'Bing',
'options.qwant' => 'Qwant',
+ 'options.jackett' => 'Jackett',
'options.yes' => 'Sí',
'options.no' => 'No',
'buttons.save' => 'Guardar',
@@ -29,19 +30,19 @@ return array (
'buttons.add' => 'Añadir',
'buttons.upload' => 'Cargar un archivo',
'dash.pin_item' => 'Pin elemento al tablero',
- 'dash.no_apps' => 'Actualmente no hay anclados aplicaciones :link1 o :link2',
+ '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.pinned_items' => 'Elementos Anclados',
'apps.app_list' => 'Lista de aplicaciones',
- 'apps.view_trash' => 'Vista de la basura',
+ '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.title' => 'Título',
- 'apps.hex' => 'Hexagonal de color',
+ 'apps.hex' => 'Código de color hexadecimal',
'apps.username' => 'Nombre de usuario',
'apps.password' => 'Contraseña',
'apps.config' => 'Config',
@@ -56,4 +57,4 @@ return array (
'alert.success.item_restored' => 'Elemento restaurado con éxito',
'alert.success.setting_updated' => 'Ha editado con éxito esta configuración',
'alert.error.not_exist' => 'Esta configuración no existe.',
-);
\ No newline at end of file
+);
diff --git a/resources/lang/fi/app.php b/resources/lang/fi/app.php
index c2020edd..d77fdb0e 100644
--- a/resources/lang/fi/app.php
+++ b/resources/lang/fi/app.php
@@ -74,7 +74,7 @@ return array (
'apps.preview' => 'Esikatsele',
- 'user.user_list' => 'KÄyttäjät',
+ 'user.user_list' => 'Käyttäjät',
'user.add_user' => 'Lisää käyttäjä',
'user.username' => 'Käyttäjänimi',
'user.avatar' => 'Avatar',
diff --git a/resources/lang/it/app.php b/resources/lang/it/app.php
index 3ff138e3..4a48d324 100644
--- a/resources/lang/it/app.php
+++ b/resources/lang/it/app.php
@@ -1,20 +1,23 @@
'Sistema',
'settings.appearance' => 'Aspetto',
- 'settings.miscellaneous' => 'Miscellaneous',
-
+ 'settings.miscellaneous' => 'Altre impostazioni',
+ 'settings.support' => 'Supporto',
+ 'settings.donate' => 'Dona',
+
'settings.version' => 'Versione',
'settings.background_image' => 'Immagine di sfondo',
+ 'settings.window_target' => 'Apri link in',
+ 'settings.window_target.current' => 'Apri in questa scheda',
+ 'settings.window_target.one' => 'Apri nella stessa scheda',
+ 'settings.window_target.new' => 'Apri in una nuova scheda',
'settings.homepage_search' => 'Ricerca in homepage',
'settings.search_provider' => 'Motore di ricerca',
'settings.language' => 'Lingua',
@@ -23,33 +26,35 @@ return [
'settings.search' => 'Cerca',
'settings.no_items' => 'Nessun elemento trovato',
-
- 'settings.label' => 'Etichetta',
+ 'settings.label' => 'Nome',
'settings.value' => 'Valore',
'settings.edit' => 'Modifica',
- 'settings.view' => 'Vista',
-
+ 'settings.view' => 'Mostra',
+
'options.none' => '- non impostato -',
'options.google' => 'Google',
'options.ddg' => 'DuckDuckGo',
'options.bing' => 'Bing',
'options.qwant' => 'Qwant',
- 'options.yes' => 'Si',
+ 'options.startpage' => 'StartPage',
+ 'options.yes' => 'Sì',
'options.no' => 'No',
-
+ 'options.nzbhydra' => 'NZBHydra',
+
'buttons.save' => 'Salva',
'buttons.cancel' => 'Annulla',
'buttons.add' => 'Aggiungi',
- 'buttons.upload' => 'Aggiungi un file',
-
+ 'buttons.upload' => 'Carica un file',
+ 'buttons.downloadapps' => 'Aggiorna lista app',
+
'dash.pin_item' => 'Fissa un elemento sulla dashboard',
'dash.no_apps' => 'Non ci sono applicazioni fissate, :link1 o :link2',
'dash.link1' => 'Aggiungi un\'applicazione qui',
'dash.link2' => 'Fissa un elemento alla dashboard',
'dash.pinned_items' => 'Elementi fissati',
-
- 'apps.app_list' => 'Lista delle applicazioni',
- 'apps.view_trash' => 'Guarda il cestino',
+
+ 'apps.app_list' => 'Lista applicazioni',
+ 'apps.view_trash' => 'Mostra cestino',
'apps.add_application' => 'Aggiungi applicazione',
'apps.application_name' => 'Nome dell\'applicazione',
'apps.colour' => 'Colore',
@@ -60,22 +65,49 @@ return [
'apps.username' => 'Nome utente',
'apps.password' => 'Password',
'apps.config' => 'Configurazione',
- 'apps.apikey' => 'Api Key',
+ 'apps.apikey' => 'Chiave API',
'apps.enable' => 'Abilitato',
-
+ 'apps.tag_list' => 'Lista tag',
+ 'apps.add_tag' => 'Aggiungi tag',
+ 'apps.tag_name' => 'Nome tag',
+ 'apps.tags' => 'Tag',
+ 'apps.override' => 'Se diverso dall\'url principale',
+ 'apps.preview' => 'Anteprima',
+ 'apps.apptype' => 'Tipo di applicazione',
+
+ 'dashboard' => 'Home dashboard',
+
+ 'user.user_list' => 'Utenti',
+ 'user.add_user' => 'Aggiungi utente',
+ 'user.username' => 'Username',
+ 'user.avatar' => 'Logo',
+ 'user.email' => 'Email',
+ 'user.password_confirm' => 'Conferma password',
+ 'user.secure_front' => 'Permetti accesso pubblico alla pagina principale - Vale solo se una password è stata definita.',
+ 'user.autologin' => 'Abilita login da una URL specifica. Chiunque con questa URL può accedere.',
+
'url' => 'Url',
'title' => 'Titolo',
'delete' => 'Elimina',
'optional' => 'Opzionale',
- 'restore' => 'Ripristina',
-
+ 'restore' => 'Ripristina',
+
'alert.success.item_created' => 'Elemento creato con successo',
'alert.success.item_updated' => 'Elemento aggiornato con successo',
'alert.success.item_deleted' => 'Elemento cancellato con successo',
'alert.success.item_restored' => 'Elemento ripristinato con successo',
-
- 'alert.success.setting_updated' => 'Hai modificato questi settaggi',
- 'alert.error.not_exist' => 'Questi settaggi non esistono.',
-
-
-];
+ 'alert.success.updating' => 'Aggiornamento lista app',
+
+ 'alert.success.tag_created' => 'Tag creato con successo',
+ 'alert.success.tag_updated' => 'Tag aggiornato con successo',
+ 'alert.success.tag_deleted' => 'Tag eliminato con successo',
+ 'alert.success.tag_restored' => 'Tag ripristinato con successo',
+
+ 'alert.success.setting_updated' => 'Hai modificato questa impostazione con successo',
+ 'alert.error.not_exist' => 'Questa impostazione non esiste.',
+
+ 'alert.success.user_created' => 'Utente creato con successo',
+ 'alert.success.user_updated' => 'Utente aggiornato con successo',
+ 'alert.success.user_deleted' => 'Utente eliminato con successo',
+ 'alert.success.user_restored' => 'Utente ripristinato con successo',
+];
diff --git a/resources/lang/it/auth.php b/resources/lang/it/auth.php
new file mode 100644
index 00000000..ae5a62e9
--- /dev/null
+++ b/resources/lang/it/auth.php
@@ -0,0 +1,15 @@
+ 'Le credenziali non sono valide.',
+ 'throttle' => 'Troppi tentativi di accesso. Riprovare in :seconds secondi.',
+];
diff --git a/resources/lang/it/pagination.php b/resources/lang/it/pagination.php
new file mode 100644
index 00000000..3da1b306
--- /dev/null
+++ b/resources/lang/it/pagination.php
@@ -0,0 +1,15 @@
+ '« Precedente',
+ 'next' => 'Successivo »',
+];
diff --git a/resources/lang/sl/app.php b/resources/lang/sl/app.php
new file mode 100644
index 00000000..046d4dee
--- /dev/null
+++ b/resources/lang/sl/app.php
@@ -0,0 +1,120 @@
+ 'Sistem',
+ 'settings.appearance' => 'Videz',
+ 'settings.miscellaneous' => 'Ostalo',
+ 'settings.support' => 'Podpora',
+ 'settings.donate' => 'Doniraj',
+
+ 'settings.version' => 'Verzija',
+ 'settings.background_image' => 'Slika za ozadje',
+ 'settings.window_target' => 'Povezava se odpre v',
+ 'settings.window_target.current' => 'Odpri v tem zavihku',
+ 'settings.window_target.one' => 'Odpri v istem zavihku',
+ 'settings.window_target.new' => 'Odpri v novem zavihku',
+ 'settings.homepage_search' => 'Iskanje po domači strani',
+ 'settings.search_provider' => 'Privzeti ponudnik iskanja',
+ 'settings.language' => 'Jezik',
+ 'settings.reset' => 'Ponastavi na privzeto',
+ 'settings.remove' => 'Odstrani',
+ 'settings.search' => 'išči',
+ 'settings.no_items' => 'Ni najdenih elementov',
+
+
+ 'settings.label' => 'Oznaka',
+ 'settings.value' => 'Vrednost',
+ 'settings.edit' => 'Uredi',
+ 'settings.view' => 'Poglej',
+
+ 'options.none' => '- ni nastavljeno -',
+ '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' => 'Shrani',
+ 'buttons.cancel' => 'Prekliči',
+ 'buttons.add' => 'Dodaj',
+ 'buttons.upload' => 'Naloži ikono',
+ 'buttons.downloadapps' => 'Posodobi Seznam Aplikacij',
+
+ 'dash.pin_item' => 'Pripni element na nadzorno ploščo',
+ 'dash.no_apps' => 'Trenutno ni pripetih aplikacij, :link1 ali :link2',
+ 'dash.link1' => 'Dodaj aplikacijo tukaj',
+ 'dash.link2' => 'Pripni aplikacijo na nadzorno ploščo',
+ 'dash.pinned_items' => 'Pripeti elementi',
+
+ 'apps.app_list' => 'Seznam aplikacij',
+ 'apps.view_trash' => 'Poglej smeti',
+ 'apps.add_application' => 'Dodaj aplikacijo',
+ 'apps.application_name' => 'Ime aplikacije',
+ 'apps.colour' => 'Barva',
+ 'apps.icon' => 'Ikona',
+ 'apps.pinned' => 'Pripeto',
+ 'apps.title' => 'Naslov',
+ 'apps.hex' => 'Hex barva',
+ 'apps.username' => 'Uporabniško ime',
+ 'apps.password' => 'Geslo',
+ 'apps.config' => 'Konfiguracija',
+ 'apps.apikey' => 'API Ključ',
+ 'apps.enable' => 'Omogoči',
+ 'apps.tag_list' => 'Seznam oznak',
+ 'apps.add_tag' => 'Dodaj oznako',
+ 'apps.tag_name' => 'Ime oznake',
+ 'apps.tags' => 'Oznake',
+ 'apps.override' => 'Če je drugače od glavnega url-ja',
+ 'apps.preview' => 'Predogled',
+ 'apps.apptype' => 'Tip aplikacije',
+
+ 'dashboard' => 'Home dashboard',
+
+ 'user.user_list' => 'Uporabniki',
+ 'user.add_user' => 'Dodaj uporabnika',
+ 'user.username' => 'Uporabniško ime',
+ 'user.avatar' => 'Avatar',
+ 'user.email' => 'Email',
+ 'user.password_confirm' => 'Potrdi geslo',
+ 'user.secure_front' => 'Dovoli javni dostop do strani - Samo če je nastavljeno geslo.',
+ 'user.autologin' => 'Dovoli prijavo iz specifičnega URL-ja. Vsi s povezavo se lahko prijavijo.',
+
+ 'url' => 'URL',
+ 'title' => 'Naslov',
+ 'delete' => 'Izbriši',
+ 'optional' => 'Opcijsko',
+ 'restore' => 'Obnovi',
+
+ 'alert.success.item_created' => 'Element uspešno ustvarjen',
+ 'alert.success.item_updated' => 'Element uspešno posodobljen',
+ 'alert.success.item_deleted' => 'Element uspešno izbrisan',
+ 'alert.success.item_restored' => 'Element uspešno obnovljen',
+ 'alert.success.updating' => 'Posodabljam seznam aplikacij',
+
+ 'alert.success.tag_created' => 'Oznaka uspešno ustvarjena',
+ 'alert.success.tag_updated' => 'Oznaka uspešno posodobljena',
+ 'alert.success.tag_deleted' => 'Oznaka uspešno izbrisana',
+ 'alert.success.tag_restored' => 'Oznaka uspešno obnovljena',
+
+ 'alert.success.setting_updated' => 'Uspešno uredil to oznako',
+ 'alert.error.not_exist' => 'Ta nastavitev ne obstaja.',
+
+ 'alert.success.user_created' => 'Uporabnik uspešno ustvarjen',
+ 'alert.success.user_updated' => 'Uporabnik uspešno posodobljen',
+ 'alert.success.user_deleted' => 'Uporabnik uspešno izbrisan',
+ 'alert.success.user_restored' => 'Uporabnik uspešno obnovljen',
+
+
+];
diff --git a/resources/lang/sl/auth.php b/resources/lang/sl/auth.php
new file mode 100644
index 00000000..cd2a3839
--- /dev/null
+++ b/resources/lang/sl/auth.php
@@ -0,0 +1,19 @@
+ 'Podatki za prijavo se ne ujemajo.',
+ 'throttle' => 'Preveč poizkusov prijave. Ponovno poizkusi čez :seconds sekund.',
+
+];
diff --git a/resources/lang/sl/pagination.php b/resources/lang/sl/pagination.php
new file mode 100644
index 00000000..e913ad75
--- /dev/null
+++ b/resources/lang/sl/pagination.php
@@ -0,0 +1,19 @@
+ '« Prejšna',
+ 'next' => 'Naslednja »',
+
+];
diff --git a/resources/lang/sl/passwords.php b/resources/lang/sl/passwords.php
new file mode 100644
index 00000000..13d234da
--- /dev/null
+++ b/resources/lang/sl/passwords.php
@@ -0,0 +1,22 @@
+ 'Geslo mora imeti najmanj šest znakov in se mora ujemati s potrditvijo.',
+ 'reset' => 'Tvoje geslo je bilo ponastavljeno!',
+ 'sent' => 'Na tvoj email smo poslali povezavo za ponastavitev gesla!',
+ 'token' => 'Ta ključ za ponastavitev gesla ni veljaven.',
+ 'user' => "Ne najdemo uporabnika s tem e-naslovom.",
+
+];
diff --git a/resources/lang/sl/validation.php b/resources/lang/sl/validation.php
new file mode 100644
index 00000000..089ae40d
--- /dev/null
+++ b/resources/lang/sl/validation.php
@@ -0,0 +1,121 @@
+ ':attribute mora biti potrjen.',
+ 'active_url' => ':attribute ni pravilen URL naslov.',
+ 'after' => ':attribute mora biti datum po :date.',
+ 'after_or_equal' => ':attribute mora biti datum po ali enak :date.',
+ 'alpha' => ':attribute lahko vsebuje samo črke.',
+ 'alpha_dash' => ':attribute lahko vsebuje samo črke, številke in pomišljaje.',
+ 'alpha_num' => ':attribute lahko vsebuje samo črke in številke.',
+ 'array' => ':attribute mora biti niz podatkov.',
+ 'before' => ':attribute mora biti datum pred :date.',
+ 'before_or_equal' => ':attribute mora biti datum pred ali enak :date.',
+ 'between' => [
+ 'numeric' => ':attribute mora biti med :min in :max.',
+ 'file' => ':attribute mora biti med :min in :max kilobajtov.',
+ 'string' => ':attribute mora biti med :min in :max znakov.',
+ 'array' => ':attribute mora biti med :min in :max elementov.',
+ ],
+ 'boolean' => ':attribute polje mora biti true ali false.',
+ 'confirmed' => ':attribute potrditev se ne ujema.',
+ 'date' => ':attribute ni pravilen datum.',
+ 'date_format' => ':attribute se ne ujema s formatom :format.',
+ 'different' => ':attribute in :other morata biti različna.',
+ 'digits' => ':attribute mora imeti :digits mest.',
+ 'digits_between' => ':attribute mora biti med :in and :max mest.',
+ 'dimensions' => ':attribute ima nepravilne dimenzije slike.',
+ 'distinct' => ':attribute polje ima podvojeno vrednost.',
+ 'email' => ':attribute mora biti pravilen e-naslov.',
+ 'exists' => 'izbrani :attribute ni pravilen.',
+ 'file' => ':attribute mora biti datoteka.',
+ 'filled' => ':attribute polje mora imeti vrednost.',
+ 'image' => ':attribute mora biti slika.',
+ 'in' => 'izbrani :attribute ni pravilen.',
+ 'in_array' => ':attribute polje ne obstaja v :other.',
+ 'integer' => ':attribute mora biti številka.',
+ 'ip' => ':attribute mora biti veljaven IP naslov.',
+ 'ipv4' => ':attribute must be a valid IPv4 naslov.',
+ 'ipv6' => ':attribute must be a valid IPv6 naslov.',
+ 'json' => ':attribute mora biti veljaven JSON.',
+ 'max' => [
+ 'numeric' => ':attribute ne sme biti več kot :max.',
+ 'file' => ':attribute ne sme biti več kot :max kilobajtov.',
+ 'string' => ':attribute ne sme biti več kot :max znakov.',
+ 'array' => ':attribute ne sme imeti več kot :max elementov.',
+ ],
+ 'mimes' => ':attribute mora biti datoteka tipa: :values.',
+ 'mimetypes' => ':attribute mora biti datoteka tipa: :values.',
+ 'min' => [
+ 'numeric' => ':attribute mora biti najmanj :min.',
+ 'file' => ':attribute mora biti najmanj :min kilobajtov.',
+ 'string' => ':attribute mora imeti najmanj :min znakov.',
+ 'array' => ':attribute mora imeti najmanj :min elementov.',
+ ],
+ 'not_in' => 'izbrani :attribute ni pravilen.',
+ 'numeric' => ':attribute mora biti številka.',
+ 'present' => ':attribute polje mora biti prisotno.',
+ 'regex' => ':attribute format ni veljaven.',
+ 'required' => ':attribute polje je obvezno.',
+ 'required_if' => ':attribute polje je obvezno, če :other je :value.',
+ 'required_unless' => ':attribute polje je obvezno, razen če :other je v :values.',
+ 'required_with' => ':attribute polje je obvezno, če :values je prisotno.',
+ 'required_with_all' => ':attribute polje je obvezno, če :values je prisotno.',
+ 'required_without' => ':attribute polje je obvezno, ko :values ni prisotno.',
+ 'required_without_all' => ':attribute polje je obvezno, ko nobeden od :values ni prisotnih.',
+ 'same' => ':attribute in :other se morata ujemati.',
+ 'size' => [
+ 'numeric' => ':attribute mora biti :size.',
+ 'file' => ':attribute mora biti :size kilobajtov.',
+ 'string' => ':attribute mora imeti :size znakov.',
+ 'array' => ':attribute mora imeti :size elementov.',
+ ],
+ 'string' => ':attribute mora biti niz.',
+ 'timezone' => ':attribute mora biti veljavno časovna cona.',
+ 'unique' => ':attribute je že zasedeno.',
+ 'uploaded' => ':attribute nalaganje neuspešno.',
+ 'url' => ':attribute format ni pravilen.',
+
+ /*
+ |--------------------------------------------------------------------------
+ | 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' => [],
+
+];
diff --git a/resources/views/item.blade.php b/resources/views/item.blade.php
index c6b21582..738dbe96 100644
--- a/resources/views/item.blade.php
+++ b/resources/views/item.blade.php
@@ -13,6 +13,6 @@
link_target !!} href="{{ $app->link }}">
-
+
diff --git a/resources/views/items/form.blade.php b/resources/views/items/form.blade.php
index be2656bb..5e1cdc74 100644
--- a/resources/views/items/form.blade.php
+++ b/resources/views/items/form.blade.php
@@ -16,7 +16,7 @@
- {{ __('app.buttons.cancel') }}
+ {{ __('app.buttons.cancel') }}
@@ -56,7 +56,7 @@
 }})
{!! Form::hidden('icon', $icon, ['class' => 'form-control']) !!}
@else
-

+
 }})
@endif
@@ -105,7 +105,7 @@
diff --git a/resources/views/items/list.blade.php b/resources/views/items/list.blade.php
index fd76029a..f72e46f5 100644
--- a/resources/views/items/list.blade.php
+++ b/resources/views/items/list.blade.php
@@ -6,14 +6,14 @@
@@ -32,7 +32,7 @@
{{ $app->title }} |
{{ $app->link }} |
- target }} href="{!! route('items.edit', [$app->id], false) !!}" title="{{ __('app.settings.edit') }} {!! $app->title !!}"> |
+ target }} href="{!! route('items.edit', [$app->id]) !!}" title="{{ __('app.settings.edit') }} {!! $app->title !!}"> |
{!! Form::open(['method' => 'DELETE','route' => ['items.destroy', $app->id],'style'=>'display:inline']) !!}
diff --git a/resources/views/items/preview.blade.php b/resources/views/items/preview.blade.php
index 8ba1cfa3..0a3dc8cb 100644
--- a/resources/views/items/preview.blade.php
+++ b/resources/views/items/preview.blade.php
@@ -16,6 +16,6 @@
link_target !!} href="{{ $item->link }}">
-
+
diff --git a/resources/views/items/scripts.blade.php b/resources/views/items/scripts.blade.php
index 6ab3a223..577ab77a 100644
--- a/resources/views/items/scripts.blade.php
+++ b/resources/views/items/scripts.blade.php
@@ -2,6 +2,8 @@
+ @if(config('app.url') !== 'http://localhost')
+
+ @else
+
+ @endif
@@ -40,7 +45,7 @@
pinned === true) ? 'active' : '';
?>
- {{ $app->title }}
+ {{ $app->title }}
@endforeach
@@ -49,8 +54,8 @@
@@ -91,13 +96,13 @@
@endif
-
+
@if($current_user->id === 1)
-
+
@endif
-
-
-
+
+
+
diff --git a/resources/views/settings/form.blade.php b/resources/views/settings/form.blade.php
index c3f58108..1ffacce1 100644
--- a/resources/views/settings/form.blade.php
+++ b/resources/views/settings/form.blade.php
@@ -3,7 +3,7 @@
{{ __($setting->label) }}
@@ -23,7 +23,7 @@
diff --git a/resources/views/settings/list.blade.php b/resources/views/settings/list.blade.php
index 81ce2432..40561cfa 100644
--- a/resources/views/settings/list.blade.php
+++ b/resources/views/settings/list.blade.php
@@ -29,7 +29,7 @@
|
@if((bool)$setting->system !== true)
-
+
@endif
|
diff --git a/resources/views/tags/form.blade.php b/resources/views/tags/form.blade.php
index 41f3346e..90d2ed76 100644
--- a/resources/views/tags/form.blade.php
+++ b/resources/views/tags/form.blade.php
@@ -3,7 +3,7 @@
{{ __('app.apps.add_tag') }}
@@ -59,7 +59,7 @@
diff --git a/resources/views/tags/list.blade.php b/resources/views/tags/list.blade.php
index 15b99098..c6cf37f0 100644
--- a/resources/views/tags/list.blade.php
+++ b/resources/views/tags/list.blade.php
@@ -6,13 +6,13 @@
@@ -31,7 +31,7 @@
{{ $app->title }} |
target }} href="/tag/{{ $app->url }}">{{ $app->link }} |
- |
+ |
{!! Form::open(['method' => 'DELETE','route' => ['tags.destroy', $app->id],'style'=>'display:inline']) !!}
diff --git a/resources/views/tags/trash.blade.php b/resources/views/tags/trash.blade.php
index 85c834c0..2ea48120 100644
--- a/resources/views/tags/trash.blade.php
+++ b/resources/views/tags/trash.blade.php
@@ -7,7 +7,7 @@
Showing Deleted Applications
@@ -26,7 +26,7 @@
|
{{ $app->title }} |
{{ __('app.url') }} |
- |
+ |
{!! Form::open(['method' => 'DELETE','route' => ['tags.destroy', $app->id],'style'=>'display:inline']) !!}
diff --git a/resources/views/users/form.blade.php b/resources/views/users/form.blade.php
index f7b1d4b0..45f3f866 100644
--- a/resources/views/users/form.blade.php
+++ b/resources/views/users/form.blade.php
@@ -3,7 +3,7 @@
{{ __('app.user.add_user') }}
@@ -88,7 +88,7 @@
diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php
index 3384a023..ce4887f2 100644
--- a/resources/views/users/index.blade.php
+++ b/resources/views/users/index.blade.php
@@ -6,13 +6,13 @@
@@ -39,7 +39,7 @@
{{ route('user.autologin', $user->autologin) }}
@endif
|
- target }} href="{!! route('users.edit', [$user->id], false) !!}" title="{{ __('user.settings.edit') }} {!! $user->title !!}"> |
+ target }} href="{!! route('users.edit', [$user->id]) !!}" title="{{ __('user.settings.edit') }} {!! $user->title !!}"> |
@if($user->id !== 1)
{!! Form::open(['method' => 'DELETE','route' => ['users.destroy', $user->id],'style'=>'display:inline']) !!}
diff --git a/resources/views/users/trash.blade.php b/resources/views/users/trash.blade.php
index caed294d..16965086 100644
--- a/resources/views/users/trash.blade.php
+++ b/resources/views/users/trash.blade.php
@@ -7,7 +7,7 @@
Showing Deleted Applications
@@ -26,7 +26,7 @@
|
{{ $app->title }} |
{{ __('app.url') }} |
- |
+ |
{!! Form::open(['method' => 'DELETE','route' => ['items.destroy', $app->id],'style'=>'display:inline']) !!}
diff --git a/resources/views/welcome.blade.php b/resources/views/welcome.blade.php
index e1527f7e..4deb09df 100644
--- a/resources/views/welcome.blade.php
+++ b/resources/views/welcome.blade.php
@@ -10,7 +10,7 @@
diff --git a/routes/web.php b/routes/web.php
index ad050a9e..4eee6255 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -13,6 +13,10 @@ use Illuminate\Http\Request;
|
*/
+if(\Config::get('app.url') !== 'http://localhost') {
+ URL::forceRootUrl(\Config::get('app.url'));
+}
+
Route::get('/userselect/{user}', 'Auth\LoginController@setUser')->name('user.set');
Route::get('/userselect', 'UserController@selectUser')->name('user.select');
Route::get('/autologin/{uuid}', 'Auth\LoginController@autologin')->name('user.autologin');
diff --git a/webpack.mix.js b/webpack.mix.js
index e6c7f296..9cfbb588 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -11,7 +11,7 @@ let mix = require('laravel-mix');
|
*/
-mix.scripts([
+mix.babel([
//'resources/assets/js/jquery-ui.min.js',
'resources/assets/js/huebee.js',
'resources/assets/js/app.js'
|