Merged updates from other projects
This commit is contained in:
parent
d6cb505e1c
commit
e9cad27afc
@ -1,4 +1,6 @@
|
|||||||
APP_NAME=Laravel
|
APP_NAME=Laravel
|
||||||
|
APP_NAME_HTML_LONG="<b>Laravel</b>Application"
|
||||||
|
APP_NAME_HTML_SHORT="<b>L</b>A"
|
||||||
APP_ENV=local
|
APP_ENV=local
|
||||||
APP_KEY=
|
APP_KEY=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
@ -37,3 +39,9 @@ PUSHER_APP_CLUSTER=mt1
|
|||||||
|
|
||||||
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||||
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||||
|
|
||||||
|
# Set the W3ID tokens at w3.ibm.com/tools/sso
|
||||||
|
W3_CLIENT_ID=
|
||||||
|
W3_SECRET=
|
||||||
|
W3_BLUEGROUP=
|
||||||
|
# JWT certificate needs to be stored in .env.jwt.crt and config/jwt.php set to RS256 as the alg
|
||||||
|
15
.env.testing
15
.env.testing
@ -1,10 +1,13 @@
|
|||||||
APP_NAME=Laravel
|
APP_NAME=Laravel
|
||||||
|
APP_NAME_HTML_LONG="<b>Laravel</b>Application"
|
||||||
|
APP_NAME_HTML_SHORT="<b>L</b>A"
|
||||||
APP_ENV=test
|
APP_ENV=test
|
||||||
APP_KEY=
|
APP_KEY=
|
||||||
APP_DEBUG=true
|
APP_DEBUG=true
|
||||||
APP_LOG_LEVEL=debug
|
|
||||||
APP_URL=http://localhost
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
|
||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
DB_HOST=mariadb
|
DB_HOST=mariadb
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
@ -32,3 +35,13 @@ MAIL_ENCRYPTION=null
|
|||||||
PUSHER_APP_ID=
|
PUSHER_APP_ID=
|
||||||
PUSHER_APP_KEY=
|
PUSHER_APP_KEY=
|
||||||
PUSHER_APP_SECRET=
|
PUSHER_APP_SECRET=
|
||||||
|
PUSHER_APP_CLUSTER=mt1
|
||||||
|
|
||||||
|
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
|
||||||
|
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
|
||||||
|
|
||||||
|
# Set the W3ID tokens at w3.ibm.com/tools/sso
|
||||||
|
W3_CLIENT_ID=
|
||||||
|
W3_SECRET=
|
||||||
|
W3_BLUEGROUP=
|
||||||
|
# JWT certificate needs to be stored in .env.jwt.crt and config/jwt.php set to RS256 as the alg
|
||||||
|
43
app/Console/Commands/GenerateCode.php
Normal file
43
app/Console/Commands/GenerateCode.php
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
|
use Clarkeash\Doorman\Facades\Doorman;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
|
class GenerateCode extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The name and signature of the console command.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signature = 'code:generate {email}';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The console command description.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $description = 'Generate an Access Code for email';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a new command instance.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
parent::__construct();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the console command.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
echo Doorman::generate()->for($this->argument('email'))->expiresIn(14)->make();
|
||||||
|
}
|
||||||
|
}
|
34
app/Http/Controllers/Auth/SocialLoginController.php
Normal file
34
app/Http/Controllers/Auth/SocialLoginController.php
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Auth;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
|
||||||
|
use Socialite;
|
||||||
|
|
||||||
|
class SocialLoginController extends Controller
|
||||||
|
{
|
||||||
|
public function redirectToProvider($provider)
|
||||||
|
{
|
||||||
|
return Socialite::with($provider)->redirect();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function handleProviderCallback($provider)
|
||||||
|
{
|
||||||
|
$openiduser = Socialite::with($provider)->user();
|
||||||
|
|
||||||
|
$user = Socialite::with($provider)->findOrCreateUser($openiduser);
|
||||||
|
|
||||||
|
Auth::login($user,FALSE);
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (! $user->profile_update)
|
||||||
|
{
|
||||||
|
return redirect()->to(url('settings'));
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
return redirect()->intended();
|
||||||
|
}
|
||||||
|
}
|
28
app/Http/Controllers/SearchController.php
Normal file
28
app/Http/Controllers/SearchController.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\{Group,Product};
|
||||||
|
|
||||||
|
class SearchController extends Controller
|
||||||
|
{
|
||||||
|
use \App\Traits\GetImportDate;
|
||||||
|
|
||||||
|
public function __construct()
|
||||||
|
{
|
||||||
|
$this->middleware('auth');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the application dashboard.
|
||||||
|
*
|
||||||
|
* @return \Illuminate\Http\Response
|
||||||
|
*/
|
||||||
|
public function search(Request $request)
|
||||||
|
{
|
||||||
|
$result = [];
|
||||||
|
|
||||||
|
return json_encode($result);
|
||||||
|
}
|
||||||
|
}
|
@ -1,7 +1,10 @@
|
|||||||
{
|
{
|
||||||
"name": "laravel/laravel",
|
"name": "laravel/laravel",
|
||||||
"description": "The Laravel Framework.",
|
"description": "The Laravel Framework.",
|
||||||
"keywords": ["framework", "laravel"],
|
"keywords": [
|
||||||
|
"framework",
|
||||||
|
"laravel"
|
||||||
|
],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"require": {
|
"require": {
|
||||||
@ -10,12 +13,16 @@
|
|||||||
"barryvdh/laravel-debugbar": "^3.1",
|
"barryvdh/laravel-debugbar": "^3.1",
|
||||||
"clarkeash/doorman": "^2.0",
|
"clarkeash/doorman": "^2.0",
|
||||||
"creativeorange/gravatar": "^1.0",
|
"creativeorange/gravatar": "^1.0",
|
||||||
|
"doctrine/dbal": "^2.7",
|
||||||
"fideloper/proxy": "^4.0",
|
"fideloper/proxy": "^4.0",
|
||||||
"igaster/laravel-theme": "^2.0",
|
"igaster/laravel-theme": "2.0.6",
|
||||||
"intervention/image": "^2.4",
|
"intervention/image": "^2.4",
|
||||||
"laravel/framework": "5.6.*",
|
"laravel/framework": "5.6.*",
|
||||||
|
"laravel/socialite": "^3.0",
|
||||||
"laravel/tinker": "^1.0",
|
"laravel/tinker": "^1.0",
|
||||||
"orchestra/asset": "^3.6"
|
"leenooks/laravel": "0.*",
|
||||||
|
"orchestra/asset": "^3.6",
|
||||||
|
"tymon/jwt-auth": "^0.5.12"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"filp/whoops": "^2.0",
|
"filp/whoops": "^2.0",
|
||||||
@ -40,10 +47,15 @@
|
|||||||
},
|
},
|
||||||
"extra": {
|
"extra": {
|
||||||
"laravel": {
|
"laravel": {
|
||||||
"dont-discover": [
|
"dont-discover": []
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"repositories": [
|
||||||
|
{
|
||||||
|
"type": "vcs",
|
||||||
|
"url": "https://dev.leenooks.net/leenooks/laravel"
|
||||||
|
}
|
||||||
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"post-root-package-install": [
|
"post-root-package-install": [
|
||||||
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||||
|
1167
composer.lock
generated
1167
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@ -165,10 +165,12 @@ return [
|
|||||||
/*
|
/*
|
||||||
* Other Service Providers...
|
* Other Service Providers...
|
||||||
*/
|
*/
|
||||||
|
Acacha\User\Providers\GuestUserServiceProvider::class,
|
||||||
Igaster\LaravelTheme\themeServiceProvider::class,
|
Igaster\LaravelTheme\themeServiceProvider::class,
|
||||||
Intervention\Image\ImageServiceProvider::class,
|
Intervention\Image\ImageServiceProvider::class,
|
||||||
Collective\Html\HtmlServiceProvider::class,
|
|
||||||
Orchestra\Asset\AssetServiceProvider::class,
|
Orchestra\Asset\AssetServiceProvider::class,
|
||||||
|
Collective\Html\HtmlServiceProvider::class,
|
||||||
|
Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -196,11 +198,13 @@ return [
|
|||||||
'Cookie' => Illuminate\Support\Facades\Cookie::class,
|
'Cookie' => Illuminate\Support\Facades\Cookie::class,
|
||||||
'Crypt' => Illuminate\Support\Facades\Crypt::class,
|
'Crypt' => Illuminate\Support\Facades\Crypt::class,
|
||||||
'DB' => Illuminate\Support\Facades\DB::class,
|
'DB' => Illuminate\Support\Facades\DB::class,
|
||||||
|
'Debugbar' => Barryvdh\Debugbar\Facade::class,
|
||||||
|
'Doorman' => Clarkeash\Doorman\Facades\Doorman::class,
|
||||||
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
|
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
|
||||||
'Event' => Illuminate\Support\Facades\Event::class,
|
'Event' => Illuminate\Support\Facades\Event::class,
|
||||||
'File' => Illuminate\Support\Facades\File::class,
|
'File' => Illuminate\Support\Facades\File::class,
|
||||||
'Gravatar' => Creativeorange\Gravatar\Facades\Gravatar::class,
|
|
||||||
'Gate' => Illuminate\Support\Facades\Gate::class,
|
'Gate' => Illuminate\Support\Facades\Gate::class,
|
||||||
|
'Gravatar' => Creativeorange\Gravatar\Facades\Gravatar::class,
|
||||||
'Hash' => Illuminate\Support\Facades\Hash::class,
|
'Hash' => Illuminate\Support\Facades\Hash::class,
|
||||||
'Image' => Intervention\Image\Facades\Image::class,
|
'Image' => Intervention\Image\Facades\Image::class,
|
||||||
'Lang' => Illuminate\Support\Facades\Lang::class,
|
'Lang' => Illuminate\Support\Facades\Lang::class,
|
||||||
|
@ -13,7 +13,7 @@ return array(
|
|||||||
'fallback' => 'mm',
|
'fallback' => 'mm',
|
||||||
|
|
||||||
// would you like to return a https://... image
|
// would you like to return a https://... image
|
||||||
'secure' => false,
|
'secure' => true,
|
||||||
|
|
||||||
// Gravatar allows users to self-rate their images so that they can indicate if an image
|
// Gravatar allows users to self-rate their images so that they can indicate if an image
|
||||||
// is appropriate for a certain audience. By default, only 'G' rated images are displayed
|
// is appropriate for a certain audience. By default, only 'G' rated images are displayed
|
||||||
|
177
config/jwt.php
Normal file
177
config/jwt.php
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of jwt-auth.
|
||||||
|
*
|
||||||
|
* (c) Sean Tymon <tymon148@gmail.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| JWT Authentication Secret
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Don't forget to set this, as it will be used to sign your tokens.
|
||||||
|
| A helper command is provided for this: `php artisan jwt:generate`
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'secret' => env('JWT_SECRET',
|
||||||
|
(file_exists(base_path('.jwt.'.env('APP_ENV').'.crt'))
|
||||||
|
? file_get_contents(base_path('.jwt.'.env('APP_ENV').'.crt'))
|
||||||
|
: 'changeme')
|
||||||
|
),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| JWT time to live
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the length of time (in minutes) that the token will be valid for.
|
||||||
|
| Defaults to 1 hour
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'ttl' => 60,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Refresh time to live
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the length of time (in minutes) that the token can be refreshed
|
||||||
|
| within. I.E. The user can refresh their token within a 2 week window of
|
||||||
|
| the original token being created until they must re-authenticate.
|
||||||
|
| Defaults to 2 weeks
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'refresh_ttl' => 20160,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| JWT hashing algorithm
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the hashing algorithm that will be used to sign the token.
|
||||||
|
|
|
||||||
|
| See here: https://github.com/namshi/jose/tree/2.2.0/src/Namshi/JOSE/Signer
|
||||||
|
| for possible values
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'algo' => 'RS256',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| User Model namespace
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the full namespace to your User model.
|
||||||
|
| e.g. 'Acme\Entities\User'
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'user' => 'App\User',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| User identifier
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify a unique property of the user that will be added as the 'sub'
|
||||||
|
| claim of the token payload.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'identifier' => 'id',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Required Claims
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the required claims that must exist in any token.
|
||||||
|
| A TokenInvalidException will be thrown if any of these claims are not
|
||||||
|
| present in the payload.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'required_claims' => ['iss', 'iat', 'exp', 'nbf', 'sub', 'jti'],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Blacklist Enabled
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| In order to invalidate tokens, you must have the blacklist enabled.
|
||||||
|
| If you do not want or need this functionality, then set this to false.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'blacklist_enabled' => env('JWT_BLACKLIST_ENABLED', true),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Providers
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the various providers used throughout the package.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'providers' => [
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| User Provider
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the provider that is used to find the user based
|
||||||
|
| on the subject claim
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'user' => 'Tymon\JWTAuth\Providers\User\EloquentUserAdapter',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| JWT Provider
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the provider that is used to create and decode the tokens.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'jwt' => 'Tymon\JWTAuth\Providers\JWT\NamshiAdapter',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Authentication Provider
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the provider that is used to authenticate users.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'auth' => 'Tymon\JWTAuth\Providers\Auth\IlluminateAuthAdapter',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Storage Provider
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
| Specify the provider that is used to store tokens in the blacklist
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'storage' => 'Tymon\JWTAuth\Providers\Storage\IlluminateCacheAdapter',
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
@ -1,21 +1,20 @@
|
|||||||
<IfModule mod_rewrite.c>
|
<IfModule mod_rewrite.c>
|
||||||
<IfModule mod_negotiation.c>
|
<IfModule mod_negotiation.c>
|
||||||
Options -MultiViews -Indexes
|
Options -MultiViews
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
|
|
||||||
# Handle Authorization Header
|
|
||||||
RewriteCond %{HTTP:Authorization} .
|
|
||||||
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
|
||||||
|
|
||||||
# Redirect Trailing Slashes If Not A Folder...
|
# Redirect Trailing Slashes If Not A Folder...
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
RewriteCond %{REQUEST_URI} (.+)/$
|
RewriteRule ^(.*)/$ /$1 [L,R=301]
|
||||||
RewriteRule ^ %1 [L,R=301]
|
|
||||||
|
|
||||||
# Handle Front Controller...
|
# Handle Front Controller...
|
||||||
RewriteCond %{REQUEST_FILENAME} !-d
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
RewriteCond %{REQUEST_FILENAME} !-f
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
RewriteRule ^ index.php [L]
|
RewriteRule ^ index.php [L]
|
||||||
|
|
||||||
|
# Handle Authorization Header
|
||||||
|
RewriteCond %{HTTP:Authorization} .
|
||||||
|
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
2630
public/fonts/vendor/ionicons/dist/ionicons.svg
vendored
2630
public/fonts/vendor/ionicons/dist/ionicons.svg
vendored
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 391 KiB |
1
public/plugins/bootstrap3-typeahead.min.js
vendored
Normal file
1
public/plugins/bootstrap3-typeahead.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
372
public/plugins/dataTables.bootstrap.css
vendored
Normal file
372
public/plugins/dataTables.bootstrap.css
vendored
Normal file
@ -0,0 +1,372 @@
|
|||||||
|
div.dataTables_length label {
|
||||||
|
font-weight: normal;
|
||||||
|
text-align: left;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_length select {
|
||||||
|
width: 75px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_filter {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_filter label {
|
||||||
|
font-weight: normal;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_filter input {
|
||||||
|
margin-left: 0.5em;
|
||||||
|
display: inline-block;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_info {
|
||||||
|
padding-top: 8px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate {
|
||||||
|
margin: 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_paginate ul.pagination {
|
||||||
|
margin: 2px 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 767px) {
|
||||||
|
div.dataTables_wrapper > div.row > div,
|
||||||
|
div.dataTables_length,
|
||||||
|
div.dataTables_filter,
|
||||||
|
div.dataTables_info,
|
||||||
|
div.dataTables_paginate {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTTT {
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table.dataTable td,
|
||||||
|
table.dataTable th {
|
||||||
|
-webkit-box-sizing: content-box;
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
table.dataTable {
|
||||||
|
clear: both;
|
||||||
|
margin-top: 6px !important;
|
||||||
|
margin-bottom: 6px !important;
|
||||||
|
max-width: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable thead .sorting,
|
||||||
|
table.dataTable thead .sorting_asc,
|
||||||
|
table.dataTable thead .sorting_desc,
|
||||||
|
table.dataTable thead .sorting_asc_disabled,
|
||||||
|
table.dataTable thead .sorting_desc_disabled {
|
||||||
|
cursor: pointer;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable thead .sorting:after,
|
||||||
|
table.dataTable thead .sorting_asc:after,
|
||||||
|
table.dataTable thead .sorting_desc:after {
|
||||||
|
position: absolute;
|
||||||
|
top: 8px;
|
||||||
|
right: 8px;
|
||||||
|
display: block;
|
||||||
|
font-family: 'Glyphicons Halflings';
|
||||||
|
opacity: 0.5;
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting:after {
|
||||||
|
opacity: 0.2;
|
||||||
|
content: "\e150"; /* sort */
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_asc:after {
|
||||||
|
content: "\e155"; /* sort-by-attributes */
|
||||||
|
}
|
||||||
|
table.dataTable thead .sorting_desc:after {
|
||||||
|
content: "\e156"; /* sort-by-attributes-alt */
|
||||||
|
}
|
||||||
|
div.dataTables_scrollBody table.dataTable thead .sorting:after,
|
||||||
|
div.dataTables_scrollBody table.dataTable thead .sorting_asc:after,
|
||||||
|
div.dataTables_scrollBody table.dataTable thead .sorting_desc:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable thead .sorting_asc_disabled:after,
|
||||||
|
table.dataTable thead .sorting_desc_disabled:after {
|
||||||
|
color: #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable thead > tr > th {
|
||||||
|
padding-right: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable th:active {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Condensed */
|
||||||
|
table.dataTable.table-condensed thead > tr > th {
|
||||||
|
padding-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.dataTable.table-condensed thead .sorting:after,
|
||||||
|
table.dataTable.table-condensed thead .sorting_asc:after,
|
||||||
|
table.dataTable.table-condensed thead .sorting_desc:after {
|
||||||
|
top: 6px;
|
||||||
|
right: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Scrolling */
|
||||||
|
div.dataTables_scrollHead table {
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_scrollHead table thead tr:last-child th:first-child,
|
||||||
|
div.dataTables_scrollHead table thead tr:last-child td:first-child {
|
||||||
|
border-bottom-left-radius: 0 !important;
|
||||||
|
border-bottom-right-radius: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_scrollBody table {
|
||||||
|
border-top: none;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_scrollBody tbody tr:first-child th,
|
||||||
|
div.dataTables_scrollBody tbody tr:first-child td {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_scrollFoot table {
|
||||||
|
margin-top: 0 !important;
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Frustratingly the border-collapse:collapse used by Bootstrap makes the column
|
||||||
|
width calculations when using scrolling impossible to align columns. We have
|
||||||
|
to use separate
|
||||||
|
*/
|
||||||
|
table.table-bordered.dataTable {
|
||||||
|
border-collapse: separate !important;
|
||||||
|
}
|
||||||
|
table.table-bordered thead th,
|
||||||
|
table.table-bordered thead td {
|
||||||
|
border-left-width: 0;
|
||||||
|
border-top-width: 0;
|
||||||
|
}
|
||||||
|
table.table-bordered tbody th,
|
||||||
|
table.table-bordered tbody td {
|
||||||
|
border-left-width: 0;
|
||||||
|
border-bottom-width: 0;
|
||||||
|
}
|
||||||
|
table.table-bordered tfoot th,
|
||||||
|
table.table-bordered tfoot td {
|
||||||
|
border-left-width: 0;
|
||||||
|
border-bottom-width: 0;
|
||||||
|
}
|
||||||
|
table.table-bordered th:last-child,
|
||||||
|
table.table-bordered td:last-child {
|
||||||
|
border-right-width: 0;
|
||||||
|
}
|
||||||
|
div.dataTables_scrollHead table.table-bordered {
|
||||||
|
border-bottom-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* TableTools styles
|
||||||
|
*/
|
||||||
|
.table.dataTable tbody tr.active td,
|
||||||
|
.table.dataTable tbody tr.active th {
|
||||||
|
background-color: #08C;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table.dataTable tbody tr.active:hover td,
|
||||||
|
.table.dataTable tbody tr.active:hover th {
|
||||||
|
background-color: #0075b0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table.dataTable tbody tr.active th > a,
|
||||||
|
.table.dataTable tbody tr.active td > a {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-striped.dataTable tbody tr.active:nth-child(odd) td,
|
||||||
|
.table-striped.dataTable tbody tr.active:nth-child(odd) th {
|
||||||
|
background-color: #017ebc;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.DTTT_selectable tbody tr {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTTT .btn:hover {
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.DTTT_dropdown.dropdown-menu {
|
||||||
|
z-index: 2003;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.DTTT_dropdown.dropdown-menu a {
|
||||||
|
color: #333 !important; /* needed only when demo_page.css is included */
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.DTTT_dropdown.dropdown-menu li {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul.DTTT_dropdown.dropdown-menu li:hover a {
|
||||||
|
background-color: #0088cc;
|
||||||
|
color: white !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTTT_collection_background {
|
||||||
|
z-index: 2002;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TableTools information display */
|
||||||
|
div.DTTT_print_info {
|
||||||
|
position: fixed;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 400px;
|
||||||
|
height: 150px;
|
||||||
|
margin-left: -200px;
|
||||||
|
margin-top: -75px;
|
||||||
|
text-align: center;
|
||||||
|
color: #333;
|
||||||
|
padding: 10px 30px;
|
||||||
|
opacity: 0.95;
|
||||||
|
|
||||||
|
background-color: white;
|
||||||
|
border: 1px solid rgba(0, 0, 0, 0.2);
|
||||||
|
border-radius: 6px;
|
||||||
|
|
||||||
|
-webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
|
||||||
|
box-shadow: 0 3px 7px rgba(0, 0, 0, 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTTT_print_info h6 {
|
||||||
|
font-weight: normal;
|
||||||
|
font-size: 28px;
|
||||||
|
line-height: 28px;
|
||||||
|
margin: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTTT_print_info p {
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.dataTables_processing {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
left: 50%;
|
||||||
|
width: 100%;
|
||||||
|
height: 60px;
|
||||||
|
margin-left: -50%;
|
||||||
|
margin-top: -25px;
|
||||||
|
padding-top: 20px;
|
||||||
|
padding-bottom: 20px;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 1.2em;
|
||||||
|
background-color: white;
|
||||||
|
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));
|
||||||
|
background: -webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||||
|
background: -moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||||
|
background: -ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||||
|
background: -o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||||
|
background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FixedColumns styles
|
||||||
|
*/
|
||||||
|
div.DTFC_LeftHeadWrapper table,
|
||||||
|
div.DTFC_LeftFootWrapper table,
|
||||||
|
div.DTFC_RightHeadWrapper table,
|
||||||
|
div.DTFC_RightFootWrapper table,
|
||||||
|
table.DTFC_Cloned tr.even {
|
||||||
|
background-color: white;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTFC_RightHeadWrapper table ,
|
||||||
|
div.DTFC_LeftHeadWrapper table {
|
||||||
|
border-bottom: none !important;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
border-top-right-radius: 0 !important;
|
||||||
|
border-bottom-left-radius: 0 !important;
|
||||||
|
border-bottom-right-radius: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTFC_RightHeadWrapper table thead tr:last-child th:first-child,
|
||||||
|
div.DTFC_RightHeadWrapper table thead tr:last-child td:first-child,
|
||||||
|
div.DTFC_LeftHeadWrapper table thead tr:last-child th:first-child,
|
||||||
|
div.DTFC_LeftHeadWrapper table thead tr:last-child td:first-child {
|
||||||
|
border-bottom-left-radius: 0 !important;
|
||||||
|
border-bottom-right-radius: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTFC_RightBodyWrapper table,
|
||||||
|
div.DTFC_LeftBodyWrapper table {
|
||||||
|
border-top: none;
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTFC_RightBodyWrapper tbody tr:first-child th,
|
||||||
|
div.DTFC_RightBodyWrapper tbody tr:first-child td,
|
||||||
|
div.DTFC_LeftBodyWrapper tbody tr:first-child th,
|
||||||
|
div.DTFC_LeftBodyWrapper tbody tr:first-child td {
|
||||||
|
border-top: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.DTFC_RightFootWrapper table,
|
||||||
|
div.DTFC_LeftFootWrapper table {
|
||||||
|
border-top: none;
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div.DTFC_LeftBodyWrapper table.dataTable thead .sorting:after,
|
||||||
|
div.DTFC_LeftBodyWrapper table.dataTable thead .sorting_asc:after,
|
||||||
|
div.DTFC_LeftBodyWrapper table.dataTable thead .sorting_desc:after,
|
||||||
|
div.DTFC_RightBodyWrapper table.dataTable thead .sorting:after,
|
||||||
|
div.DTFC_RightBodyWrapper table.dataTable thead .sorting_asc:after,
|
||||||
|
div.DTFC_RightBodyWrapper table.dataTable thead .sorting_desc:after {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* FixedHeader styles
|
||||||
|
*/
|
||||||
|
div.FixedHeader_Cloned table {
|
||||||
|
margin: 0 !important
|
||||||
|
}
|
||||||
|
|
8
public/plugins/dataTables.bootstrap.min.js
vendored
Normal file
8
public/plugins/dataTables.bootstrap.min.js
vendored
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
/*!
|
||||||
|
DataTables Bootstrap 3 integration
|
||||||
|
©2011-2014 SpryMedia Ltd - datatables.net/license
|
||||||
|
*/
|
||||||
|
(function(l,q){var e=function(b,c){b.extend(!0,c.defaults,{dom:"<'row'<'col-sm-6'l><'col-sm-6'f>><'row'<'col-sm-12'tr>><'row'<'col-sm-5'i><'col-sm-7'p>>",renderer:"bootstrap"});b.extend(c.ext.classes,{sWrapper:"dataTables_wrapper form-inline dt-bootstrap",sFilterInput:"form-control input-sm",sLengthSelect:"form-control input-sm"});c.ext.renderer.pageButton.bootstrap=function(g,e,r,s,i,m){var t=new c.Api(g),u=g.oClasses,j=g.oLanguage.oPaginate,d,f,n=0,p=function(c,e){var k,h,o,a,l=function(a){a.preventDefault();
|
||||||
|
b(a.currentTarget).hasClass("disabled")||t.page(a.data.action).draw(!1)};k=0;for(h=e.length;k<h;k++)if(a=e[k],b.isArray(a))p(c,a);else{f=d="";switch(a){case "ellipsis":d="…";f="disabled";break;case "first":d=j.sFirst;f=a+(0<i?"":" disabled");break;case "previous":d=j.sPrevious;f=a+(0<i?"":" disabled");break;case "next":d=j.sNext;f=a+(i<m-1?"":" disabled");break;case "last":d=j.sLast;f=a+(i<m-1?"":" disabled");break;default:d=a+1,f=i===a?"active":""}d&&(o=b("<li>",{"class":u.sPageButton+" "+
|
||||||
|
f,id:0===r&&"string"===typeof a?g.sTableId+"_"+a:null}).append(b("<a>",{href:"#","aria-controls":g.sTableId,"data-dt-idx":n,tabindex:g.iTabIndex}).html(d)).appendTo(c),g.oApi._fnBindAction(o,{action:a},l),n++)}},h;try{h=b(q.activeElement).data("dt-idx")}catch(l){}p(b(e).empty().html('<ul class="pagination"/>').children("ul"),s);h&&b(e).find("[data-dt-idx="+h+"]").focus()};c.TableTools&&(b.extend(!0,c.TableTools.classes,{container:"DTTT btn-group",buttons:{normal:"btn btn-default",disabled:"disabled"},
|
||||||
|
collection:{container:"DTTT_dropdown dropdown-menu",buttons:{normal:"",disabled:"disabled"}},print:{info:"DTTT_print_info"},select:{row:"active"}}),b.extend(!0,c.TableTools.DEFAULTS.oTags,{collection:{container:"ul",button:"li",liner:"a"}}))};"function"===typeof define&&define.amd?define(["jquery","datatables"],e):"object"===typeof exports?e(require("jquery"),require("datatables")):jQuery&&e(jQuery,jQuery.fn.dataTable)})(window,document);
|
1
public/plugins/fastclick/fastclick.min.js
vendored
Normal file
1
public/plugins/fastclick/fastclick.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
14951
public/plugins/jquery.dataTables.js
vendored
Normal file
14951
public/plugins/jquery.dataTables.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
16
public/plugins/jquery.slimscroll.min.js
vendored
Normal file
16
public/plugins/jquery.slimscroll.min.js
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
/*! Copyright (c) 2011 Piotr Rochala (http://rocha.la)
|
||||||
|
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
|
||||||
|
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
|
||||||
|
*
|
||||||
|
* Version: 1.3.8
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
(function(e){e.fn.extend({slimScroll:function(f){var a=e.extend({width:"auto",height:"250px",size:"7px",color:"#000",position:"right",distance:"1px",start:"top",opacity:.4,alwaysVisible:!1,disableFadeOut:!1,railVisible:!1,railColor:"#333",railOpacity:.2,railDraggable:!0,railClass:"slimScrollRail",barClass:"slimScrollBar",wrapperClass:"slimScrollDiv",allowPageScroll:!1,wheelStep:20,touchScrollStep:200,borderRadius:"7px",railBorderRadius:"7px"},f);this.each(function(){function v(d){if(r){d=d||window.event;
|
||||||
|
var c=0;d.wheelDelta&&(c=-d.wheelDelta/120);d.detail&&(c=d.detail/3);e(d.target||d.srcTarget||d.srcElement).closest("."+a.wrapperClass).is(b.parent())&&n(c,!0);d.preventDefault&&!k&&d.preventDefault();k||(d.returnValue=!1)}}function n(d,g,e){k=!1;var f=b.outerHeight()-c.outerHeight();g&&(g=parseInt(c.css("top"))+d*parseInt(a.wheelStep)/100*c.outerHeight(),g=Math.min(Math.max(g,0),f),g=0<d?Math.ceil(g):Math.floor(g),c.css({top:g+"px"}));l=parseInt(c.css("top"))/(b.outerHeight()-c.outerHeight());g=
|
||||||
|
l*(b[0].scrollHeight-b.outerHeight());e&&(g=d,d=g/b[0].scrollHeight*b.outerHeight(),d=Math.min(Math.max(d,0),f),c.css({top:d+"px"}));b.scrollTop(g);b.trigger("slimscrolling",~~g);w();p()}function x(){u=Math.max(b.outerHeight()/b[0].scrollHeight*b.outerHeight(),30);c.css({height:u+"px"});var a=u==b.outerHeight()?"none":"block";c.css({display:a})}function w(){x();clearTimeout(B);l==~~l?(k=a.allowPageScroll,C!=l&&b.trigger("slimscroll",0==~~l?"top":"bottom")):k=!1;C=l;u>=b.outerHeight()?k=!0:(c.stop(!0,
|
||||||
|
!0).fadeIn("fast"),a.railVisible&&m.stop(!0,!0).fadeIn("fast"))}function p(){a.alwaysVisible||(B=setTimeout(function(){a.disableFadeOut&&r||y||z||(c.fadeOut("slow"),m.fadeOut("slow"))},1E3))}var r,y,z,B,A,u,l,C,k=!1,b=e(this);if(b.parent().hasClass(a.wrapperClass)){var q=b.scrollTop(),c=b.siblings("."+a.barClass),m=b.siblings("."+a.railClass);x();if(e.isPlainObject(f)){if("height"in f&&"auto"==f.height){b.parent().css("height","auto");b.css("height","auto");var h=b.parent().parent().height();b.parent().css("height",
|
||||||
|
h);b.css("height",h)}else"height"in f&&(h=f.height,b.parent().css("height",h),b.css("height",h));if("scrollTo"in f)q=parseInt(a.scrollTo);else if("scrollBy"in f)q+=parseInt(a.scrollBy);else if("destroy"in f){c.remove();m.remove();b.unwrap();return}n(q,!1,!0)}}else if(!(e.isPlainObject(f)&&"destroy"in f)){a.height="auto"==a.height?b.parent().height():a.height;q=e("<div></div>").addClass(a.wrapperClass).css({position:"relative",overflow:"hidden",width:a.width,height:a.height});b.css({overflow:"hidden",
|
||||||
|
width:a.width,height:a.height});var m=e("<div></div>").addClass(a.railClass).css({width:a.size,height:"100%",position:"absolute",top:0,display:a.alwaysVisible&&a.railVisible?"block":"none","border-radius":a.railBorderRadius,background:a.railColor,opacity:a.railOpacity,zIndex:90}),c=e("<div></div>").addClass(a.barClass).css({background:a.color,width:a.size,position:"absolute",top:0,opacity:a.opacity,display:a.alwaysVisible?"block":"none","border-radius":a.borderRadius,BorderRadius:a.borderRadius,MozBorderRadius:a.borderRadius,
|
||||||
|
WebkitBorderRadius:a.borderRadius,zIndex:99}),h="right"==a.position?{right:a.distance}:{left:a.distance};m.css(h);c.css(h);b.wrap(q);b.parent().append(c);b.parent().append(m);a.railDraggable&&c.bind("mousedown",function(a){var b=e(document);z=!0;t=parseFloat(c.css("top"));pageY=a.pageY;b.bind("mousemove.slimscroll",function(a){currTop=t+a.pageY-pageY;c.css("top",currTop);n(0,c.position().top,!1)});b.bind("mouseup.slimscroll",function(a){z=!1;p();b.unbind(".slimscroll")});return!1}).bind("selectstart.slimscroll",
|
||||||
|
function(a){a.stopPropagation();a.preventDefault();return!1});m.hover(function(){w()},function(){p()});c.hover(function(){y=!0},function(){y=!1});b.hover(function(){r=!0;w();p()},function(){r=!1;p()});b.bind("touchstart",function(a,b){a.originalEvent.touches.length&&(A=a.originalEvent.touches[0].pageY)});b.bind("touchmove",function(b){k||b.originalEvent.preventDefault();b.originalEvent.touches.length&&(n((A-b.originalEvent.touches[0].pageY)/a.touchScrollStep,!0),A=b.originalEvent.touches[0].pageY)});
|
||||||
|
x();"bottom"===a.start?(c.css({top:b.outerHeight()-c.outerHeight()}),n(0,!0)):"top"!==a.start&&(n(e(a.start).position().top,null,!0),a.alwaysVisible||c.hide());window.addEventListener?(this.addEventListener("DOMMouseScroll",v,!1),this.addEventListener("mousewheel",v,!1)):document.attachEvent("onmousewheel",v)}});return this}});e.fn.extend({slimscroll:e.fn.slimScroll})})(jQuery);
|
@ -1,4 +1,4 @@
|
|||||||
@extends('layouts.auth')
|
@extends('adminlte::layouts.auth')
|
||||||
|
|
||||||
@section('htmlheader_title')
|
@section('htmlheader_title')
|
||||||
Log in
|
Log in
|
||||||
@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
@if (count($errors) > 0)
|
@if (count($errors) > 0)
|
||||||
<div class="alert alert-danger">
|
<div class="alert alert-danger">
|
||||||
<strong>Whoops!</strong> {{ trans('message.someproblems') }}<br><br>
|
<strong>Whoops!</strong> {{ trans('adminlte_lang::message.someproblems') }}<br><br>
|
||||||
<ul>
|
<ul>
|
||||||
@foreach ($errors->all() as $error)
|
@foreach ($errors->all() as $error)
|
||||||
<li>{{ $error }}</li>
|
<li>{{ $error }}</li>
|
||||||
@ -24,20 +24,21 @@
|
|||||||
@endif
|
@endif
|
||||||
|
|
||||||
<div class="login-box-body">
|
<div class="login-box-body">
|
||||||
<p class="login-box-msg"> {{ trans('message.siginsession') }} </p>
|
<p class="login-box-msg"> {{ trans('adminlte_lang::message.siginsession') }} </p>
|
||||||
|
|
||||||
<login-form name="{{ config('auth.providers.users.field','email') }}"
|
<login-form name="{{ config('auth.providers.users.field','email') }}"
|
||||||
domain="{{ config('auth.defaults.domain','') }}"></login-form>
|
domain="{{ config('auth.defaults.domain','') }}"></login-form>
|
||||||
|
|
||||||
<a href="{{ url('/password/reset') }}">{{ trans('message.forgotpassword') }}</a><br>
|
<a href="{{ url('/password/reset') }}">{{ trans('adminlte_lang::message.forgotpassword') }}</a><br>
|
||||||
|
|
||||||
@if(isset($site_social))
|
@if(count(config('auth.social',[])))
|
||||||
@include('auth.partials.social_login')
|
@include('adminlte::auth.partials.social_login')
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@include('layouts.partials.scripts_auth')
|
|
||||||
|
@include('adminlte::layouts.partials.scripts_auth')
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
|
@ -4,15 +4,15 @@
|
|||||||
<!-- Logo -->
|
<!-- Logo -->
|
||||||
<a href="{{ url('/home') }}" class="logo">
|
<a href="{{ url('/home') }}" class="logo">
|
||||||
<!-- mini logo for sidebar mini 50x50 pixels -->
|
<!-- mini logo for sidebar mini 50x50 pixels -->
|
||||||
<span class="logo-mini">{!! config('name_html_short','<b>A</b>N') !!}</span>
|
<span class="logo-mini">{!! config('app.name_html_short','<b>A</b>N') !!}</span>
|
||||||
<!-- logo for regular state and mobile devices -->
|
<!-- logo for regular state and mobile devices -->
|
||||||
<span class="logo-lg">{!! config('name_html_long','<b>App</b>Name') !!}</span>
|
<span class="logo-lg">{!! config('app.name_html_long','<b>App</b>Name') !!}</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Header Navbar -->
|
<!-- Header Navbar -->
|
||||||
<nav class="navbar navbar-static-top" role="navigation">
|
<nav class="navbar navbar-static-top" role="navigation">
|
||||||
<!-- Sidebar toggle button-->
|
<!-- Sidebar toggle button-->
|
||||||
<a href="#" class="sidebar-toggle" data-toggle="offcanvas" role="button">
|
<a href="#" class="sidebar-toggle" data-toggle="push-menu" role="button">
|
||||||
<span class="sr-only">{{ trans('message.togglenav') }}</span>
|
<span class="sr-only">{{ trans('message.togglenav') }}</span>
|
||||||
</a>
|
</a>
|
||||||
<!-- Navbar Right Menu -->
|
<!-- Navbar Right Menu -->
|
||||||
|
@ -30,7 +30,7 @@
|
|||||||
<!-- /.search form -->
|
<!-- /.search form -->
|
||||||
|
|
||||||
<!-- Sidebar Menu -->
|
<!-- Sidebar Menu -->
|
||||||
<ul class="sidebar-menu">
|
<ul class="sidebar-menu" data-widget="tree">
|
||||||
<li class="header">Menu</li>
|
<li class="header">Menu</li>
|
||||||
<!-- Optionally, you can add icons to the links -->
|
<!-- Optionally, you can add icons to the links -->
|
||||||
<li class="active"><a href="{{ url('home',['date'=>(isset($ido) ? $ido->id : NULL)]) }}"><i class='fa fa-link'></i> <span>{{ trans('message.home') }}</span></a></li>
|
<li class="active"><a href="{{ url('home',['date'=>(isset($ido) ? $ido->id : NULL)]) }}"><i class='fa fa-link'></i> <span>{{ trans('message.home') }}</span></a></li>
|
||||||
|
20
resources/views/errors/403.blade.php
Normal file
20
resources/views/errors/403.blade.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
@extends('adminlte::layouts.errors')
|
||||||
|
|
||||||
|
@section('htmlheader_title')
|
||||||
|
{{ trans('adminlte_lang::message.servererror') }}
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('main-content')
|
||||||
|
<div class="error-page">
|
||||||
|
<h2 class="headline text-red">403</h2>
|
||||||
|
<div class="error-content">
|
||||||
|
<h3><i class="fa fa-warning text-red"></i> Oops! Bad Authentication</h3>
|
||||||
|
<p>
|
||||||
|
Sorry, your authentication failed.<br>
|
||||||
|
Message: <b>{{ $exception->getMessage() }}</b><br>
|
||||||
|
Back to <a href="{{ url('login') }}">login</a>
|
||||||
|
</p>
|
||||||
|
<br>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.error-page -->
|
||||||
|
@endsection
|
20
resources/views/errors/500.blade.php
Normal file
20
resources/views/errors/500.blade.php
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
@extends('adminlte::layouts.errors')
|
||||||
|
|
||||||
|
@section('htmlheader_title')
|
||||||
|
{{ trans('adminlte_lang::message.servererror') }}
|
||||||
|
@endsection
|
||||||
|
|
||||||
|
@section('main-content')
|
||||||
|
|
||||||
|
<div class="error-page">
|
||||||
|
<h2 class="headline text-red">500</h2>
|
||||||
|
<div class="error-content">
|
||||||
|
<h3><i class="fa fa-warning text-red"></i> Oops! {{ trans('adminlte_lang::message.somethingwrong') }}</h3>
|
||||||
|
<h4><i class="text-red"></i> {{ trans($exception->getMessage()) }}</h4>
|
||||||
|
<p>
|
||||||
|
{{ trans('adminlte_lang::message.wewillwork') }}
|
||||||
|
{{ trans('adminlte_lang::message.mainwhile') }} <a href='{{ url('/home') }}'>{{ trans('adminlte_lang::message.returndashboard') }}</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div><!-- /.error-page -->
|
||||||
|
@endsection
|
@ -11,8 +11,10 @@
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Route::get('/', function () {
|
Route::group(['middleware'=>['theme:metronic-fe']], function() {
|
||||||
|
Route::get('/', function () {
|
||||||
return view('welcome');
|
return view('welcome');
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Generic Image Renderer - Render images that we dont have with a generic image
|
// Generic Image Renderer - Render images that we dont have with a generic image
|
||||||
@ -22,3 +24,6 @@ Route::group(['middleware'=>['theme:adminlte-be']], function() {
|
|||||||
Auth::routes();
|
Auth::routes();
|
||||||
Route::get('/logout','Auth\LoginController@logout');
|
Route::get('/logout','Auth\LoginController@logout');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Route::get('auth/{socialProvider}', 'Auth\SocialLoginController@redirectToProvider');
|
||||||
|
Route::get('auth/{socialProvider}/callback', 'Auth\SocialLoginController@handleProviderCallback');
|
Reference in New Issue
Block a user