Merge remote-tracking branch 'origin/master' into email-verification

This commit is contained in:
Milos Holba
2021-05-26 13:17:39 +02:00
139 changed files with 6938 additions and 4526 deletions
+7 -2
View File
@@ -1,7 +1,12 @@
name: Code Style Fix
on: [push, pull_request]
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
php-cs-fixer:
@@ -16,7 +21,7 @@ jobs:
- name: Run PHP CS Fixer
uses: docker://oskarstark/php-cs-fixer-ga
with:
args: --config=.php-cs-fixer.dist.php --allow-risky=yes
args: --config=.php-cs-fixer.dist.php --allow-risky=yes
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
+43
View File
@@ -0,0 +1,43 @@
name: Unit Testing
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
workflow_dispatch:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-latest]
php: [8.0]
stability: [prefer-stable]
name: P${{ matrix.php }} - ${{ matrix.stability }} - ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: ctype, json, exif, dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
coverage: none
- name: Setup problem matchers
run: |
echo "::add-matcher::${{ runner.tool_cache }}/php.json"
echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Install dependencies
run: composer update --${{ matrix.stability }} --prefer-dist --no-interaction
- name: Run tests
run: vendor/bin/phpunit
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+386 -45
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -1,4 +1,5 @@
[![Frontend Build](https://github.com/MakingCG/vuefilemanager/actions/workflows/build.yml/badge.svg)](https://github.com/MakingCG/vuefilemanager/actions/workflows/build.yml)
[![Unit Testing](https://github.com/MakingCG/vuefilemanager/actions/workflows/unit-testing.yml/badge.svg)](https://github.com/MakingCG/vuefilemanager/actions/workflows/unit-testing.yml)
![logo](https://vuefilemanager.com/assets/images/vuefilemanager-horizontal-logo.svg)
# Private Cloud Storage Build on Laravel & Vue.js
+1585 -206
View File
File diff suppressed because it is too large Load Diff
+3 -2
View File
@@ -12,9 +12,10 @@ class UpdateUserPassword implements UpdatesUserPasswords
/**
* Validate and update the user's password.
*
* @param mixed $user
* @param array $input
* @param mixed $user
* @param array $input
* @return void
* @throws \Illuminate\Validation\ValidationException
*/
public function update($user, array $input)
{
+6 -3
View File
@@ -1,7 +1,6 @@
<?php
namespace App\Console\Commands;
use Faker;
use App\Models\File;
use App\Models\User;
use App\Models\Share;
@@ -11,9 +10,12 @@ use Illuminate\Support\Str;
use App\Services\SetupService;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Storage;
use Illuminate\Foundation\Testing\WithFaker;
class SetupDevEnvironment extends Command
{
use WithFaker;
/**
* The name and signature of the console command.
*
@@ -34,12 +36,13 @@ class SetupDevEnvironment extends Command
public function __construct()
{
parent::__construct();
$this->faker = Faker\Factory::create();
$this->setUpFaker();
$this->setup = resolve(SetupService::class);
}
/**
* Execute the console command.
* return @void
*/
public function handle(): void
{
@@ -608,7 +611,7 @@ class SetupDevEnvironment extends Command
'whaaaaat.jpg',
'You Are My Sunshine.jpg',
])
->each(function ($file) use ($user, $apartments) {
->each(function ($file) use ($user) {
$basename = Str::random(12) . '-' . $file;
// Copy file into app storage
@@ -179,7 +179,7 @@ class SetupProdEnvironment extends Command
{
$user = User::forceCreate([
'role' => 'admin',
'email' => 'admin@vuefilemanager.com',
'email' => 'howdy@hi5ve.digital',
'password' => bcrypt('vuefilemanager'),
]);
@@ -191,7 +191,7 @@ class SetupProdEnvironment extends Command
]);
// Show user credentials
$this->info('Default admin account created. Email: admin@vuefilemanager.com and Password: vuefilemanager');
$this->info('Default admin account created. Email: howdy@hi5ve.digital and Password: vuefilemanager');
}
/**
@@ -1,7 +1,6 @@
<?php
namespace App\Http\Controllers\Admin;
use DB;
use App\Models\User;
use ByteUnits\Metric;
use App\Services\StripeService;
@@ -11,9 +10,8 @@ use App\Http\Resources\UsersCollection;
class DashboardController extends Controller
{
/**
* @param StripeService $stripe
*/
private StripeService $stripe;
public function __construct(StripeService $stripe)
{
$this->stripe = $stripe;
@@ -32,7 +30,7 @@ class DashboardController extends Controller
// Get total storage usage
$storage_usage = Metric::bytes(
DB::table('files')->sum('filesize')
\DB::table('files')->sum('filesize')
)->format();
return [
@@ -9,9 +9,8 @@ use App\Http\Resources\InvoiceAdminCollection;
class InvoiceController extends Controller
{
/**
* @param StripeService $stripe
*/
private StripeService $stripe;
public function __construct(StripeService $stripe)
{
$this->stripe = $stripe;
@@ -12,6 +12,8 @@ use Illuminate\Contracts\Routing\ResponseFactory;
class PagesController extends Controller
{
private $demo;
public function __construct()
{
$this->demo = resolve(DemoService::class);
@@ -18,12 +18,13 @@ use Illuminate\Contracts\Routing\ResponseFactory;
class PlanController extends Controller
{
/**
* @param StripeService $stripe
*/
public function __construct(StripeService $stripe)
private StripeService $stripe;
private DemoService $demo;
public function __construct()
{
$this->stripe = $stripe;
$this->stripe = resolve(StripeService::class);
$this->demo = resolve(DemoService::class);
}
@@ -12,9 +12,8 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
class SettingController extends Controller
{
/**
* SettingController constructor.
*/
private $demo;
public function __construct()
{
$this->demo = resolve(DemoService::class);
@@ -23,6 +23,8 @@ use App\Http\Requests\Admin\ChangeStorageCapacityRequest;
class UserController extends Controller
{
private StripeService $stripe;
public function __construct(StripeService $stripe)
{
$this->stripe = $stripe;
@@ -25,11 +25,13 @@ class AppFunctionsController extends Controller
*
* @var array
*/
private $blacklist = [
private array $blacklist = [
'purchase_code',
'license',
];
private StripeService $stripe;
public function __construct(StripeService $stripe)
{
$this->stripe = $stripe;
@@ -149,6 +149,7 @@ class EditItemsController extends Controller
*
* @param Request $request
* @return string
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
*/
public function zip_multiple_files(Request $request)
{
@@ -15,6 +15,10 @@ use App\Http\Requests\Payments\RegisterNewPaymentMethodRequest;
class PaymentMethodsController extends Controller
{
private StripeService $stripe;
private DemoService $demo;
public function __construct(StripeService $stripe)
{
$this->stripe = $stripe;
+21 -30
View File
@@ -277,7 +277,7 @@ function is_visitor($shared)
*
* @param $request
* @param $name
* @return string
* @return string|null
*/
function store_avatar($request, $name)
{
@@ -290,14 +290,20 @@ function store_avatar($request, $name)
// Store avatar
$image_path = Str::random(16) . '-' . $image->getClientOriginalName();
// Create intervention image
$img = Image::make($image->getRealPath());
if (in_array($image->getClientMimeType(), ['image/gif', 'image/jpeg', 'image/jpg', 'image/png', 'image/webp'])) {
// Create intervention image
$img = Image::make($image->getRealPath());
// Generate thumbnail
$img->fit('150', '150')->stream();
// Generate thumbnail
$img->fit('150', '150')->stream();
// Store thumbnail to disk
Storage::put("avatars/$image_path", $img);
// Store thumbnail to disk
Storage::put("avatars/$image_path", $img);
}
if ($image->getClientMimeType() === 'image/svg+xml') {
Storage::putFileAs('avatars', $image, $image_path);
}
// Return path to image
return "avatars/$image_path";
@@ -308,7 +314,7 @@ function store_avatar($request, $name)
*
* @param $request
* @param $name
* @return string
* @return string|null
*/
function store_system_image($request, $name)
{
@@ -505,7 +511,7 @@ function format_date($date, $format = '%d. %B. %Y, %H:%M')
/**
* Get file type from mimetype
*
* @param $file
* @param $file_mimetype
* @return string
*/
function get_file_type($file_mimetype)
@@ -513,25 +519,11 @@ function get_file_type($file_mimetype)
// Get mimetype from file
$mimetype = explode('/', $file_mimetype);
switch ($mimetype[0]) {
case 'image':
return 'image';
break;
case 'video':
return 'video';
break;
case 'audio':
return 'audio';
break;
default:
return 'file';
if (in_array($mimetype[0], ['image', 'video', 'audio'])) {
return $mimetype[0];
}
return 'file';
}
/**
@@ -585,7 +577,7 @@ function get_pretty_name($basename, $name, $mimetype)
* Get exif data from jpeg image
*
* @param $file
* @return array
* @return array|null
*/
function get_image_meta_data($file)
{
@@ -853,10 +845,9 @@ function set_time_by_user_timezone($time)
$user = Auth::user();
if ($user) {
// Get the value of timezone if user have some
$time_zone = intval($user->settings->timezone * 60 ?? null);
return Carbon::parse($time)->addMinutes($time_zone ?? null);
return Carbon::parse($time)->addMinutes($time_zone ?? 0);
}
return Carbon::parse($time);
+2 -2
View File
@@ -74,7 +74,7 @@ class File extends Model
/**
* Form\a\t created at date reformat
*
* @return string
* @return string|null
*/
public function getDeletedAtAttribute()
{
@@ -98,7 +98,7 @@ class File extends Model
/**
* Format thumbnail url
*
* @return string
* @return string|null
*/
public function getThumbnailAttribute()
{
+1 -1
View File
@@ -109,7 +109,7 @@ class Folder extends Model
/**
* Format created at date reformat
*
* @return string
* @return string|null
*/
public function getDeletedAtAttribute()
{
+3
View File
@@ -6,6 +6,9 @@ use Illuminate\Database\Eloquent\Model;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
/**
* @method static whereNotNull(string $string)
*/
class Share extends Model
{
use Notifiable, HasFactory;
+3 -1
View File
@@ -9,10 +9,12 @@ class ResetPassword extends Notification
{
use Queueable;
private $token;
/**
* Create a new notification instance.
*
* @return void
* @param $token
*/
public function __construct($token)
{
+6 -5
View File
@@ -12,7 +12,6 @@ use App\Models\File as UserFile;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;
use Madnest\Madzipper\Facades\Madzipper;
use League\Flysystem\FileNotFoundException;
use App\Http\Requests\FileFunctions\RenameItemRequest;
use Symfony\Component\HttpKernel\Exception\HttpException;
@@ -63,7 +62,8 @@ class FileManagerService
$zip_name = Str::random(16) . '-' . Str::slug($requested_folder->name) . '.zip';
// Create zip
$zip = Madzipper::make($disk_local->path("zip/$zip_name"));
$zipper = new \Madnest\Madzipper\Madzipper;
$zip = $zipper->make($disk_local->path("zip/$zip_name"));
// Add files to zip
foreach ($files as $file) {
@@ -77,7 +77,7 @@ class FileManagerService
}
// Close zip
$zip->close();
//$zip->close();
// Delete temporary files
if (! is_storage_driver('local')) {
@@ -122,7 +122,8 @@ class FileManagerService
$zip_name = Str::random(16) . '.zip';
// Create zip
$zip = Madzipper::make($disk_local->path("zip/$zip_name"));
$zipper = new \Madnest\Madzipper\Madzipper;
$zip = $zipper->make($disk_local->path("zip/$zip_name"));
// Add files to zip
$files->each(function ($file) use ($zip, $disk_local) {
@@ -134,7 +135,7 @@ class FileManagerService
});
// Close zip
$zip->close();
//$zip->close();
// Delete temporary files
if (! is_storage_driver('local')) {
+4 -4
View File
@@ -125,7 +125,7 @@ class HelperService
*/
public function move_file_to_external_storage($file, $user_id): void
{
$disk_local = Storage::disk('local');
$disk_local = \Storage::disk('local');
// Get file size
$filesize = $disk_local->size("files/$user_id/$file");
@@ -145,7 +145,7 @@ class HelperService
// TODO: replace local files with temp folder
$uploader = new MultipartUploader($client, config('filesystems.disks.local.root') . "/files/$user_id/$file", [
'bucket' => $adapter->getBucket(),
'key' => "/files/$user_id/$file",
'key' => "files/$user_id/$file",
]);
try {
@@ -156,7 +156,7 @@ class HelperService
Log::error($e->getMessage());
// Delete file after error
$disk_local->delete("/files/$user_id/$file");
$disk_local->delete("files/$user_id/$file");
throw new HttpException(409, $e->getMessage());
}
@@ -167,7 +167,7 @@ class HelperService
}
// Delete file after upload
$disk_local->delete("/files/$user_id/$file");
$disk_local->delete("files/$user_id/$file");
}
/**
+1 -1
View File
@@ -19,7 +19,7 @@ class SchedulerService
->get()
->each(function ($zip) {
// Delete zip file
\Storage::disk('local')->delete("zip/$zip->basename");
Storage::disk('local')->delete("zip/$zip->basename");
// Delete zip record
$zip->delete();
+10 -7
View File
@@ -13,6 +13,8 @@ use Symfony\Component\HttpKernel\Exception\HttpException;
class StripeService
{
private \Cartalyst\Stripe\Stripe $stripe;
/**
* Stripe Service constructor.
*/
@@ -115,9 +117,8 @@ class StripeService
*
* @param $request
* @param $user
* @return mixed
*/
public function registerNewPaymentMethod($request, $user)
public function registerNewPaymentMethod($request, $user): void
{
// Clear cached payment methods
cache_forget_many([
@@ -139,10 +140,8 @@ class StripeService
*
* @param $request
* @param $user
* @param $paymentMethod
* @return \Illuminate\Http\RedirectResponse
*/
public function createOrReplaceSubscription($request, $user)
public function createOrReplaceSubscription($request, $user): void
{
try {
// Get payment method
@@ -198,7 +197,9 @@ class StripeService
public function getPlans()
{
// Get stripe plans
$stripe_plans = $this->stripe->plans()->all();
$stripe_plans = $this->stripe->plans()->all([
'limit' => 100,
]);
// Plans container
$plans = [];
@@ -227,7 +228,9 @@ class StripeService
public function getActivePlans()
{
// Get stripe plans
$stripe_plans = $this->stripe->plans()->all();
$stripe_plans = $this->stripe->plans()->all([
'limit' => 100,
]);
// Plans container
$plans = [];
+9 -7
View File
@@ -8,13 +8,12 @@
],
"license": "MIT",
"require": {
"php": "^7.3",
"php": "^8.0",
"ext-json": "*",
"brianium/paratest": "^6.2",
"cartalyst/stripe-laravel": "^13.1",
"doctrine/dbal": "^2.12.1",
"fideloper/proxy": "^4.4.1",
"friendsofphp/php-cs-fixer": "^2.18",
"fruitcake/laravel-cors": "^2.0.3",
"gabrielelana/byte-units": "^0.5.0",
"guzzlehttp/guzzle": "^7.2.0",
@@ -31,17 +30,19 @@
"league/flysystem-cached-adapter": "^1.1.0",
"madnest/madzipper": "^1.1.0",
"spatie/laravel-backup": "^6.15",
"teamtnt/laravel-scout-tntsearch-driver": "^11.1.0"
"spatie/laravel-tail": "^4.3",
"teamtnt/laravel-scout-tntsearch-driver": "^11.1.0",
"vimeo/psalm": "^4.7"
},
"require-dev": {
"ext-json": "*",
"friendsofphp/php-cs-fixer": "^3.0",
"barryvdh/laravel-ide-helper": "^2.9",
"facade/ignition": "^2.5.14",
"fzaninotto/faker": "^1.9.2",
"fakerphp/faker": "^1.14.1",
"mockery/mockery": "^1.4.3",
"nunomaduro/collision": "^5.3.0",
"phpunit/phpunit": "^9.5.2",
"supliu/laravel-query-monitor": "^1.0.2"
"phpunit/phpunit": "^9.5.2"
},
"config": {
"optimize-autoloader": true,
@@ -85,6 +86,7 @@
"post-create-project-cmd": [
"@php artisan key:generate --ansi"
],
"format": "vendor/bin/php-cs-fixer fix --allow-risky=yes"
"format": "vendor/bin/php-cs-fixer fix --allow-risky=yes",
"psalm": "vendor/bin/psalm"
}
}
Generated
+2367 -1496
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -229,7 +229,7 @@ return [
'Image' => Intervention\Image\Facades\Image::class,
'Stripe' => Cartalyst\Stripe\Laravel\Facades\Stripe::class,
'Crawler' => Jaybizzle\LaravelCrawlerDetect\Facades\LaravelCrawlerDetect::class,
'Madzipper' => Madnest\Madzipper\Madzipper::class,
//'Madzipper' => Madnest\Madzipper\Madzipper::class,
],
'deploy_secret' => env('APP_DEPLOY_SECRET'),
+1
View File
@@ -577,6 +577,7 @@ return [
'shared_form.recipients_label' => 'Recipients',
'shared_form.share_by_email' => 'Share by Email',
'shared_form.share_by_link' => 'Share by Link',
'sidebar.sharing' => 'Sharing',
'sidebar.favourites' => 'Favourites',
'sidebar.favourites_empty' => 'Drag here your favourite folder.',
'sidebar.folders_empty' => 'Create some new folder.',
+1937 -2190
View File
File diff suppressed because it is too large Load Diff
+13 -13
View File
@@ -10,26 +10,26 @@
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
"devDependencies": {
"axios": "^0.19",
"axios": "^0.21",
"cross-env": "^5.1",
"laravel-mix": "^5.0.4",
"laravel-mix": "^5.0.9",
"resolve-url-loader": "^2.3.1",
"sass-loader": "^8.0.2",
"vue-template-compiler": "^2.6.11"
"vue-template-compiler": "^2.6.12"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.30",
"@fortawesome/free-solid-svg-icons": "^5.14.0",
"@fortawesome/fontawesome-svg-core": "^1.2.35",
"@fortawesome/free-solid-svg-icons": "^5.15.3",
"@fortawesome/vue-fontawesome": "^0.1.10",
"lodash": "^4.17.20",
"lodash": "^4.17.21",
"node-sass": "^4.14.1",
"pdfvuer": "^1.7.5",
"twemoji": "^13.0.1",
"vee-validate": "^3.3.9",
"vue": "^2.6.11",
"pdfvuer": "1.7.5",
"twemoji": "^13.0.2",
"vee-validate": "^3.4.5",
"vue": "^2.6.12",
"vue-feather-icons": "^5.1.0",
"vue-i18n": "^8.21.0",
"vue-router": "^3.4.3",
"vuex": "^3.5.1"
"vue-i18n": "^8.24.4",
"vue-router": "^3.5.1",
"vuex": "^3.6.2"
}
}
-3
View File
@@ -11,9 +11,6 @@
processIsolation="false"
stopOnFailure="false">
<testsuites>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
+16
View File
@@ -0,0 +1,16 @@
<?xml version="1.0"?>
<psalm
errorLevel="4"
findUnusedVariablesAndParams="true"
resolveFromConfigFile="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://getpsalm.org/schema/config"
xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
>
<projectFiles>
<directory name="app"/>
<ignoreFiles>
<directory name="vendor"/>
</ignoreFiles>
</projectFiles>
</psalm>
+1 -1
View File
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{ASoH:function(n,t,a){"use strict";var e={name:"AuthContent",props:["loading","icon","text"],data:function(){return{isVisible:!1}},created:function(){this.isVisible=this.visible}},i=(a("RLEU"),a("KHd+")),o=Object(i.a)(e,(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("button",{staticClass:"button outline hover-text-theme hover-border-theme"},[a("span",{staticClass:"text-label"},[n._v(n._s(n.text))]),n._v(" "),n.loading?a("span",{staticClass:"icon"},[a("FontAwesomeIcon",{staticClass:"sync-alt svg-color-theme",attrs:{icon:"sync-alt"}})],1):n._e(),n._v(" "),!n.loading&&n.icon?a("span",{staticClass:"icon"},[a("FontAwesomeIcon",{staticClass:"svg-color-theme",attrs:{icon:n.icon}})],1):n._e()])}),[],!1,null,"16e9ad58",null);t.a=o.exports},JHC5:function(n,t,a){var e=a("YUi1");"string"==typeof e&&(e=[[n.i,e,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,i);e.locals&&(n.exports=e.locals)},Jx8r:function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,"#auth[data-v-31af8372] {\n height: 100%;\n width: 100%;\n display: table;\n}\n",""])},RLEU:function(n,t,a){"use strict";var e=a("JHC5");a.n(e).a},TJPC:function(n,t,a){"use strict";a.d(t,"a",(function(){return o}));function e(n){return null==n}function i(n){return Array.isArray(n)&&0===n.length}var o={validate:function(n,t){var a=(void 0===t?{allowFalse:!0}:t).allowFalse,o={valid:!1,required:!0};return e(n)||i(n)?o:!1!==n||a?(o.valid=!!String(n).trim().length,o):o},params:[{name:"allowFalse",default:!0}],computesRequired:!0}},YUi1:function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,".button[data-v-16e9ad58] {\n cursor: pointer;\n border-radius: 8px;\n text-decoration: none;\n padding: 12px 32px;\n display: inline-block;\n margin-left: 15px;\n margin-right: 15px;\n white-space: nowrap;\n transition: 150ms all ease;\n background: transparent;\n}\n.button .text-label[data-v-16e9ad58] {\n transition: 150ms all ease;\n font-size: 1.0625em;\n font-weight: 800;\n line-height: 0;\n}\n.button .icon[data-v-16e9ad58] {\n margin-left: 12px;\n font-size: 1em;\n}\n.button.solid[data-v-16e9ad58] {\n background: #00BC7E;\n border: 2px solid #00BC7E;\n}\n.button.solid .text-label[data-v-16e9ad58] {\n color: white;\n}\n.button.outline[data-v-16e9ad58] {\n border: 2px solid #1B2539;\n}\n.button.outline .text-label[data-v-16e9ad58] {\n color: #1B2539;\n}\n.button.outline .icon path[data-v-16e9ad58] {\n fill: inherit;\n}\n.button.outline[data-v-16e9ad58]:hover {\n border-color: inherit;\n}\n.button.outline:hover .text-label[data-v-16e9ad58] {\n color: inherit;\n}\n@media (prefers-color-scheme: dark) {\n.button.outline[data-v-16e9ad58] {\n background: #131414;\n border-color: #bec6cf;\n}\n.button.outline .text-label[data-v-16e9ad58] {\n color: #bec6cf;\n}\n}\n.sync-alt[data-v-16e9ad58] {\n -webkit-animation: spin-data-v-16e9ad58 1s linear infinite;\n animation: spin-data-v-16e9ad58 1s linear infinite;\n}\n@-webkit-keyframes spin-data-v-16e9ad58 {\n0% {\n transform: rotate(0);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n@keyframes spin-data-v-16e9ad58 {\n0% {\n transform: rotate(0);\n}\n100% {\n transform: rotate(360deg);\n}\n}\n",""])},bDRN:function(n,t,a){"use strict";var e={name:"AuthContentWrapper"},i=(a("iYAH"),a("KHd+")),o=Object(i.a)(e,(function(){var n=this.$createElement;return(this._self._c||n)("div",{attrs:{id:"auth"}},[this._t("default")],2)}),[],!1,null,"31af8372",null);t.a=o.exports},iYAH:function(n,t,a){"use strict";var e=a("lh0Q");a.n(e).a},j8qy:function(n,t,a){"use strict";var e={name:"AuthContent",props:["visible","name"],data:function(){return{isVisible:!1}},created:function(){this.isVisible=this.visible}},i=a("KHd+"),o=Object(i.a)(e,(function(){var n=this.$createElement,t=this._self._c||n;return this.isVisible?t("div",{staticClass:"auth-form"},[this._t("default")],2):this._e()}),[],!1,null,null,null);t.a=o.exports},lh0Q:function(n,t,a){var e=a("Jx8r");"string"==typeof e&&(e=[[n.i,e,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,i);e.locals&&(n.exports=e.locals)}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{ASoH:function(t,e,a){"use strict";var n={name:"AuthContent",props:["loading","icon","text"],data:function(){return{isVisible:!1}},created:function(){this.isVisible=this.visible}},i=(a("RLEU"),a("KHd+")),o=Object(i.a)(n,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("button",{staticClass:"button outline hover-text-theme hover-border-theme"},[a("span",{staticClass:"text-label"},[t._v(t._s(t.text))]),t._v(" "),t.loading?a("span",{staticClass:"icon"},[a("FontAwesomeIcon",{staticClass:"sync-alt svg-color-theme",attrs:{icon:"sync-alt"}})],1):t._e(),t._v(" "),!t.loading&&t.icon?a("span",{staticClass:"icon"},[a("FontAwesomeIcon",{staticClass:"svg-color-theme",attrs:{icon:t.icon}})],1):t._e()])}),[],!1,null,"16e9ad58",null);e.a=o.exports},JHC5:function(t,e,a){var n=a("YUi1");"string"==typeof n&&(n=[[t.i,n,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(n,i);n.locals&&(t.exports=n.locals)},Jx8r:function(t,e,a){(t.exports=a("I1BE")(!1)).push([t.i,"#auth[data-v-31af8372]{height:100%;width:100%;display:table}",""])},RLEU:function(t,e,a){"use strict";a("JHC5")},TJPC:function(t,e,a){"use strict";a.d(e,"a",(function(){return o}));function n(t){return null==t}function i(t){return Array.isArray(t)&&0===t.length}var o={validate:function(t,e){var a=(void 0===e?{allowFalse:!0}:e).allowFalse,o={valid:!1,required:!0};return n(t)||i(t)?o:!1!==t||a?(o.valid=!!String(t).trim().length,o):o},params:[{name:"allowFalse",default:!0}],computesRequired:!0}},YUi1:function(t,e,a){(t.exports=a("I1BE")(!1)).push([t.i,".button[data-v-16e9ad58]{cursor:pointer;border-radius:8px;text-decoration:none;padding:12px 32px;display:inline-block;margin-left:15px;margin-right:15px;white-space:nowrap;transition:all .15s ease;background:transparent}.button .text-label[data-v-16e9ad58]{transition:all .15s ease;font-size:1.0625em;font-weight:800;line-height:0}.button .icon[data-v-16e9ad58]{margin-left:12px;font-size:1em}.button.solid[data-v-16e9ad58]{background:#00bc7e;border:2px solid #00bc7e}.button.solid .text-label[data-v-16e9ad58]{color:#fff}.button.outline[data-v-16e9ad58]{border:2px solid #1b2539}.button.outline .text-label[data-v-16e9ad58]{color:#1b2539}.button.outline .icon path[data-v-16e9ad58]{fill:inherit}.button.outline[data-v-16e9ad58]:hover{border-color:inherit}.button.outline:hover .text-label[data-v-16e9ad58]{color:inherit}@media (prefers-color-scheme:dark){.button.outline[data-v-16e9ad58]{background:#131414;border-color:#bec6cf}.button.outline .text-label[data-v-16e9ad58]{color:#bec6cf}}.sync-alt[data-v-16e9ad58]{-webkit-animation:spin-data-v-16e9ad58 1s linear infinite;animation:spin-data-v-16e9ad58 1s linear infinite}@-webkit-keyframes spin-data-v-16e9ad58{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin-data-v-16e9ad58{0%{transform:rotate(0)}to{transform:rotate(1turn)}}",""])},bDRN:function(t,e,a){"use strict";var n={name:"AuthContentWrapper"},i=(a("iYAH"),a("KHd+")),o=Object(i.a)(n,(function(){var t=this.$createElement;return(this._self._c||t)("div",{attrs:{id:"auth"}},[this._t("default")],2)}),[],!1,null,"31af8372",null);e.a=o.exports},iYAH:function(t,e,a){"use strict";a("lh0Q")},j8qy:function(t,e,a){"use strict";var n={name:"AuthContent",props:["visible","name"],data:function(){return{isVisible:!1}},created:function(){this.isVisible=this.visible}},i=a("KHd+"),o=Object(i.a)(n,(function(){var t=this.$createElement,e=this._self._c||t;return this.isVisible?e("div",{staticClass:"auth-form"},[this._t("default")],2):this._e()}),[],!1,null,null,null);e.a=o.exports},lh0Q:function(t,e,a){var n=a("Jx8r");"string"==typeof n&&(n=[[t.i,n,""]]);var i={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(n,i);n.locals&&(t.exports=n.locals)}}]);
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
/*! Copyright Twitter Inc. and other contributors. Licensed under MIT */
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{BLAx:function(n,t,a){var e=a("hGkI");"string"==typeof e&&(e=[[n.i,e,""]]);var o={hmr:!0,transform:void 0,insertInto:void 0};a("aET+")(e,o);e.locals&&(n.exports=e.locals)},"c/uq":function(n,t,a){"use strict";var e=a("BLAx");a.n(e).a},hGkI:function(n,t,a){(n.exports=a("I1BE")(!1)).push([n.i,".auth-logo-text[data-v-23099f18] {\n font-size: 1.375em;\n font-weight: 800;\n margin-bottom: 40px;\n display: block;\n}\n.auth-form[data-v-23099f18] {\n text-align: center;\n max-width: 600px;\n padding: 25px 20px;\n display: table-cell;\n vertical-align: middle;\n}\n.auth-form input[data-v-23099f18] {\n min-width: 310px;\n}\n.auth-form .additional-link a[data-v-23099f18] {\n font-weight: 700;\n text-decoration: none;\n}\n.auth-form .user-avatar[data-v-23099f18] {\n width: 100px;\n height: 100px;\n -o-object-fit: cover;\n object-fit: cover;\n margin-bottom: 20px;\n border-radius: 8px;\n box-shadow: 0 10px 30px rgba(25, 54, 60, 0.2);\n}\n.auth-form .logo[data-v-23099f18] {\n width: 120px;\n margin-bottom: 20px;\n}\n.auth-form h1[data-v-23099f18] {\n font-size: 2.125em;\n font-weight: 800;\n line-height: 1.2;\n margin-bottom: 2px;\n color: #1B2539;\n}\n.auth-form h2[data-v-23099f18] {\n font-size: 1.4375em;\n font-weight: 500;\n margin-bottom: 50px;\n color: #1B2539;\n}\n.auth-form .block-form[data-v-23099f18] {\n margin-left: auto;\n margin-right: auto;\n}\n@media only screen and (min-width: 690px) and (max-width: 960px) {\n.auth-form[data-v-23099f18] {\n padding-left: 20%;\n padding-right: 20%;\n}\n}\n@media only screen and (max-width: 690px) {\n.auth-form[data-v-23099f18] {\n width: 100%;\n}\n.auth-form h1[data-v-23099f18] {\n font-size: 1.875em;\n}\n.auth-form h2[data-v-23099f18] {\n font-size: 1.3125em;\n}\n}\n@media only screen and (max-width: 490px) {\n.auth-form h1[data-v-23099f18] {\n font-size: 1.375em;\n}\n.auth-form h2[data-v-23099f18] {\n font-size: 1.125em;\n}\n.auth-form input[data-v-23099f18] {\n min-width: initial;\n}\n.auth-form .additional-link[data-v-23099f18] {\n font-size: 0.9375em;\n}\n}\n@media (prefers-color-scheme: dark) {\n.auth-form h1[data-v-23099f18], .auth-form h2[data-v-23099f18], .auth-form .additional-link[data-v-23099f18] {\n color: #bec6cf;\n}\n}\n",""])},pAWr:function(n,t,a){"use strict";a.r(t);var e=a("bDRN"),o=a("A5+z"),r=a("j8qy"),i=a("ASoH"),f=a("TJPC"),d=a("L2JU");a("vDqi");function s(n,t){var a=Object.keys(n);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(n);t&&(e=e.filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),a.push.apply(a,e)}return a}function c(n,t,a){return t in n?Object.defineProperty(n,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[t]=a,n}var p={name:"NotFound",components:{AuthContentWrapper:e.a,ValidationProvider:o.ValidationProvider,ValidationObserver:o.ValidationObserver,AuthContent:r.a,AuthButton:i.a,required:f.a},computed:function(n){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?s(Object(a),!0).forEach((function(t){c(n,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(a)):s(Object(a)).forEach((function(t){Object.defineProperty(n,t,Object.getOwnPropertyDescriptor(a,t))}))}return n}({},Object(d.b)(["config"])),data:function(){return{isLoading:!1}}},u=(a("c/uq"),a("KHd+")),h=Object(u.a)(p,(function(){var n=this,t=n.$createElement,a=n._self._c||t;return a("AuthContentWrapper",{ref:"auth"},[a("AuthContent",{attrs:{name:"not-found",visible:!0}},[n.config.app_logo?a("img",{staticClass:"logo",attrs:{src:n.$getImage(n.config.app_logo),alt:n.config.app_name}}):n._e(),n._v(" "),n.config.app_logo?n._e():a("b",{staticClass:"auth-logo-text"},[n._v(n._s(n.config.app_name))]),n._v(" "),a("h1",[n._v(n._s(n.$t("page_shared_404.title")))]),n._v(" "),a("h2",[n._v(n._s(n.$t("page_shared_404.subtitle")))]),n._v(" "),a("span",{staticClass:"additional-link"},[n._v(n._s(n.$t("page_registration.have_an_account"))+"\n "),a("router-link",{attrs:{to:{name:"SignIn"}}},[n._v("\n "+n._s(n.$t("page_forgotten_password.password_remember_button"))+"\n ")])],1)])],1)}),[],!1,null,"23099f18",null);t.default=h.exports}}]);
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{BLAx:function(t,a,e){var o=e("hGkI");"string"==typeof o&&(o=[[t.i,o,""]]);var n={hmr:!0,transform:void 0,insertInto:void 0};e("aET+")(o,n);o.locals&&(t.exports=o.locals)},"c/uq":function(t,a,e){"use strict";e("BLAx")},hGkI:function(t,a,e){(t.exports=e("I1BE")(!1)).push([t.i,".auth-logo-text[data-v-23099f18]{font-size:1.375em;font-weight:800;margin-bottom:40px;display:block}.auth-form[data-v-23099f18]{text-align:center;max-width:600px;padding:25px 20px;display:table-cell;vertical-align:middle}.auth-form input[data-v-23099f18]{min-width:310px}.auth-form .additional-link a[data-v-23099f18]{font-weight:700;text-decoration:none}.auth-form .user-avatar[data-v-23099f18]{width:100px;height:100px;-o-object-fit:cover;object-fit:cover;margin-bottom:20px;border-radius:8px;box-shadow:0 10px 30px rgba(25,54,60,.2)}.auth-form .logo[data-v-23099f18]{width:120px;margin-bottom:20px}.auth-form h1[data-v-23099f18]{font-size:2.125em;font-weight:800;line-height:1.2;margin-bottom:2px;color:#1b2539}.auth-form h2[data-v-23099f18]{font-size:1.4375em;font-weight:500;margin-bottom:50px;color:#1b2539}.auth-form .block-form[data-v-23099f18]{margin-left:auto;margin-right:auto}@media only screen and (min-width:690px) and (max-width:960px){.auth-form[data-v-23099f18]{padding-left:20%;padding-right:20%}}@media only screen and (max-width:690px){.auth-form[data-v-23099f18]{width:100%}.auth-form h1[data-v-23099f18]{font-size:1.875em}.auth-form h2[data-v-23099f18]{font-size:1.3125em}}@media only screen and (max-width:490px){.auth-form h1[data-v-23099f18]{font-size:1.375em}.auth-form h2[data-v-23099f18]{font-size:1.125em}.auth-form input[data-v-23099f18]{min-width:0}.auth-form .additional-link[data-v-23099f18]{font-size:.9375em}}@media (prefers-color-scheme:dark){.auth-form .additional-link[data-v-23099f18],.auth-form h1[data-v-23099f18],.auth-form h2[data-v-23099f18]{color:#bec6cf}}",""])},pAWr:function(t,a,e){"use strict";e.r(a);var o=e("bDRN"),n=e("A5+z"),r=e("j8qy"),i=e("ASoH"),f=e("TJPC"),d=e("L2JU");e("vDqi");function s(t,a){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);a&&(o=o.filter((function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable}))),e.push.apply(e,o)}return e}function c(t,a,e){return a in t?Object.defineProperty(t,a,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[a]=e,t}var p={name:"NotFound",components:{AuthContentWrapper:o.a,ValidationProvider:n.ValidationProvider,ValidationObserver:n.ValidationObserver,AuthContent:r.a,AuthButton:i.a,required:f.a},computed:function(t){for(var a=1;a<arguments.length;a++){var e=null!=arguments[a]?arguments[a]:{};a%2?s(Object(e),!0).forEach((function(a){c(t,a,e[a])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):s(Object(e)).forEach((function(a){Object.defineProperty(t,a,Object.getOwnPropertyDescriptor(e,a))}))}return t}({},Object(d.b)(["config"])),data:function(){return{isLoading:!1}}},u=(e("c/uq"),e("KHd+")),h=Object(u.a)(p,(function(){var t=this,a=t.$createElement,e=t._self._c||a;return e("AuthContentWrapper",{ref:"auth"},[e("AuthContent",{attrs:{name:"not-found",visible:!0}},[t.config.app_logo?e("img",{staticClass:"logo",attrs:{src:t.$getImage(t.config.app_logo),alt:t.config.app_name}}):t._e(),t._v(" "),t.config.app_logo?t._e():e("b",{staticClass:"auth-logo-text"},[t._v(t._s(t.config.app_name))]),t._v(" "),e("h1",[t._v(t._s(t.$t("page_shared_404.title")))]),t._v(" "),e("h2",[t._v(t._s(t.$t("page_shared_404.subtitle")))]),t._v(" "),e("span",{staticClass:"additional-link"},[t._v(t._s(t.$t("page_registration.have_an_account"))+"\n "),e("router-link",{attrs:{to:{name:"SignIn"}}},[t._v("\n "+t._s(t.$t("page_forgotten_password.password_remember_button"))+"\n ")])],1)])],1)}),[],!1,null,"23099f18",null);a.default=h.exports}}]);
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More