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 .= '
'; - $output .= Form::open(['url' => 'search', 'method' => 'get']); + $output .= '
'; $output .= '
'; $output .= ''; $output .= Form::text('q', null, ['class' => 'homesearch', 'autofocus' => 'autofocus', 'placeholder' => __('app.settings.search').'...']); $output .= ''; $output .= '
'; - $output .= Form::close(); + $output .= '
'; $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 @@
{{ __('app.apps.app_list') }} @if( isset($trash) && $trash->count() > 0 ) - {{ __('app.apps.view_trash') }} ({{ $trash->count() }}) + {{ __('app.apps.view_trash') }} ({{ $trash->count() }}) @endif
@@ -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 @@
    {{ __('app.apps.tag_list') }} @if( isset($trash) && $trash->count() > 0 ) - {{ __('app.apps.view_trash') }} ({{ $trash->count() }}) + {{ __('app.apps.view_trash') }} ({{ $trash->count() }}) @endif
    @@ -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 @@
    {{ __('app.user.user_list') }} @if( isset($trash) && $trash->count() > 0 ) - {{ __('app.apps.view_trash') }} ({{ $trash->count() }}) + {{ __('app.apps.view_trash') }} ({{ $trash->count() }}) @endif
    @@ -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 @@

    {!! __('app.dash.no_apps', [ - 'link1' => ''.__('app.dash.link1').'', + 'link1' => ''.__('app.dash.link1').'', 'link2' => ''.__('app.dash.link2').'' ]) !!}

    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'