Compare commits

...

44 Commits

Author SHA1 Message Date
Peter Papp
30783d0e5d frontend build 2020-11-16 17:19:59 +01:00
Peter Papp
3a296f0f9c Merge remote-tracking branch 'origin/upload-limit' into upload-limit 2020-11-16 17:17:46 +01:00
Peter Papp
c0d5a771a5 upload-limit branch review 2020-11-16 17:16:38 +01:00
Milos Holba
8fc7272e38 upload-limit v0.3 solved the multiple DB querys,uploadLimit in config 2020-11-16 17:16:38 +01:00
Milos Holba
8b8dc34ba6 upload-limit v0.2 solved uploadLimitFormate issues , add helper for format_megabytes 2020-11-16 17:16:38 +01:00
Milos Holba
966145d384 upload-limit v0.2 2020-11-16 17:16:38 +01:00
Milos Holba
2b4060cb7b upload-limit v0.1 2020-11-16 17:16:38 +01:00
Peter Papp
9455a361dc upload-limit branch review 2020-11-16 17:15:10 +01:00
Milos Holba
190fc651ae upload-limit v0.3 solved the multiple DB querys,uploadLimit in config 2020-11-12 17:46:23 +01:00
Peter Papp
1c62da4e7c fixed plan description validation in payment request 2020-11-12 17:16:37 +01:00
Peter Papp
ae3be12934 fixed plan description validation in payment request 2020-11-12 09:46:38 +01:00
Milos Holba
c55d3f5350 upload-limit v0.2 solved uploadLimitFormate issues , add helper for format_megabytes 2020-11-07 15:19:03 +01:00
Milos Holba
7273d60154 upload-limit v0.2 2020-11-06 12:19:31 +01:00
Milos Holba
587daa5ffe upload-limit v0.1 2020-11-04 12:48:15 +01:00
Peter Papp
e5335c2472 Merge remote-tracking branch 'origin/exifBlacklist' into exifBlacklist
# Conflicts:
#	public/mix-manifest.json
#	resources/js/helpers.js
#	resources/js/i18n/lang/cn.json
#	resources/js/i18n/lang/en.json
#	resources/js/i18n/lang/sk.json
#	resources/js/store/modules/fileFunctions.js
#	resources/js/views/Admin/AppSettings/AppSettingsTabs/Others.vue
2020-10-24 10:40:59 +02:00
Peter Papp
a2ec066c6d added metadata to UpgradeAppController.php
updated readme with upgrading step to 1.7.11
Frontend build
2020-10-24 10:39:39 +02:00
Miloš Holba
15d4ffc349 Add to metadata Longitude and Latitude 2020-10-24 09:44:23 +02:00
Peter Papp
9af9e45b8a night mode for ImageMetaData.vue 2020-10-24 09:44:23 +02:00
Peter Papp
f30dd38b96 migration column in file_manager_files renamed from meta_data to metadata
context menu feractoring
Editor.php typo changes
FileInfoPanel.vue small changes when to show metadata info
Added new exif information and reordering existing in ImageMetaData.vue
Added new translation strings to i18n files
2020-10-24 09:44:23 +02:00
Miloš Holba
d5f3599b9e v0.1 Add enable empty input in uploadText method 2020-10-24 09:44:23 +02:00
Miloš Holba
de62ab535c v0.1 Fix exif data function just for jpeg and Fix config in index.blade for mimetype_blacklist 2020-10-24 09:44:18 +02:00
Miloš Holba
8b8562916b v0.1 exifBlacklist 2020-10-24 09:44:05 +02:00
Miloš Holba
0d7b920cbe v0.1 add check mimetype if mimetype of file is undefined 2020-10-24 09:44:04 +02:00
Miloš Holba
f3254a380f v0.1 exif Blacklist add frontend validation 2020-10-24 09:44:02 +02:00
Miloš Holba
0e12029efc v0.1 Blacklist and Exif data 2020-10-24 09:43:58 +02:00
Miloš Holba
fd6aa5c6b2 Lazy loading (#41)
* lazy-loading and solved bugs

* lazy-loading for pull request on master

* Update vuefilemanager.php

Co-authored-by: Peter Papp <peterpapp@makingcg.com>
2020-10-24 09:40:05 +02:00
Peter Papp
12d6b0bf57 scheduler changed from hourly to every minute 2020-10-13 17:09:05 +02:00
nourisk
961462fe54 Update package.json (#32)
The "vue" and "vue-template[..]" versions not being the same, this has the effect of breaking the "npm run prod" command with error "version missmatch".
For people who have already installed it, just change the version then "npm install" and that should solve the problem.
2020-10-07 08:19:39 +02:00
nourisk
f0e0103d81 Update router.js (#31)
Capital i missing
2020-10-06 17:03:26 +02:00
Miloš Holba
755523e07b Add to metadata Longitude and Latitude 2020-09-25 09:31:31 +02:00
Peter Papp
c4ace0697b version change to v1.7.10.3 2020-09-20 12:09:07 +02:00
Peter Papp
69489c4ee2 - fixed simultaneously action with show and download file on doubleclick
- Changed download name for Backblaze
- Price plan can be defined in 12 digit number
2020-09-20 12:08:29 +02:00
Peter Papp
e05d7468b5 night mode for ImageMetaData.vue 2020-09-20 11:23:50 +02:00
Peter Papp
1a6a91335e migration column in file_manager_files renamed from meta_data to metadata
context menu feractoring
Editor.php typo changes
FileInfoPanel.vue small changes when to show metadata info
Added new exif information and reordering existing in ImageMetaData.vue
Added new translation strings to i18n files
2020-09-20 11:17:34 +02:00
Miloš Holba
80de069c7b v0.1 Add enable empty input in uploadText method 2020-09-15 13:20:39 +02:00
Miloš Holba
2de8bbe548 v0.1 Fix exif data function just for jpeg and Fix config in index.blade for mimetype_blacklist 2020-09-15 10:33:39 +02:00
Peter Papp
7ba2a3bec1 fixed backblaze broken download link when filename contain space (Content Disposition header wasn't read properly with space) 2020-09-14 09:53:38 +02:00
Miloš Holba
89fa2fce23 v0.1 exifBlacklist 2020-09-12 11:15:32 +02:00
Miloš Holba
84b47416d6 v0.1 add check mimetype if mimetype of file is undefined 2020-09-06 20:29:16 +02:00
Miloš Holba
55c72cddba v0.1 exif Blacklist add frontend validation 2020-09-05 18:35:27 +02:00
Miloš Holba
6effd4a7d9 v0.1 Blacklist and Exif data 2020-09-05 14:35:51 +02:00
Peter Papp
95f6695d00 Fixed when default value incorrectly showing in switches in app settings 2020-09-01 07:41:05 +02:00
Peter Papp
fde7f0f73b Fixed when default value incorrectly showing in switches in app settings 2020-09-01 07:10:56 +02:00
Peter Papp
dd1bffec09 typo error 2020-08-31 08:38:40 +02:00
101 changed files with 1843 additions and 2207 deletions

View File

@@ -1,16 +1,6 @@
![logo](https://vuefilemanager.com/assets/images/vuefilemanager-horizontal-logo.svg)
# Private Cloud Storage Build on Laravel & Vue.js
## Supporting VueFileManager
Hi, we are trying make the best experience with VueFileManager. There is a lot things to do, and a lot of features we can make.
But, it can't be done without you, development is more and more complicated and we have to hire new colleagues to help with it. There is couple way you can support us, and then, we support you with all great new features which can be. Thanks you for participating on this awesome software!
- [Buy me a Coffe](https://www.buymeacoffee.com/pepe)
- [One-time donation via PayPal](https://www.paypal.me/peterpapp)
- [Become a backer or sponsor on Patreon](https://www.patreon.com/vuefilemanager)
- [Purchase Licence on CodeCanyon](https://codecanyon.net/item/vue-file-manager-with-laravel-backend/25815986)
## Contents
- [Installation](#installation)
@@ -20,6 +10,7 @@ But, it can't be done without you, development is more and more complicated and
- [Chunk Upload](#chunk-upload)
- [Upgrade Guide](#upgrade-guide)
- [Common Instructions](#common-instructions)
- [Update from 1.7.10 to 1.7.11](#update-from-1710-to-1711)
- [Update from 1.7.8 to 1.7.9](#update-from-178-to-179)
- [Update from 1.7.x to 1.7.8](#update-from-17x-to-178)
- [Update from 1.6.x to 1.7](#update-from-16x-to-17)
@@ -109,6 +100,7 @@ That was the hardest part of installation proces. Please follow instructions in
Add the following Cron entry to your server. Just update your php path (if it's different) and project path:
```
* * * * * /usr/local/bin/php /path-to-your-project/artisan schedule:run >> /dev/null 2>&1
```
## PHP Configuration
@@ -136,6 +128,9 @@ These instructions is applicable for all updates. Please follow this step:
- Just rewrite all project files with new excluded `/.env` file and `/storage` folder. These items must be preserved!
### Update from 1.7.10 to 1.7.11
Before upload new files to your hosting, log in to VueFileManager as Admin. After uploading new files on your webhosting, visit this url `your-domain.com/service/upgrade-database` for upgrading your database.
### Update from 1.7.8 to 1.7.9
After rewrited old files with new files, log in as admin to the app and go to `your-domain.com/service/upgrade-database`. This will upgrade your database on the background.
@@ -362,6 +357,14 @@ The following support channels are available at your fingertips:
- [CodeCanyon support message](https://codecanyon.net/item/vue-file-manager-with-laravel-backend/25815986/support)
- [GitHub repository](https://vuefilemanager.com/github-access)
## Supporting VueFileManager
Hi, we are trying make the best experience with VueFileManager. There is a lot things to do, and a lot of features we can make.
But, it can't be done without you, development is more and more complicated and we have to hire new colleagues to help with it. There is couple way you can support us, and then, we support you with all great new features which can be. Thanks you for participating on this awesome software!
- [Buy me a Coffe](https://www.buymeacoffee.com/pepe)
- [One-time donation via PayPal](https://www.paypal.me/peterpapp)
## Security Vulnerabilities
If you discover a security vulnerability within this project, please send an e-mail to [peterpapp@makingcg.com](peterpapp@makingcg.com). All security vulnerabilities will be promptly addressed.

View File

@@ -4,9 +4,6 @@ namespace App\Console;
use App\Console\Commands\Deploy;
//use App\Console\Commands\SetupDevelopmentEnvironment;
use App\Console\Commands\SetupDevEnvironment;
use App\Console\Commands\SetupProductionEnvironment;
use App\Console\Commands\UpgradeApp;
use App\Share;
use Carbon\Carbon;
use Illuminate\Console\Scheduling\Schedule;
@@ -34,7 +31,7 @@ class Kernel extends ConsoleKernel
{
$schedule->call(function () {
$this->delete_expired_shared_links();
})->hourly();
})->everyMinute();
}
/**

View File

@@ -67,6 +67,10 @@ class FileManagerFile extends Model
'file_url'
];
protected $casts = [
'metadata' => 'array',
];
/**
* Set routes with public access
*
@@ -148,7 +152,9 @@ class FileManagerFile extends Model
// Get file from external storage
if (is_storage_driver(['s3', 'spaces', 'wasabi', 'backblaze'])) {
$file_pretty_name = get_pretty_name($this->attributes['basename'], $this->attributes['name'], $this->attributes['mimetype']);
$file_pretty_name = is_storage_driver('backblaze')
? Str::snake(mb_strtolower($this->attributes['name']))
: get_pretty_name($this->attributes['basename'], $this->attributes['name'], $this->attributes['mimetype']);
$header = [
"ResponseAcceptRanges" => "bytes",

View File

@@ -171,5 +171,25 @@ class UpgradeAppController extends Controller
echo 'Operation failed.';
}
}
/*
* Upgrade expire_in in shares table
*
* @since v1.7.11
*/
if (! Schema::hasColumn('file_manager_files', 'metadata')) {
$command = Artisan::call('migrate', [
'--force' => true
]);
if ($command === 0) {
echo 'Operation was successful.';
}
if ($command === 1) {
echo 'Operation failed.';
}
}
}
}

View File

@@ -355,6 +355,25 @@ function format_gigabytes($gigabytes)
}
}
/**
* Format string to formated megabytes string
*
* @param $megabytes
* @return string
*/
function format_megabytes($megabytes)
{
if ($megabytes >= 1000) {
return $megabytes / 1000 . 'GB';
}
if ($megabytes >= 1000000) {
return $megabytes / 1000000 . 'TB';
}
return $megabytes . 'MB';
}
/**
* Convert megabytes to bytes
*
@@ -528,4 +547,17 @@ function get_pretty_name($basename, $name, $mimetype)
}
return $name . '.' . $mimetype;
}
}
/**
* Read exif data from jpeg image file
*
* @param $file
* @return array
*/
function get_image_meta_data($file)
{
if(get_file_type_from_mimetype($file->getMimeType()) === 'jpeg') {
return exif_read_data($file);
}
}

View File

@@ -2,6 +2,7 @@
namespace App\Http\Requests\FileFunctions;
use App\Rules\MimetypeBlacklistValidation;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Facades\Auth;
@@ -26,7 +27,7 @@ class UploadRequest extends FormRequest
{
return [
'parent_id' => 'required|integer',
'file' => 'required|file',
'file' => ['required','file' , new MimetypeBlacklistValidation]
];
}
}

View File

@@ -46,7 +46,7 @@ class StoreUpgradeAccountRequest extends FormRequest
'plan.data.attributes.capacity' => 'required|digits_between:1,9',
'plan.data.attributes.capacity_formatted' => 'required|string',
'plan.data.attributes.currency' => 'required|string',
'plan.data.attributes.description' => 'required|string',
'plan.data.attributes.description' => 'sometimes|string|nullable',
'plan.data.attributes.name' => 'required|string',
'plan.data.attributes.price' => 'required|string',
'plan.data.id' => 'required|string',

View File

@@ -251,12 +251,26 @@ class Editor
$disk_file_name = basename('chunks/' . $file->getClientOriginalName(), '.part');
$temp_filename = $file->getClientOriginalName();
// Generate file
File::append(config('filesystems.disks.local.root') . '/chunks/' . $temp_filename, $file->get());
// File Path
$file_path = config('filesystems.disks.local.root') . '/chunks/' . $temp_filename;\
// Generate file
File::append($file_path, $file->get());
// Size of file
$file_size = File::size($file_path);
// Size of limit
$limit = get_setting('upload_limit');
// File size handling
if( $limit && $file_size > format_bytes($limit)) abort(413);
// If last then process file
if ($request->boolean('is_last')) {
$metadata = get_image_meta_data($file);
$disk_local = Storage::disk('local');
$unique_id = get_unique_id();
@@ -292,6 +306,7 @@ class Editor
'mimetype' => get_file_type_from_mimetype($file_mimetype),
'type' => get_file_type($file_mimetype),
'folder_id' => $request->parent_id,
'metadata' => $metadata,
'name' => $user_file_name,
'unique_id' => $unique_id,
'basename' => $disk_file_name,

View File

@@ -0,0 +1,42 @@
<?php
namespace App\Rules;
use Illuminate\Contracts\Validation\Rule;
class MimetypeBlacklistValidation implements Rule
{
/**
* Create a new rule instance.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
$mimetype_blacklist = explode(',' ,get_setting('mimetypes_blacklist'));
$file_mimetype = explode('/' ,$value->getMimeType());
return !array_intersect($file_mimetype , $mimetype_blacklist);
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
abort (415,'Type of this mime type is not allowed.');
}
}

View File

@@ -2,8 +2,8 @@
return [
'version' => '1.7.10',
'version' => '1.7.12',
// Define size of chunk uploaded by MB. E.g. integer 128 means chunk size will be 128MB.
'chunk_size' => env('CHUNK_SIZE', '128'),
];
];

View File

@@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddExifDataToFileManagerFilesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('file_manager_files', function (Blueprint $table) {
$table->longText('metadata')->after('type')->nullable();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('file_manager_files', function (Blueprint $table) {
//
});
}
}

View File

@@ -24,7 +24,7 @@
"lodash": "^4.17.20",
"node-sass": "^4.14.1",
"vee-validate": "^3.3.9",
"vue": "^2.6.10",
"vue": "^2.6.11",
"vue-feather-icons": "^5.1.0",
"vue-i18n": "^8.21.0",
"vue-router": "^3.4.3",

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

File diff suppressed because one or more lines are too long

2
public/js/main.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -5,7 +5,7 @@
*/
/*!
* vue-i18n v8.18.2
* vue-i18n v8.21.0
* (c) 2020 kazuya kawaguchi
* Released under the MIT License.
*/
@@ -17,7 +17,7 @@
*/
/**
* vee-validate v3.3.7
* vee-validate v3.3.9
* (c) 2020 Abdelrahman Awad
* @license MIT
*/

View File

@@ -1,66 +1,66 @@
{
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=adad12e7b42316bdd659",
"/js/main.js": "/js/main.js?id=5399021dab4b9f990f4d",
"/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js": "/chunks/files~chunks/shared-files~chunks/shared-page~chunks/trash.js?id=332a46c505c3e4f8a739",
"/js/main.js": "/js/main.js?id=768d27992eafd9795e69",
"/css/app.css": "/css/app.css?id=dbf49843b327d3936c06",
"/chunks/admin.js": "/chunks/admin.js?id=5bd95ece632ca142f035",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=b181a9ba45f475b9e004",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=f77c9be4514e7ab0ad0e",
"/chunks/app-billings.js": "/chunks/app-billings.js?id=24259b32506484062990",
"/chunks/app-email.js": "/chunks/app-email.js?id=471301be8d4dbb371fa0",
"/chunks/app-index.js": "/chunks/app-index.js?id=ded9a59aa4d4d8040637",
"/chunks/app-others.js": "/chunks/app-others.js?id=d1158ce36ac84d7fb317",
"/chunks/app-payments.js": "/chunks/app-payments.js?id=c4a896c3218713699b17",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=8499d3cb5a2c547d3d69",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=f8769c14859175aad49b",
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=410da17c566b388cb0a5",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=153e8ac7ba24a14f2e1a",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=9e9d35c199787d991445",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=4f379c21c8f1df14cda7",
"/chunks/database.js": "/chunks/database.js?id=99736b26537c8bb61a33",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=2e3af103d13536c50757",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=48fa8bb643132a82bdaa",
"/chunks/files.js": "/chunks/files.js?id=0a08eb40be8f2c511ded",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=a84f7a6d4e4e05af0701",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=54cf8dbd4d75fd0b2add",
"/chunks/invoices.js": "/chunks/invoices.js?id=c20b841c75005fdacde6",
"/chunks/landing-page.js": "/chunks/landing-page.js?id=b69d1af44673ddfb69d3",
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=286d18bed681c67e5330",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=2ff6bfeb6d9c43014d69",
"/chunks/pages.js": "/chunks/pages.js?id=49a51fc783d155aa8132",
"/chunks/plan.js": "/chunks/plan.js?id=bbea8c9e9f807d9cedc5",
"/chunks/plan-create.js": "/chunks/plan-create.js?id=0149731ddb88c33b066d",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=e63e243dccb487fa18f5",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=83517dd417b8641c60c8",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=26e1aabafdc06d069fa3",
"/chunks/plans.js": "/chunks/plans.js?id=0b1d2058ba59c955947b",
"/chunks/profile.js": "/chunks/profile.js?id=9e3ff146e95d8a719add",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=696427718c821f482c94",
"/chunks/settings.js": "/chunks/settings.js?id=51495831f7bbad060a00",
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=007277c68fce4a7ce5e9",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=82cbe975767641ad178e",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=6e9b879329675433551d",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=9f6fdc546cfa5f98796e",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=9716c15688051b9c9b20",
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=e4176c53674c2e6d440f",
"/chunks/admin.js": "/chunks/admin.js?id=bd7dce5ddfbb8ebeb7a8",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=ed4d3b5d0e9da3b70862",
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=046065efc4a67ad8587f",
"/chunks/app-billings.js": "/chunks/app-billings.js?id=0d1e25be91f67ffab63f",
"/chunks/app-email.js": "/chunks/app-email.js?id=b7a3bca09764ae780d6c",
"/chunks/app-index.js": "/chunks/app-index.js?id=e1544ff1341ca6416bab",
"/chunks/app-others.js": "/chunks/app-others.js?id=1396078f7c5e8fc929e4",
"/chunks/app-payments.js": "/chunks/app-payments.js?id=a1a84878ec6f645946f5",
"/chunks/app-settings.js": "/chunks/app-settings.js?id=424c67c7d7f6b9109a99",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=3ac1935129bff281257d",
"/chunks/billings-detail.js": "/chunks/billings-detail.js?id=e6434e402adec1cf8ba1",
"/chunks/contact-us.js": "/chunks/contact-us.js?id=fa10e7582a311ab12c1f",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=b33f6ac5e174f51a443b",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=a61fe2622dca51ca1396",
"/chunks/database.js": "/chunks/database.js?id=ac688c888342c5cf4c53",
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=08a0c2de8f93e0222600",
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=fb825f5ace1deeac3509",
"/chunks/files.js": "/chunks/files.js?id=bc21124b8956b99ab01f",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=9a8acda895c0c40ea30b",
"/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=59450c310fb5af95b9a1",
"/chunks/invoices.js": "/chunks/invoices.js?id=6dd9f68419f741465844",
"/chunks/landing-page.js": "/chunks/landing-page.js?id=4dbec1937d1f5b71d17d",
"/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=af1fa088daae3fe7a3a8",
"/chunks/page-edit.js": "/chunks/page-edit.js?id=30e6227554f2f26e0419",
"/chunks/pages.js": "/chunks/pages.js?id=8dc613c3a82637e99dc2",
"/chunks/plan.js": "/chunks/plan.js?id=6de54ce130dd2766f4c6",
"/chunks/plan-create.js": "/chunks/plan-create.js?id=efaeb3ebdf30ba62c613",
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=93b6dfdf61caa4335a7c",
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=d1457670c217e13e97f9",
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=fba30dc476ddcd0c4b22",
"/chunks/plans.js": "/chunks/plans.js?id=f03834c110c677b6db0d",
"/chunks/profile.js": "/chunks/profile.js?id=23e34e6d7d73abcf317d",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=f74384a387ce82e7751f",
"/chunks/settings.js": "/chunks/settings.js?id=a3b1c88c6b6af9b6308c",
"/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=543b594932039ef2b061",
"/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=b26452dbf79dcc6e2787",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=919f57ae52204ea5ee54",
"/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=4cb65919f0627c8f9db1",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=1a45b3cee17b17a7598d",
"/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=34e34dcb29cb84ab53bf",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=47090233afc7b0cdf855",
"/chunks/shared-files.js": "/chunks/shared-files.js?id=bc0b14705784b1ff6c82",
"/chunks/shared-page.js": "/chunks/shared-page.js?id=6c9bf5f496f4b8917fef",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=0c9fe096135be58283b6",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=eaa8bc2819a9cc19dbc7",
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=d384dddfe76d89164df3",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=d4434431a9c8fa3ffc2b",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=175f558c3e09887846a5",
"/chunks/trash.js": "/chunks/trash.js?id=e00ce8bde9ea638f5049",
"/chunks/upgrade.js": "/chunks/upgrade.js?id=03eccfa25c668325efd0",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=4921e1ce22bfdab9f014",
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=7b02fafcca0029762a66",
"/chunks/user.js": "/chunks/user.js?id=d842e0d6859c94caa23d",
"/chunks/user-create.js": "/chunks/user-create.js?id=4735bda3b876200f0511",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=cea21a2d091f1f02e179",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=b3f5d20c34a5b0bf9ff6",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=b73fa5a127374d1de1de",
"/chunks/user-password.js": "/chunks/user-password.js?id=466b113e32397b2f2f33",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=7e19cc06447c776ce504",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=45c971c8c4912d44bc42",
"/chunks/users.js": "/chunks/users.js?id=362b167df913626d3d92"
"/chunks/shared-files.js": "/chunks/shared-files.js?id=bb6943a620f520324003",
"/chunks/shared-page.js": "/chunks/shared-page.js?id=2414f43c0129d239b907",
"/chunks/sign-in.js": "/chunks/sign-in.js?id=a0e2b7e58484e778848b",
"/chunks/sign-up.js": "/chunks/sign-up.js?id=774e43bc25ae4e3893a2",
"/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=e3639ebc187c3e568a20",
"/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=24f8053a0d89684699ad",
"/chunks/subscription-service.js": "/chunks/subscription-service.js?id=e0c770e988a664a18f76",
"/chunks/trash.js": "/chunks/trash.js?id=1ee3dde0c9d1a700c7f2",
"/chunks/upgrade.js": "/chunks/upgrade.js?id=77386550d2ac446e4ac1",
"/chunks/upgrade-billing.js": "/chunks/upgrade-billing.js?id=8bc53a77111144319a0d",
"/chunks/upgrade-plan.js": "/chunks/upgrade-plan.js?id=06718f96dbec2820c6fc",
"/chunks/user.js": "/chunks/user.js?id=7af75cb8c2c899fec9d5",
"/chunks/user-create.js": "/chunks/user-create.js?id=8483ffcbd12c68856186",
"/chunks/user-delete.js": "/chunks/user-delete.js?id=406c10bd53f7d33d85a7",
"/chunks/user-detail.js": "/chunks/user-detail.js?id=32f97c1bd9d9137ba5f0",
"/chunks/user-invoices.js": "/chunks/user-invoices.js?id=cfef95004b9346be2c3e",
"/chunks/user-password.js": "/chunks/user-password.js?id=227291c743ecc58681a5",
"/chunks/user-storage.js": "/chunks/user-storage.js?id=2592e0d43a710c5b197f",
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=93f76f47f1f8c8c9425d",
"/chunks/users.js": "/chunks/users.js?id=960ae7b595d7b5d9394b"
}

File diff suppressed because it is too large Load Diff

View File

@@ -56,12 +56,17 @@
<CopyInput class="copy-sharelink" size="small" :value="fileInfoDetail.shared.link"/>
</div>
</ListInfoItem>
<ListInfoItem v-if="canShowMetaData" :title="$t('file_detail_meta.meta_data')">
<ImageMetaData />
</ListInfoItem>
</ListInfo>
</div>
</template>
<script>
import {Edit2Icon, LockIcon, UnlockIcon, ImageIcon, VideoIcon, FolderIcon, FileIcon} from 'vue-feather-icons'
import ImageMetaData from '@/components/FilesView/ImageMetaData'
import FilePreview from '@/components/FilesView/FilePreview'
import CopyInput from '@/components/Others/Forms/CopyInput'
import ListInfoItem from '@/components/Others/ListInfoItem'
@@ -72,6 +77,7 @@
export default {
name: 'FileInfoPanel',
components: {
ImageMetaData,
ListInfoItem,
ListInfo,
FilePreview,
@@ -88,26 +94,11 @@
...mapGetters(['fileInfoDetail', 'permissionOptions']),
fileType() {
return this.fileInfoDetail.type
/* switch () {
case 'folder':
return 'folder'
break;
case 'file':
return 'file'
break;
case 'image':
return 'file-image'
break;
case 'video':
return 'file-video'
break;
case 'file':
return 'file-audio'
break;
}*/
},
canShowMetaData() {
return this.fileInfoDetail.metadata && this.fileInfoDetail.metadata.ExifImageWidth
},
sharedInfo() {
// Get permission title
let title = this.permissionOptions.find(option => {
return option.value === this.fileInfoDetail.shared.permission

View File

@@ -22,15 +22,15 @@
<div class="icon-item">
<!--If is file or image, then link item-->
<span v-if="isFile" class="file-icon-text">
<span v-if="isFile || (isImage && !data.thumbnail)" class="file-icon-text">
{{ data.mimetype }}
</span>
<!--Folder thumbnail-->
<FontAwesomeIcon v-if="isFile" class="file-icon" icon="file"/>
<FontAwesomeIcon v-if="isFile || (isImage && !data.thumbnail)" class="file-icon" icon="file"/>
<!--Image thumbnail-->
<img v-if="isImage" class="image" :src="data.thumbnail" :alt="data.name"/>
<img loading="lazy" v-if="isImage && data.thumbnail" class="image" :src="data.thumbnail" :alt="data.name"/>
<!--Else show only folder icon-->
<FontAwesomeIcon v-if="isFolder" :class="{'is-deleted': isDeleted}" class="folder-icon" icon="folder"/>
@@ -198,21 +198,15 @@
goToItem() {
if (this.isImage || this.isVideo || this.isAudio) {
events.$emit('fileFullPreview:show')
}
if (this.isFile && !this.isPdf && !this.isVideo && !this.isAudio) {
this.$downloadFile(
this.data.file_url,
this.data.name + '.' + this.data.mimetype
)
}
if (this.isFolder) {
} else if (this.isFile || !this.isFolder && !this.isPdf && !this.isVideo && !this.isAudio && !this.isImage) {
this.$downloadFile(this.data.file_url, this.data.name + '.' + this.data.mimetype)
} else if (this.isFolder) {
if (this.$isThisLocation('public')) {
this.$store.dispatch('browseShared', [{folder: this.data, back: false, init: false}])
this.$store.dispatch('browseShared', [{ folder: this.data, back: false, init: false }])
} else {
this.$store.dispatch('getFolder', [{folder: this.data, back: false, init: false}])
this.$store.dispatch('getFolder', [{ folder: this.data, back: false, init: false }])
}
}
},

View File

@@ -16,15 +16,15 @@
<!--Thumbnail for item-->
<div class="icon-item">
<!--If is file or image, then link item-->
<span v-if="isFile" class="file-icon-text">
<span v-if="isFile || (isImage && !data.thumbnail)" class="file-icon-text">
{{ data.mimetype | limitCharacters }}
</span>
<!--Folder thumbnail-->
<FontAwesomeIcon v-if="isFile" class="file-icon" icon="file" />
<FontAwesomeIcon v-if="isFile || (isImage && !data.thumbnail)" class="file-icon" icon="file" />
<!--Image thumbnail-->
<img v-if="isImage" class="image" :src="data.thumbnail" :alt="data.name" />
<img loading="lazy" v-if="isImage && data.thumbnail" class="image" :src="data.thumbnail" :alt="data.name" />
<!--Else show only folder icon-->
<FontAwesomeIcon v-if="isFolder" :class="{ 'is-deleted': isDeleted }" class="folder-icon" icon="folder" />
@@ -181,13 +181,11 @@ export default {
goToItem() {
if (this.isImage || this.isVideo || this.isAudio) {
events.$emit('fileFullPreview:show')
}
if (this.isFile && !this.isPdf && !this.isVideo && !this.isAudio) {
} else if (this.isFile || !this.isFolder && !this.isPdf && !this.isVideo && !this.isAudio && !this.isImage) {
this.$downloadFile(this.data.file_url, this.data.name + '.' + this.data.mimetype)
}
if (this.isFolder) {
} else if (this.isFolder) {
if (this.$isThisLocation('public')) {
this.$store.dispatch('browseShared', [{ folder: this.data, back: false, init: false }])
} else {

View File

@@ -1,6 +1,6 @@
<template>
<div v-if="canBePreview" class="preview">
<img v-if="fileInfoDetail.type == 'image'" :src="fileInfoDetail.thumbnail" :alt="fileInfoDetail.name" />
<img v-if="fileInfoDetail.type == 'image' && fileInfoDetail.thumbnail" :src="fileInfoDetail.thumbnail" :alt="fileInfoDetail.name" />
<audio v-else-if="fileInfoDetail.type == 'audio'" :src="fileInfoDetail.file_url" controlsList="nodownload" controls></audio>
<video v-else-if="fileInfoDetail.type == 'video'" controlsList="nodownload" disablePictureInPicture playsinline controls>
<source :src="fileInfoDetail.file_url" type="video/mp4">

View File

@@ -0,0 +1,141 @@
<template>
<div>
<ul class="meta-data-list">
<li v-if="fileInfoDetail.metadata.DateTimeOriginal">
<span>{{ $t('file_detail_meta.time_data') }}</span>
<b>{{ fileInfoDetail.metadata.DateTimeOriginal }}</b>
</li>
<li v-if="fileInfoDetail.metadata.Artist">
<span>{{ $t('file_detail_meta.author') }}</span>
<b>{{ fileInfoDetail.metadata.Artist }}</b>
</li>
<li v-if="fileInfoDetail.metadata.ExifImageWidth && fileInfoDetail.metadata.ExifImageLength">
<span>{{ $t('file_detail_meta.dimension') }}</span>
<b>{{ fileInfoDetail.metadata.ExifImageWidth }}x{{ fileInfoDetail.metadata.ExifImageLength }}</b>
</li>
<li v-if="fileInfoDetail.metadata.XResolution && fileInfoDetail.metadata.YResolution">
<span>{{ $t('file_detail_meta.resolution') }}</span>
<b>{{ fileInfoDetail.metadata.XResolution }}x{{ fileInfoDetail.metadata.YResolution }}</b>
</li>
<li v-if="fileInfoDetail.metadata.ColorSpace">
<span> {{ $t('file_detail_meta.color_space') }}</span>
<b>{{ fileInfoDetail.metadata.ColorSpace}}</b>
</li>
<!--TODO: Colour profile:sRGB IEC61966-2.1-->
<li v-if="fileInfoDetail.metadata.Make">
<span>{{ $t('file_detail_meta.make') }}</span>
<b>{{ fileInfoDetail.metadata.Make }}</b>
</li>
<li v-if="fileInfoDetail.metadata.Model">
<span>{{ $t('file_detail_meta.model') }}</span>
<b>{{ fileInfoDetail.metadata.Model }}</b>
</li>
<li v-if="fileInfoDetail.metadata.ApertureValue">
<span>{{ $t('file_detail_meta.aperture_value') }}</span>
<b v-html="parseInt(fileInfoDetail.metadata.ApertureValue) / 100"></b>
</li>
<li v-if="fileInfoDetail.metadata.ExposureTime">
<span>{{ $t('file_detail_meta.exposure') }}</span>
<b>{{ fileInfoDetail.metadata.ExposureTime }}</b>
</li>
<li v-if="fileInfoDetail.metadata.FocalLength">
<span>{{ $t('file_detail_meta.focal') }}</span>
<b>{{ fileInfoDetail.metadata.FocalLength }}</b>
</li>
<li v-if="fileInfoDetail.metadata.ISOSpeedRatings">
<span>{{ $t('file_detail_meta.iso') }}</span>
<b>{{ fileInfoDetail.metadata.ISOSpeedRatings }}</b>
</li>
<li v-if="fileInfoDetail.metadata.COMPUTED.ApertureFNumber">
<span>{{ $t('file_detail_meta.aperature') }}</span>
<b>{{ fileInfoDetail.metadata.COMPUTED.ApertureFNumber }}</b>
</li>
<li v-if="fileInfoDetail.metadata.COMPUTED.CCDWidth">
<span>{{ $t('file_detail_meta.camera_lens') }}</span>
<b>{{ fileInfoDetail.metadata.COMPUTED.CCDWidth }}</b>
</li>
<li v-if="fileInfoDetail.metadata.GPSLongitude">
<span>{{ $t('file_detail_meta.longitude') }}</span>
<b>{{ formatGps(fileInfoDetail.metadata.GPSLongitude,fileInfoDetail.metadata.GPSLongitudeRef) }}</b>
</li>
<li v-if="fileInfoDetail.metadata.GPSLatitude">
<span>{{ $t('file_detail_meta.latitude') }}</span>
<b>{{ formatGps(fileInfoDetail.metadata.GPSLatitude, fileInfoDetail.metadata.GPSLatitudeRef) }}</b>
</li>
</ul>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
import {split} from 'lodash'
export default {
name: 'ImageMetaData',
computed: {
...mapGetters(['fileInfoDetail']),
},
methods: {
formatGps(location, ref) {
let data = []
location.forEach(location => {
data.push(split(location , '/' , 2)[0])
})
return `${data[0]}° ${data[1]}' ${data[2].substr(0,4) / 100}" ${ref} `
}
},
}
</script>
<style lang="scss" scoped>
@import '@assets/vue-file-manager/_variables';
@import '@assets/vue-file-manager/_mixins';
.meta-data-list {
list-style: none;
padding: 0px;
margin: 0px;
li {
display: flex;
justify-content: space-between;
padding: 9px 0;
border-bottom: 1px solid $light_mode_border;
b, span {
@include font-size(14);
color: $text;
}
}
}
@media (prefers-color-scheme: dark) {
.meta-data-list {
li {
border-color: $dark_mode_border_color;
b, span {
color: $dark_mode_text_primary !important;
}
}
}
}
</style>

View File

@@ -34,4 +34,10 @@
right: 0;
}
}
@media only screen and (max-width: 320px) {
.actions {
position: unset;
}
}
</style>

View File

@@ -35,6 +35,12 @@
}
}
@media only screen and (max-width: 320px) {
.popup-content {
position: unset;
}
}
@keyframes popup-in {
0% {
opacity: 0;

View File

@@ -134,6 +134,12 @@
}
}
@media only screen and (max-width: 320px){
.popup-wrapper {
overflow-y: auto;
}
}
@media (prefers-color-scheme: dark) {
.popup-wrapper {
background: $dark_mode_background;

View File

@@ -1,3 +1,4 @@
import i18n from '@/i18n/index'
import store from './store/index'
import {debounce, includes} from "lodash";
import {events} from './bus'
@@ -8,8 +9,10 @@ const Helpers = {
install(Vue) {
Vue.prototype.$updateText = debounce(function (route, name, value) {
let enableEmptyInput = ['mimetypes_blacklist' , 'google_analytics' , 'upload_limit']
if (value === '') return
if (value === '' && !enableEmptyInput.includes(name)) return
axios.post(this.$store.getters.api + route, {name, value, _method: 'patch'})
.catch(error => {
@@ -145,6 +148,10 @@ const Helpers = {
if (error.response.status === 500)
isNotGeneralError = false
//Break if mimetype of file is in blacklist or file size exceed upload limit
if(error.response.status === 415 || 413)
isNotGeneralError = false
// Show Error
if (attempts === 3)
this.$isSomethingWrong()
@@ -170,6 +177,8 @@ const Helpers = {
if (files.length == 0) return
if (!this.$checkFileMimetype(files) || !this.$checkUploadLimit(files)) return
this.$handleUploading(files, undefined)
}
@@ -273,6 +282,46 @@ const Helpers = {
message: this.$t('popup_error.message'),
})
}
Vue.prototype.$checkFileMimetype = function(files) {
let validated = true
let mimetypesBlacklist = store.getters.config.mimetypesBlacklist
for (let i = 0 ; i<files.length; i++ ) {
let fileType = files[i].type.split('/')
if(!fileType[0]) {
fileType[1] = _.last(files[i].name.split('.'))
}
if(mimetypesBlacklist.includes(fileType[1])) {
validated = false
events.$emit('alert:open', {
emoji: '😬😬😬',
title: i18n.t('popup_mimetypes_blacklist.title'),
message: i18n.t('popup_mimetypes_blacklist.message', {mimetype: fileType[1]}),
})
}
}
return validated
}
Vue.prototype.$checkUploadLimit = function (files) {
let uploadLimit = store.getters.config.uploadLimit
let validate = true
for (let i = 0 ; i<files.length; i++ ) {
if(uploadLimit != 0 && files[i].size > uploadLimit) {
validate = false
events.$emit('alert:open', {
emoji: '😟😟😟',
title: i18n.t('popup_upload_limit.title'),
message: i18n.t('popup_upload_limit.message', {uploadLimit: store.getters.config.uploadLimitFormatted}),
})
break
}
}
return validate
}
}
}

View File

@@ -208,6 +208,12 @@
"username_plac": "输入您的邮件用户名"
},
"others": {
"upload_limit": "Upload Limit",
"upload_limit_plac": "Type your upload limit in MB",
"upload_limit_help": "If you want to set max file size limit on single upload, add size of your limit in MB. E.g. 100 means 100 MB and 2 000 means 2 000 MB limit.",
"mimetypes_blacklist": "Mimetypes Blacklist",
"mimetypes_blacklist_plac":"Add mimetypes to Blacklist" ,
"mimetypes_blacklist_help" :"If you want to prevent upload some type of files, just add them to blacklist like this: x-php,mp3,jpeg <br/> Use a comma between each mimetype. Don't use a dot before mimetypes." ,
"section_cache": "Application Cache",
"cache_disclaimer": "Did you change anything in your .env file or change your stripe credentials? Then clear your cache.",
"cache_clear": "Clear Cache",
@@ -295,6 +301,24 @@
"size": "大小",
"where": "地址"
},
"file_detail_meta": {
"dimension": "Dimensions",
"resolution": "Resolution",
"color_space": "Color Space",
"aperture_value": "Aperture Value",
"meta_data": "Metadata",
"author": "Author",
"time_data": "Content Created",
"make": "Camera",
"model": "Model",
"camera_lens": "Camera Lens",
"aperature": "F Number",
"iso": "ISO",
"focal": "Focal Length",
"exposure": "Exposure Time",
"longitude": "Longitude",
"latitude": "Latitude"
},
"folder": {
"empty": "空的",
"item_counts": "{count} 个文件 | {count} 个文件"
@@ -473,6 +497,14 @@
},
"title": "选择付款方式"
},
"popup_upload_limit": {
"title": "You exceed upload limit on single file",
"message": "Size of your uploaded file exceed the upload limit ({uploadLimit})."
},
"popup_mimetypes_blacklist": {
"title": "You are trying to upload unsupported file type",
"message": "File of this type ({mimetype}) is not allowed to upload."
},
"popup_create_folder": {
"folder_default_name": "新文件夹",
"title": "请填入新文件夹名称"

View File

@@ -210,6 +210,12 @@
"username_plac": "Type your mail username"
},
"others": {
"upload_limit": "Upload Limit",
"upload_limit_plac": "Type your upload limit in MB",
"upload_limit_help": "If you want to set max file size limit on single upload, add size of your limit in MB. E.g. 100 means 100 MB and 2 000 means 2 000 MB limit.",
"mimetypes_blacklist": "Mimetypes Blacklist",
"mimetypes_blacklist_plac":"Add mimetypes to Blacklist" ,
"mimetypes_blacklist_help" :"If you want to prevent upload some type of files, just add them to blacklist like this: x-php,mp3,jpeg <br/> Use a comma between each mimetype. Don't use a dot before mimetypes." ,
"section_cache": "Application Cache",
"cache_disclaimer": "Did you change anything in your .env file or change your Stripe credentials? Then clear your cache.",
"cache_clear": "Clear Cache",
@@ -297,6 +303,24 @@
"size": "Size",
"where": "Where"
},
"file_detail_meta": {
"dimension": "Dimensions",
"resolution": "Resolution",
"color_space": "Color Space",
"aperture_value": "Aperture Value",
"meta_data": "Metadata",
"author": "Author",
"time_data": "Content Created",
"make": "Camera",
"model": "Model",
"camera_lens": "Camera Lens",
"aperature": "F Number",
"iso": "ISO",
"focal": "Focal Length",
"exposure": "Exposure Time",
"longitude": "Longitude",
"latitude": "Latitude"
},
"folder": {
"empty": "Empty",
"item_counts": "{count} Item | {count} Items"
@@ -475,6 +499,14 @@
},
"title": "Choose Payment Method"
},
"popup_upload_limit": {
"title": "You exceed upload limit on single file",
"message": "Size of your uploaded file exceed the upload limit ({uploadLimit})."
},
"popup_mimetypes_blacklist": {
"title": "You are trying to upload unsupported file type",
"message": "File of this type ({mimetype}) is not allowed to upload."
},
"popup_create_folder": {
"folder_default_name": "New Folder",
"title": "Please enter your new folder name"

View File

@@ -210,6 +210,12 @@
"username_plac": "Zadajte svoje používateľské meno pre poštu"
},
"others": {
"upload_limit": "Limit nahrávania",
"upload_limit_plac": "Pridajte veľkosť limitu v MB",
"upload_limit_help": "Ak chcete nastaviť limit pre nahrávane jedneho súboru, pridajte veľkosť vášho limitu v MB.",
"mimetypes_blacklist": "Čierna listina mimetypov",
"mimetypes_blacklist_plac":"Pridajte mimetypy do Čiernej listiny",
"mimetypes_blacklist_help" :"Ak chcete zakázať nahrávanie niektorých typov súborov, jednoducho ich pridajte na čiernu listinu, príklad: x-php, mp3, jpeg <br/> Medzi mimetypmi použite čiarku. Nevkladajte bodku pred mimetyp." ,
"section_cache": "Aplikačná pamäť",
"cache_disclaimer": "Zmenili ste niečo v .env súbore alebo ste zmenili Stripe poverenia? Vymažte aplikačnú pamäť.",
"cache_clear": "Vymazať aplikačnú pamäť",
@@ -297,6 +303,24 @@
"size": "Veľkosť",
"where": "Umiestnenie"
},
"file_detail_meta": {
"dimension": "Dimenzie",
"resolution": "Rozlíšenie",
"color_space": "Farebný priestor",
"aperture_value": "Hodnota clony",
"meta_data": "Metadata",
"author": "Autor",
"time_data": "Obsah vytvorený",
"make": "Fotoaparát",
"model": "Model",
"camera_lens": "Objektív fotoaparátu",
"aperature": "Clona",
"iso": "ISO",
"focal": "Ohnisková vzdialenosť",
"exposure": "Doba expozície",
"longitude": "Zemepisná dĺžka",
"latitude": "Zemepisná šírka"
},
"folder": {
"empty": "Prázdne",
"item_counts": "{count} Položka | {count} Položky"
@@ -475,6 +499,14 @@
},
"title": "Vyberte si metódu platby"
},
"popup_upload_limit": {
"title": "Je nám to ľúto",
"message": "Veľkosť nahravaného súboru prekročila limit pre nahraávane súbory ({uploadLimit})"
},
"popup_mimetypes_blacklist": {
"title": "Ospravedlňujeme sa",
"message": "Nieje povolené nahrávať tento typ súboru ({mimetype})."
},
"popup_create_folder": {
"folder_default_name": "Nový priečinok",
"title": "Prosím, vložte názov nového priečinka"

View File

@@ -610,7 +610,7 @@ const routesIndex = [
name: 'SaaSLandingPage',
path: '/',
component: () =>
import(/* webpackChunkName: "chunks/landing-page" */ './views/index/SaaSLandingPage'),
import(/* webpackChunkName: "chunks/landing-page" */ './views/Index/SaaSLandingPage'),
meta: {
requiresAuth: false
},
@@ -674,4 +674,4 @@ router.beforeEach((to, from, next) => {
}
})
export default router
export default router

View File

@@ -293,6 +293,548 @@ const defaultState = {
value: 168,
},
],
currencyList: [
{
label: 'USD - United States Dollar',
value: 'USD',
},
{
label: 'EUR - Euro',
value: 'EUR',
},
{
label: 'GBP - British Pound',
value: 'GBP',
},
{
label: 'AFN - Afghan Afghani',
value: 'AFN',
},
{
label: 'ALL - Albanian Lek',
value: 'ALL',
},
{
label: 'DZD - Algerian Dinar',
value: 'DZD',
},
{
label: 'AOA - Angolan Kwanza',
value: 'AOA',
},
{
label: 'ARS - Argentine Peso',
value: 'ARS',
},
{
label: 'AMD - Armenian Dram',
value: 'AMD',
},
{
label: 'AWG - Aruban Florin',
value: 'AWG',
},
{
label: 'AUD - Australian Dollar',
value: 'AUD',
},
{
label: 'AZN - Azerbaijani Manat',
value: 'AZN',
},
{
label: 'BDT - Bangladeshi Taka',
value: 'BDT',
},
{
label: 'BBD - Barbadian Dollar',
value: 'BBD',
},
{
label: 'BZD - Belize Dollar',
value: 'BZD',
},
{
label: 'BMD - Bermudian Dollar',
value: 'BMD',
},
{
label: 'BOB - Bolivian Boliviano',
value: 'BOB',
},
{
label: 'BAM - Bosnia & Herzegovina Convertible Mark',
value: 'BAM',
},
{
label: 'BWP - Botswana Pula',
value: 'BWP',
},
{
label: 'BRL - Brazilian Real',
value: 'BRL',
},
{
label: 'BND - Brunei Dollar',
value: 'BND',
},
{
label: 'BGN - Bulgarian Lev',
value: 'BGN',
},
{
label: 'BIF - Burundian Franc',
value: 'BIF',
},
{
label: 'KHR - Cambodian Riel',
value: 'KHR',
},
{
label: 'CAD - Canadian Dollar',
value: 'CAD',
},
{
label: 'CVE - Cape Verdean Escudo',
value: 'CVE',
},
{
label: 'KYD - Cayman Islands Dollar',
value: 'KYD',
},
{
label: 'XAF - Central African Cfa Franc',
value: 'XAF',
},
{
label: 'XPF - Cfp Franc',
value: 'XPF',
},
{
label: 'CLP - Chilean Peso',
value: 'CLP',
},
{
label: 'CNY - Chinese Renminbi Yuan',
value: 'CNY',
},
{
label: 'COP - Colombian Peso',
value: 'COP',
},
{
label: 'KMF - Comorian Franc',
value: 'KMF',
},
{
label: 'CDF - Congolese Franc',
value: 'CDF',
},
{
label: 'CRC - Costa Rican Colón',
value: 'CRC',
},
{
label: 'HRK - Croatian Kuna',
value: 'HRK',
},
{
label: 'CZK - Czech Koruna',
value: 'CZK',
},
{
label: 'DKK - Danish Krone',
value: 'DKK',
},
{
label: 'DJF - Djiboutian Franc',
value: 'DJF',
},
{
label: 'DOP - Dominican Peso',
value: 'DOP',
},
{
label: 'XCD - East Caribbean Dollar',
value: 'XCD',
},
{
label: 'EGP - Egyptian Pound',
value: 'EGP',
},
{
label: 'ETB - Ethiopian Birr',
value: 'ETB',
},
{
label: 'FKP - Falkland Islands Pound',
value: 'FKP',
},
{
label: 'FJD - Fijian Dollar',
value: 'FJD',
},
{
label: 'GMD - Gambian Dalasi',
value: 'GMD',
},
{
label: 'GEL - Georgian Lari',
value: 'GEL',
},
{
label: 'GIP - Gibraltar Pound',
value: 'GIP',
},
{
label: 'GTQ - Guatemalan Quetzal',
value: 'GTQ',
},
{
label: 'GNF - Guinean Franc',
value: 'GNF',
},
{
label: 'GYD - Guyanese Dollar',
value: 'GYD',
},
{
label: 'HTG - Haitian Gourde',
value: 'HTG',
},
{
label: 'HNL - Honduran Lempira',
value: 'HNL',
},
{
label: 'HKD - Hong Kong Dollar',
value: 'HKD',
},
{
label: 'HUF - Hungarian Forint',
value: 'HUF',
},
{
label: 'ISK - Icelandic Króna',
value: 'ISK',
},
{
label: 'INR - Indian Rupee',
value: 'INR',
},
{
label: 'IDR - Indonesian Rupiah',
value: 'IDR',
},
{
label: 'ILS - Israeli New Sheqel',
value: 'ILS',
},
{
label: 'JMD - Jamaican Dollar',
value: 'JMD',
},
{
label: 'JPY - Japanese Yen',
value: 'JPY',
},
{
label: 'KZT - Kazakhstani Tenge',
value: 'KZT',
},
{
label: 'KES - Kenyan Shilling',
value: 'KES',
},
{
label: 'KGS - Kyrgyzstani Som',
value: 'KGS',
},
{
label: 'LAK - Lao Kip',
value: 'LAK',
},
{
label: 'LBP - Lebanese Pound',
value: 'LBP',
},
{
label: 'LSL - Lesotho Loti',
value: 'LSL',
},
{
label: 'LRD - Liberian Dollar',
value: 'LRD',
},
{
label: 'MOP - Macanese Pataca',
value: 'MOP',
},
{
label: 'MKD - Macedonian Denar',
value: 'MKD',
},
{
label: 'MGA - Malagasy Ariary',
value: 'MGA',
},
{
label: 'MWK - Malawian Kwacha',
value: 'MWK',
},
{
label: 'MYR - Malaysian Ringgit',
value: 'MYR',
},
{
label: 'MVR - Maldivian Rufiyaa',
value: 'MVR',
},
{
label: 'MRO - Mauritanian Ouguiya',
value: 'MRO',
},
{
label: 'MUR - Mauritian Rupee',
value: 'MUR',
},
{
label: 'MXN - Mexican Peso',
value: 'MXN',
},
{
label: 'MDL - Moldovan Leu',
value: 'MDL',
},
{
label: 'MNT - Mongolian Tögrög',
value: 'MNT',
},
{
label: 'MAD - Moroccan Dirham',
value: 'MAD',
},
{
label: 'MZN - Mozambican Metical',
value: 'MZN',
},
{
label: 'MMK - Myanmar Kyat',
value: 'MMK',
},
{
label: 'NAD - Namibian Dollar',
value: 'NAD',
},
{
label: 'NPR - Nepalese Rupee',
value: 'NPR',
},
{
label: 'ANG - Netherlands Antillean Gulden',
value: 'ANG',
},
{
label: 'TWD - New Taiwan Dollar',
value: 'TWD',
},
{
label: 'NZD - New Zealand Dollar',
value: 'NZD',
},
{
label: 'NIO - Nicaraguan Córdoba',
value: 'NIO',
},
{
label: 'NGN - Nigerian Naira',
value: 'NGN',
},
{
label: 'NOK - Norwegian Krone',
value: 'NOK',
},
{
label: 'PKR - Pakistani Rupee',
value: 'PKR',
},
{
label: 'PAB - Panamanian Balboa',
value: 'PAB',
},
{
label: 'PGK - Papua New Guinean Kina',
value: 'PGK',
},
{
label: 'PYG - Paraguayan Guaraní',
value: 'PYG',
},
{
label: 'PEN - Peruvian Nuevo Sol',
value: 'PEN',
},
{
label: 'PHP - Philippine Peso',
value: 'PHP',
},
{
label: 'PLN - Polish Złoty',
value: 'PLN',
},
{
label: 'QAR - Qatari Riyal',
value: 'QAR',
},
{
label: 'RON - Romanian Leu',
value: 'RON',
},
{
label: 'RUB - Russian Ruble',
value: 'RUB',
},
{
label: 'RWF - Rwandan Franc',
value: 'RWF',
},
{
label: 'STD - São Tomé and Príncipe Dobra',
value: 'STD',
},
{
label: 'SHP - Saint Helenian Pound',
value: 'SHP',
},
{
label: 'SVC - Salvadoran Colón',
value: 'SVC',
},
{
label: 'WST - Samoan Tala',
value: 'WST',
},
{
label: 'SAR - Saudi Riyal',
value: 'SAR',
},
{
label: 'RSD - Serbian Dinar',
value: 'RSD',
},
{
label: 'SCR - Seychellois Rupee',
value: 'SCR',
},
{
label: 'SLL - Sierra Leonean Leone',
value: 'SLL',
},
{
label: 'SGD - Singapore Dollar',
value: 'SGD',
},
{
label: 'SBD - Solomon Islands Dollar',
value: 'SBD',
},
{
label: 'SOS - Somali Shilling',
value: 'SOS',
},
{
label: 'ZAR - South African Rand',
value: 'ZAR',
},
{
label: 'KRW - South Korean Won',
value: 'KRW',
},
{
label: 'LKR - Sri Lankan Rupee',
value: 'LKR',
},
{
label: 'SRD - Surinamese Dollar',
value: 'SRD',
},
{
label: 'SZL - Swazi Lilangeni',
value: 'SZL',
},
{
label: 'SEK - Swedish Krona',
value: 'SEK',
},
{
label: 'CHF - Swiss Franc',
value: 'CHF',
},
{
label: 'TJS - Tajikistani Somoni',
value: 'TJS',
},
{
label: 'TZS - Tanzanian Shilling',
value: 'TZS',
},
{
label: 'THB - Thai Baht',
value: 'THB',
},
{
label: 'TOP - Tongan Paʻanga',
value: 'TOP',
},
{
label: 'TTD - Trinidad and Tobago Dollar',
value: 'TTD',
},
{
label: 'TRY - Turkish Lira',
value: 'TRY',
},
{
label: 'UGX - Ugandan Shilling',
value: 'UGX',
},
{
label: 'UAH - Ukrainian Hryvnia',
value: 'UAH',
},
{
label: 'AED - United Arab Emirates Dirham',
value: 'AED',
},
{
label: 'UYU - Uruguayan Peso',
value: 'UYU',
},
{
label: 'UZS - Uzbekistani Som',
value: 'UZS',
},
{
label: 'VUV - Vanuatu Vatu',
value: 'VUV',
},
{
label: 'VND - Vietnamese Đồng',
value: 'VND',
},
{
label: 'XOF - West African Cfa Franc',
value: 'XOF',
},
{
label: 'YER - Yemeni Rial',
value: 'YER',
},
{
label: 'ZMW - Zambian Kwacha',
value: 'ZMW',
},
],
}
const actions = {
changePreviewType: ({commit, state}) => {
@@ -353,6 +895,7 @@ const getters = {
expirationList: state => state.expirationList,
homeDirectory: state => state.homeDirectory,
requestedPlan: state => state.requestedPlan,
currencyList: state => state.currencyList,
countries: state => state.countries,
api: state => state.config.api,
config: state => state.config,

View File

@@ -117,16 +117,23 @@ const actions = {
switch (error.response.status) {
case 423:
events.$emit('alert:open', {
emoji: '😬',
emoji: '😬😬😬',
title: i18n.t('popup_exceed_limit.title'),
message: i18n.t('popup_exceed_limit.message')
})
break;
case 415:
events.$emit('alert:open', {
emoji: '😬😬😬',
title: i18n.t('popup_mimetypes_blacklist.title'),
message: i18n.t('popup_mimetypes_blacklist.message')
})
break;
case 413:
events.$emit('alert:open', {
emoji: '😟',
title: i18n.t('popup_paylod_error.title'),
message: i18n.t('popup_paylod_error.message')
emoji: '😟😟😟',
title: i18n.t('popup_upload_limit.title'),
message: i18n.t('popup_upload_limit.message', {uploadLimit: getters.config.uploadLimitFormatted})
})
break;
default:

View File

@@ -2,7 +2,7 @@
<PageTab :is-loading="isLoading" class="form-fixed-width">
<!--Personal Information-->
<PageTabGroup v-if="! isLoading">
<PageTabGroup v-if="app">
<div class="form block-form">
<FormLabel>{{ $t('admin_settings.appearance.section_general') }}</FormLabel>
@@ -85,13 +85,7 @@
data() {
return {
isLoading: true,
app: {
logo_horizontal: undefined,
favicon: undefined,
logo: undefined,
description: '',
title: '',
},
app: undefined,
}
},
mounted() {
@@ -101,11 +95,13 @@
}
})
.then(response => {
this.app.logo_horizontal = response.data.app_logo_horizontal
this.app.description = response.data.app_description
this.app.favicon = response.data.app_favicon
this.app.title = response.data.app_title
this.app.logo = response.data.app_logo
this.app = {
logo_horizontal: response.data.app_logo_horizontal,
description: response.data.app_description,
favicon: response.data.app_favicon,
title: response.data.app_title,
logo: response.data.app_logo,
}
})
.finally(() => {
this.isLoading = false

View File

@@ -2,7 +2,7 @@
<PageTab :is-loading="isLoading" class="form-fixed-width">
<!--Personal Information-->
<PageTabGroup>
<PageTabGroup v-if="billingInformation">
<div class="form block-form">
<FormLabel>{{ $t('admin_settings.billings.section_company') }}</FormLabel>
@@ -105,6 +105,7 @@
import InfoBox from '@/components/Others/Forms/InfoBox'
import {required} from 'vee-validate/dist/rules'
import axios from 'axios'
import { mapGetters } from 'vuex'
export default {
name: 'AppAppearance',
@@ -122,264 +123,13 @@
PageTab,
InfoBox,
},
computed: {
...mapGetters(['countries']),
},
data() {
return {
isLoading: true,
countries: [
{label: 'Afghanistan', value: 'AF'},
{label: 'Åland Islands', value: 'AX'},
{label: 'Albania', value: 'AL'},
{label: 'Algeria', value: 'DZ'},
{label: 'American Samoa', value: 'AS'},
{label: 'AndorrA', value: 'AD'},
{label: 'Angola', value: 'AO'},
{label: 'Anguilla', value: 'AI'},
{label: 'Antarctica', value: 'AQ'},
{label: 'Antigua and Barbuda', value: 'AG'},
{label: 'Argentina', value: 'AR'},
{label: 'Armenia', value: 'AM'},
{label: 'Aruba', value: 'AW'},
{label: 'Australia', value: 'AU'},
{label: 'Austria', value: 'AT'},
{label: 'Azerbaijan', value: 'AZ'},
{label: 'Bahamas', value: 'BS'},
{label: 'Bahrain', value: 'BH'},
{label: 'Bangladesh', value: 'BD'},
{label: 'Barbados', value: 'BB'},
{label: 'Belarus', value: 'BY'},
{label: 'Belgium', value: 'BE'},
{label: 'Belize', value: 'BZ'},
{label: 'Benin', value: 'BJ'},
{label: 'Bermuda', value: 'BM'},
{label: 'Bhutan', value: 'BT'},
{label: 'Bolivia', value: 'BO'},
{label: 'Bosnia and Herzegovina', value: 'BA'},
{label: 'Botswana', value: 'BW'},
{label: 'Bouvet Island', value: 'BV'},
{label: 'Brazil', value: 'BR'},
{label: 'British Indian Ocean Territory', value: 'IO'},
{label: 'Brunei Darussalam', value: 'BN'},
{label: 'Bulgaria', value: 'BG'},
{label: 'Burkina Faso', value: 'BF'},
{label: 'Burundi', value: 'BI'},
{label: 'Cambodia', value: 'KH'},
{label: 'Cameroon', value: 'CM'},
{label: 'Canada', value: 'CA'},
{label: 'Cape Verde', value: 'CV'},
{label: 'Cayman Islands', value: 'KY'},
{label: 'Central African Republic', value: 'CF'},
{label: 'Chad', value: 'TD'},
{label: 'Chile', value: 'CL'},
{label: 'China', value: 'CN'},
{label: 'Christmas Island', value: 'CX'},
{label: 'Cocos (Keeling) Islands', value: 'CC'},
{label: 'Colombia', value: 'CO'},
{label: 'Comoros', value: 'KM'},
{label: 'Congo', value: 'CG'},
{label: 'Congo, The Democratic Republic of the', value: 'CD'},
{label: 'Cook Islands', value: 'CK'},
{label: 'Costa Rica', value: 'CR'},
{label: 'Cote D\'Ivoire', value: 'CI'},
{label: 'Croatia', value: 'HR'},
{label: 'Cuba', value: 'CU'},
{label: 'Cyprus', value: 'CY'},
{label: 'Czech Republic', value: 'CZ'},
{label: 'Denmark', value: 'DK'},
{label: 'Djibouti', value: 'DJ'},
{label: 'Dominica', value: 'DM'},
{label: 'Dominican Republic', value: 'DO'},
{label: 'Ecuador', value: 'EC'},
{label: 'Egypt', value: 'EG'},
{label: 'El Salvador', value: 'SV'},
{label: 'Equatorial Guinea', value: 'GQ'},
{label: 'Eritrea', value: 'ER'},
{label: 'Estonia', value: 'EE'},
{label: 'Ethiopia', value: 'ET'},
{label: 'Falkland Islands (Malvinas)', value: 'FK'},
{label: 'Faroe Islands', value: 'FO'},
{label: 'Fiji', value: 'FJ'},
{label: 'Finland', value: 'FI'},
{label: 'France', value: 'FR'},
{label: 'French Guiana', value: 'GF'},
{label: 'French Polynesia', value: 'PF'},
{label: 'French Southern Territories', value: 'TF'},
{label: 'Gabon', value: 'GA'},
{label: 'Gambia', value: 'GM'},
{label: 'Georgia', value: 'GE'},
{label: 'Germany', value: 'DE'},
{label: 'Ghana', value: 'GH'},
{label: 'Gibraltar', value: 'GI'},
{label: 'Greece', value: 'GR'},
{label: 'Greenland', value: 'GL'},
{label: 'Grenada', value: 'GD'},
{label: 'Guadeloupe', value: 'GP'},
{label: 'Guam', value: 'GU'},
{label: 'Guatemala', value: 'GT'},
{label: 'Guernsey', value: 'GG'},
{label: 'Guinea', value: 'GN'},
{label: 'Guinea-Bissau', value: 'GW'},
{label: 'Guyana', value: 'GY'},
{label: 'Haiti', value: 'HT'},
{label: 'Heard Island and Mcdonald Islands', value: 'HM'},
{label: 'Holy See (Vatican City State)', value: 'VA'},
{label: 'Honduras', value: 'HN'},
{label: 'Hong Kong', value: 'HK'},
{label: 'Hungary', value: 'HU'},
{label: 'Iceland', value: 'IS'},
{label: 'India', value: 'IN'},
{label: 'Indonesia', value: 'ID'},
{label: 'Iran, Islamic Republic Of', value: 'IR'},
{label: 'Iraq', value: 'IQ'},
{label: 'Ireland', value: 'IE'},
{label: 'Isle of Man', value: 'IM'},
{label: 'Israel', value: 'IL'},
{label: 'Italy', value: 'IT'},
{label: 'Jamaica', value: 'JM'},
{label: 'Japan', value: 'JP'},
{label: 'Jersey', value: 'JE'},
{label: 'Jordan', value: 'JO'},
{label: 'Kazakhstan', value: 'KZ'},
{label: 'Kenya', value: 'KE'},
{label: 'Kiribati', value: 'KI'},
{label: 'Korea, Democratic People\'S Republic of', value: 'KP'},
{label: 'Korea, Republic of', value: 'KR'},
{label: 'Kuwait', value: 'KW'},
{label: 'Kyrgyzstan', value: 'KG'},
{label: 'Lao People\'S Democratic Republic', value: 'LA'},
{label: 'Latvia', value: 'LV'},
{label: 'Lebanon', value: 'LB'},
{label: 'Lesotho', value: 'LS'},
{label: 'Liberia', value: 'LR'},
{label: 'Libyan Arab Jamahiriya', value: 'LY'},
{label: 'Liechtenstein', value: 'LI'},
{label: 'Lithuania', value: 'LT'},
{label: 'Luxembourg', value: 'LU'},
{label: 'Macao', value: 'MO'},
{label: 'Macedonia, The Former Yugoslav Republic of', value: 'MK'},
{label: 'Madagascar', value: 'MG'},
{label: 'Malawi', value: 'MW'},
{label: 'Malaysia', value: 'MY'},
{label: 'Maldives', value: 'MV'},
{label: 'Mali', value: 'ML'},
{label: 'Malta', value: 'MT'},
{label: 'Marshall Islands', value: 'MH'},
{label: 'Martinique', value: 'MQ'},
{label: 'Mauritania', value: 'MR'},
{label: 'Mauritius', value: 'MU'},
{label: 'Mayotte', value: 'YT'},
{label: 'Mexico', value: 'MX'},
{label: 'Micronesia, Federated States of', value: 'FM'},
{label: 'Moldova, Republic of', value: 'MD'},
{label: 'Monaco', value: 'MC'},
{label: 'Mongolia', value: 'MN'},
{label: 'Montserrat', value: 'MS'},
{label: 'Morocco', value: 'MA'},
{label: 'Mozambique', value: 'MZ'},
{label: 'Myanmar', value: 'MM'},
{label: 'Namibia', value: 'NA'},
{label: 'Nauru', value: 'NR'},
{label: 'Nepal', value: 'NP'},
{label: 'Netherlands', value: 'NL'},
{label: 'Netherlands Antilles', value: 'AN'},
{label: 'New Caledonia', value: 'NC'},
{label: 'New Zealand', value: 'NZ'},
{label: 'Nicaragua', value: 'NI'},
{label: 'Niger', value: 'NE'},
{label: 'Nigeria', value: 'NG'},
{label: 'Niue', value: 'NU'},
{label: 'Norfolk Island', value: 'NF'},
{label: 'Northern Mariana Islands', value: 'MP'},
{label: 'Norway', value: 'NO'},
{label: 'Oman', value: 'OM'},
{label: 'Pakistan', value: 'PK'},
{label: 'Palau', value: 'PW'},
{label: 'Palestinian Territory, Occupied', value: 'PS'},
{label: 'Panama', value: 'PA'},
{label: 'Papua New Guinea', value: 'PG'},
{label: 'Paraguay', value: 'PY'},
{label: 'Peru', value: 'PE'},
{label: 'Philippines', value: 'PH'},
{label: 'Pitcairn', value: 'PN'},
{label: 'Poland', value: 'PL'},
{label: 'Portugal', value: 'PT'},
{label: 'Puerto Rico', value: 'PR'},
{label: 'Qatar', value: 'QA'},
{label: 'Reunion', value: 'RE'},
{label: 'Romania', value: 'RO'},
{label: 'Russian Federation', value: 'RU'},
{label: 'RWANDA', value: 'RW'},
{label: 'Saint Helena', value: 'SH'},
{label: 'Saint Kitts and Nevis', value: 'KN'},
{label: 'Saint Lucia', value: 'LC'},
{label: 'Saint Pierre and Miquelon', value: 'PM'},
{label: 'Saint Vincent and the Grenadines', value: 'VC'},
{label: 'Samoa', value: 'WS'},
{label: 'San Marino', value: 'SM'},
{label: 'Sao Tome and Principe', value: 'ST'},
{label: 'Saudi Arabia', value: 'SA'},
{label: 'Senegal', value: 'SN'},
{label: 'Serbia and Montenegro', value: 'CS'},
{label: 'Seychelles', value: 'SC'},
{label: 'Sierra Leone', value: 'SL'},
{label: 'Singapore', value: 'SG'},
{label: 'Slovakia', value: 'SK'},
{label: 'Slovenia', value: 'SI'},
{label: 'Solomon Islands', value: 'SB'},
{label: 'Somalia', value: 'SO'},
{label: 'South Africa', value: 'ZA'},
{label: 'South Georgia and the South Sandwich Islands', value: 'GS'},
{label: 'Spain', value: 'ES'},
{label: 'Sri Lanka', value: 'LK'},
{label: 'Sudan', value: 'SD'},
{label: 'Suriname', value: 'SR'},
{label: 'Svalbard and Jan Mayen', value: 'SJ'},
{label: 'Swaziland', value: 'SZ'},
{label: 'Sweden', value: 'SE'},
{label: 'Switzerland', value: 'CH'},
{label: 'Syrian Arab Republic', value: 'SY'},
{label: 'Taiwan, Province of China', value: 'TW'},
{label: 'Tajikistan', value: 'TJ'},
{label: 'Tanzania, United Republic of', value: 'TZ'},
{label: 'Thailand', value: 'TH'},
{label: 'Timor-Leste', value: 'TL'},
{label: 'Togo', value: 'TG'},
{label: 'Tokelau', value: 'TK'},
{label: 'Tonga', value: 'TO'},
{label: 'Trinidad and Tobago', value: 'TT'},
{label: 'Tunisia', value: 'TN'},
{label: 'Turkey', value: 'TR'},
{label: 'Turkmenistan', value: 'TM'},
{label: 'Turks and Caicos Islands', value: 'TC'},
{label: 'Tuvalu', value: 'TV'},
{label: 'Uganda', value: 'UG'},
{label: 'Ukraine', value: 'UA'},
{label: 'United Arab Emirates', value: 'AE'},
{label: 'United Kingdom', value: 'GB'},
{label: 'United States', value: 'US'},
{label: 'United States Minor Outlying Islands', value: 'UM'},
{label: 'Uruguay', value: 'UY'},
{label: 'Uzbekistan', value: 'UZ'},
{label: 'Vanuatu', value: 'VU'},
{label: 'Venezuela', value: 'VE'},
{label: 'Viet Nam', value: 'VN'},
{label: 'Virgin Islands, British', value: 'VG'},
{label: 'Virgin Islands, U.S.', value: 'VI'},
{label: 'Wallis and Futuna', value: 'WF'},
{label: 'Western Sahara', value: 'EH'},
{label: 'Yemen', value: 'YE'},
{label: 'Zambia', value: 'ZM'},
{label: 'Zimbabwe', value: 'ZW'}
],
billingInformation: {
billing_phone_number: '',
billing_postal_code: '',
billing_vat_number: '',
billing_address: '',
billing_country: '',
billing_state: '',
billing_city: '',
billing_name: '',
}
billingInformation: undefined
}
},
mounted() {
@@ -391,14 +141,17 @@
.then(response => {
this.isLoading = false
this.billingInformation.billing_phone_number = response.data.billing_phone_number
this.billingInformation.billing_postal_code = response.data.billing_postal_code
this.billingInformation.billing_vat_number = response.data.billing_vat_number
this.billingInformation.billing_address = response.data.billing_address
this.billingInformation.billing_country = response.data.billing_country
this.billingInformation.billing_state = response.data.billing_state
this.billingInformation.billing_city = response.data.billing_city
this.billingInformation.billing_name = response.data.billing_name
this.billingInformation = {
billing_phone_number: response.data.billing_phone_number,
billing_postal_code: response.data.billing_postal_code,
billing_vat_number: response.data.billing_vat_number,
billing_address: response.data.billing_address,
billing_country: response.data.billing_country,
billing_state: response.data.billing_state,
billing_city: response.data.billing_city,
billing_name: response.data.billing_name,
}
})
}
}

View File

@@ -2,7 +2,7 @@
<PageTab :is-loading="isLoading" class="form-fixed-width">
<!--Personal Information-->
<PageTabGroup>
<PageTabGroup v-if="app">
<div class="form block-form">
<FormLabel>
{{ $t('admin_settings.others.section_user') }}
@@ -80,6 +80,24 @@
</ValidationProvider>
</div>
<div class="block-wrapper">
<label>{{ $t('admin_settings.others.mimetypes_blacklist') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Mimetypes Blacklist" v-slot="{ errors }">
<textarea rows="2" @input="$updateText('/settings', 'mimetypes_blacklist', app.mimetypesBlacklist)" v-model="app.mimetypesBlacklist" :placeholder="$t('admin_settings.others.mimetypes_blacklist_plac')" type="text" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
<small class="input-help" v-html="$t('admin_settings.others.mimetypes_blacklist_help')"></small>
</div>
<div class="block-wrapper">
<label>{{ $t('admin_settings.others.upload_limit') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Upload Limit" v-slot="{ errors }">
<input @input="$updateText('/settings', 'upload_limit', app.uploadLimit)" v-model="app.uploadLimit" :placeholder="$t('admin_settings.others.upload_limit_plac')" type="number" min="0" step="1" :class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>
<small class="input-help" v-html="$t('admin_settings.others.upload_limit_help')"></small>
</div>
<FormLabel class="mt-70">
{{ $t('admin_settings.others.section_cache') }}
</FormLabel>
@@ -131,13 +149,7 @@
return {
isLoading: true,
isFlushingCache: false,
app: {
contactMail: '',
googleAnalytics: '',
defaultStorage: '',
userRegistration: 1,
storageLimitation: 1,
},
app: undefined,
}
},
methods: {
@@ -160,17 +172,21 @@
mounted() {
axios.get('/api/settings', {
params: {
column: 'contact_email|google_analytics|storage_default|registration|storage_limitation'
column: 'contact_email|google_analytics|storage_default|registration|storage_limitation|mimetypes_blacklist|upload_limit'
}
})
.then(response => {
this.isLoading = false
this.app.contactMail = response.data.contact_email
this.app.googleAnalytics = response.data.google_analytics
this.app.defaultStorage = response.data.storage_default
this.app.userRegistration = parseInt(response.data.registration)
this.app.storageLimitation = parseInt(response.data.storage_limitation)
this.app = {
contactMail: response.data.contact_email,
googleAnalytics: response.data.google_analytics,
defaultStorage: response.data.storage_default,
userRegistration: parseInt(response.data.registration),
storageLimitation: parseInt(response.data.storage_limitation),
mimetypesBlacklist : response.data.mimetypes_blacklist,
uploadLimit: response.data.upload_limit
}
})
}
}

View File

@@ -81,7 +81,7 @@
</ValidationProvider>
</div>
<InfoBox v-if="isError" type="error" style="margin-bottom: -20px">
<InfoBox v-if="isError" type="error" >
<p>{{ errorMessage }}</p>
</InfoBox>
@@ -130,7 +130,7 @@
InfoBox,
},
computed: {
...mapGetters(['config']),
...mapGetters(['config', 'currencyList']),
stripeWebhookEndpoint() {
return this.config.host + '/stripe/webhook'
},
@@ -150,548 +150,6 @@
webhookSecret: '',
currency: '',
},
currencyList: [
{
label: 'USD - United States Dollar',
value: 'USD',
},
{
label: 'EUR - Euro',
value: 'EUR',
},
{
label: 'GBP - British Pound',
value: 'GBP',
},
{
label: 'AFN - Afghan Afghani',
value: 'AFN',
},
{
label: 'ALL - Albanian Lek',
value: 'ALL',
},
{
label: 'DZD - Algerian Dinar',
value: 'DZD',
},
{
label: 'AOA - Angolan Kwanza',
value: 'AOA',
},
{
label: 'ARS - Argentine Peso',
value: 'ARS',
},
{
label: 'AMD - Armenian Dram',
value: 'AMD',
},
{
label: 'AWG - Aruban Florin',
value: 'AWG',
},
{
label: 'AUD - Australian Dollar',
value: 'AUD',
},
{
label: 'AZN - Azerbaijani Manat',
value: 'AZN',
},
{
label: 'BDT - Bangladeshi Taka',
value: 'BDT',
},
{
label: 'BBD - Barbadian Dollar',
value: 'BBD',
},
{
label: 'BZD - Belize Dollar',
value: 'BZD',
},
{
label: 'BMD - Bermudian Dollar',
value: 'BMD',
},
{
label: 'BOB - Bolivian Boliviano',
value: 'BOB',
},
{
label: 'BAM - Bosnia & Herzegovina Convertible Mark',
value: 'BAM',
},
{
label: 'BWP - Botswana Pula',
value: 'BWP',
},
{
label: 'BRL - Brazilian Real',
value: 'BRL',
},
{
label: 'BND - Brunei Dollar',
value: 'BND',
},
{
label: 'BGN - Bulgarian Lev',
value: 'BGN',
},
{
label: 'BIF - Burundian Franc',
value: 'BIF',
},
{
label: 'KHR - Cambodian Riel',
value: 'KHR',
},
{
label: 'CAD - Canadian Dollar',
value: 'CAD',
},
{
label: 'CVE - Cape Verdean Escudo',
value: 'CVE',
},
{
label: 'KYD - Cayman Islands Dollar',
value: 'KYD',
},
{
label: 'XAF - Central African Cfa Franc',
value: 'XAF',
},
{
label: 'XPF - Cfp Franc',
value: 'XPF',
},
{
label: 'CLP - Chilean Peso',
value: 'CLP',
},
{
label: 'CNY - Chinese Renminbi Yuan',
value: 'CNY',
},
{
label: 'COP - Colombian Peso',
value: 'COP',
},
{
label: 'KMF - Comorian Franc',
value: 'KMF',
},
{
label: 'CDF - Congolese Franc',
value: 'CDF',
},
{
label: 'CRC - Costa Rican Colón',
value: 'CRC',
},
{
label: 'HRK - Croatian Kuna',
value: 'HRK',
},
{
label: 'CZK - Czech Koruna',
value: 'CZK',
},
{
label: 'DKK - Danish Krone',
value: 'DKK',
},
{
label: 'DJF - Djiboutian Franc',
value: 'DJF',
},
{
label: 'DOP - Dominican Peso',
value: 'DOP',
},
{
label: 'XCD - East Caribbean Dollar',
value: 'XCD',
},
{
label: 'EGP - Egyptian Pound',
value: 'EGP',
},
{
label: 'ETB - Ethiopian Birr',
value: 'ETB',
},
{
label: 'FKP - Falkland Islands Pound',
value: 'FKP',
},
{
label: 'FJD - Fijian Dollar',
value: 'FJD',
},
{
label: 'GMD - Gambian Dalasi',
value: 'GMD',
},
{
label: 'GEL - Georgian Lari',
value: 'GEL',
},
{
label: 'GIP - Gibraltar Pound',
value: 'GIP',
},
{
label: 'GTQ - Guatemalan Quetzal',
value: 'GTQ',
},
{
label: 'GNF - Guinean Franc',
value: 'GNF',
},
{
label: 'GYD - Guyanese Dollar',
value: 'GYD',
},
{
label: 'HTG - Haitian Gourde',
value: 'HTG',
},
{
label: 'HNL - Honduran Lempira',
value: 'HNL',
},
{
label: 'HKD - Hong Kong Dollar',
value: 'HKD',
},
{
label: 'HUF - Hungarian Forint',
value: 'HUF',
},
{
label: 'ISK - Icelandic Króna',
value: 'ISK',
},
{
label: 'INR - Indian Rupee',
value: 'INR',
},
{
label: 'IDR - Indonesian Rupiah',
value: 'IDR',
},
{
label: 'ILS - Israeli New Sheqel',
value: 'ILS',
},
{
label: 'JMD - Jamaican Dollar',
value: 'JMD',
},
{
label: 'JPY - Japanese Yen',
value: 'JPY',
},
{
label: 'KZT - Kazakhstani Tenge',
value: 'KZT',
},
{
label: 'KES - Kenyan Shilling',
value: 'KES',
},
{
label: 'KGS - Kyrgyzstani Som',
value: 'KGS',
},
{
label: 'LAK - Lao Kip',
value: 'LAK',
},
{
label: 'LBP - Lebanese Pound',
value: 'LBP',
},
{
label: 'LSL - Lesotho Loti',
value: 'LSL',
},
{
label: 'LRD - Liberian Dollar',
value: 'LRD',
},
{
label: 'MOP - Macanese Pataca',
value: 'MOP',
},
{
label: 'MKD - Macedonian Denar',
value: 'MKD',
},
{
label: 'MGA - Malagasy Ariary',
value: 'MGA',
},
{
label: 'MWK - Malawian Kwacha',
value: 'MWK',
},
{
label: 'MYR - Malaysian Ringgit',
value: 'MYR',
},
{
label: 'MVR - Maldivian Rufiyaa',
value: 'MVR',
},
{
label: 'MRO - Mauritanian Ouguiya',
value: 'MRO',
},
{
label: 'MUR - Mauritian Rupee',
value: 'MUR',
},
{
label: 'MXN - Mexican Peso',
value: 'MXN',
},
{
label: 'MDL - Moldovan Leu',
value: 'MDL',
},
{
label: 'MNT - Mongolian Tögrög',
value: 'MNT',
},
{
label: 'MAD - Moroccan Dirham',
value: 'MAD',
},
{
label: 'MZN - Mozambican Metical',
value: 'MZN',
},
{
label: 'MMK - Myanmar Kyat',
value: 'MMK',
},
{
label: 'NAD - Namibian Dollar',
value: 'NAD',
},
{
label: 'NPR - Nepalese Rupee',
value: 'NPR',
},
{
label: 'ANG - Netherlands Antillean Gulden',
value: 'ANG',
},
{
label: 'TWD - New Taiwan Dollar',
value: 'TWD',
},
{
label: 'NZD - New Zealand Dollar',
value: 'NZD',
},
{
label: 'NIO - Nicaraguan Córdoba',
value: 'NIO',
},
{
label: 'NGN - Nigerian Naira',
value: 'NGN',
},
{
label: 'NOK - Norwegian Krone',
value: 'NOK',
},
{
label: 'PKR - Pakistani Rupee',
value: 'PKR',
},
{
label: 'PAB - Panamanian Balboa',
value: 'PAB',
},
{
label: 'PGK - Papua New Guinean Kina',
value: 'PGK',
},
{
label: 'PYG - Paraguayan Guaraní',
value: 'PYG',
},
{
label: 'PEN - Peruvian Nuevo Sol',
value: 'PEN',
},
{
label: 'PHP - Philippine Peso',
value: 'PHP',
},
{
label: 'PLN - Polish Złoty',
value: 'PLN',
},
{
label: 'QAR - Qatari Riyal',
value: 'QAR',
},
{
label: 'RON - Romanian Leu',
value: 'RON',
},
{
label: 'RUB - Russian Ruble',
value: 'RUB',
},
{
label: 'RWF - Rwandan Franc',
value: 'RWF',
},
{
label: 'STD - São Tomé and Príncipe Dobra',
value: 'STD',
},
{
label: 'SHP - Saint Helenian Pound',
value: 'SHP',
},
{
label: 'SVC - Salvadoran Colón',
value: 'SVC',
},
{
label: 'WST - Samoan Tala',
value: 'WST',
},
{
label: 'SAR - Saudi Riyal',
value: 'SAR',
},
{
label: 'RSD - Serbian Dinar',
value: 'RSD',
},
{
label: 'SCR - Seychellois Rupee',
value: 'SCR',
},
{
label: 'SLL - Sierra Leonean Leone',
value: 'SLL',
},
{
label: 'SGD - Singapore Dollar',
value: 'SGD',
},
{
label: 'SBD - Solomon Islands Dollar',
value: 'SBD',
},
{
label: 'SOS - Somali Shilling',
value: 'SOS',
},
{
label: 'ZAR - South African Rand',
value: 'ZAR',
},
{
label: 'KRW - South Korean Won',
value: 'KRW',
},
{
label: 'LKR - Sri Lankan Rupee',
value: 'LKR',
},
{
label: 'SRD - Surinamese Dollar',
value: 'SRD',
},
{
label: 'SZL - Swazi Lilangeni',
value: 'SZL',
},
{
label: 'SEK - Swedish Krona',
value: 'SEK',
},
{
label: 'CHF - Swiss Franc',
value: 'CHF',
},
{
label: 'TJS - Tajikistani Somoni',
value: 'TJS',
},
{
label: 'TZS - Tanzanian Shilling',
value: 'TZS',
},
{
label: 'THB - Thai Baht',
value: 'THB',
},
{
label: 'TOP - Tongan Paʻanga',
value: 'TOP',
},
{
label: 'TTD - Trinidad and Tobago Dollar',
value: 'TTD',
},
{
label: 'TRY - Turkish Lira',
value: 'TRY',
},
{
label: 'UGX - Ugandan Shilling',
value: 'UGX',
},
{
label: 'UAH - Ukrainian Hryvnia',
value: 'UAH',
},
{
label: 'AED - United Arab Emirates Dirham',
value: 'AED',
},
{
label: 'UYU - Uruguayan Peso',
value: 'UYU',
},
{
label: 'UZS - Uzbekistani Som',
value: 'UZS',
},
{
label: 'VUV - Vanuatu Vatu',
value: 'VUV',
},
{
label: 'VND - Vietnamese Đồng',
value: 'VND',
},
{
label: 'XOF - West African Cfa Franc',
value: 'XOF',
},
{
label: 'YER - Yemeni Rial',
value: 'YER',
},
{
label: 'ZMW - Zambian Kwacha',
value: 'ZMW',
},
],
}
},
methods: {
@@ -710,9 +168,6 @@
.post('/api/settings/stripe', this.stripeCredentials)
.then(() => {
// End loading
this.isLoading = false
// Store Stripe Public
this.$store.commit('SET_STRIPE_PUBLIC_KEY', this.stripeCredentials.key)
@@ -728,6 +183,8 @@
this.isError = true
this.errorMessage = error.response.data.message
}
})
.finally(() => {
// End loading
this.isLoading = false

View File

@@ -39,7 +39,7 @@
<div class="block-wrapper">
<label>{{ $t('admin_page_plans.form.price') }}:</label>
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Plan price" rules="required" v-slot="{ errors }">
<input v-model="plan.price" :placeholder="$t('admin_page_plans.form.price_plac')" type="number" step="0.01" min="1" max="99999"
<input v-model="plan.price" :placeholder="$t('admin_page_plans.form.price_plac')" type="number" step="0.01" min="1" max="999999999999"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>

View File

@@ -106,7 +106,7 @@
InfoBox,
},
computed: {
...mapGetters(['config']),
...mapGetters(['config', 'currencyList']),
stripeWebhookEndpoint() {
return this.config.host + '/stripe/webhook'
},
@@ -119,548 +119,6 @@
isLoading: false,
isError: false,
errorMessage: '',
currencyList: [
{
label: 'USD - United States Dollar',
value: 'USD',
},
{
label: 'EUR - Euro',
value: 'EUR',
},
{
label: 'GBP - British Pound',
value: 'GBP',
},
{
label: 'AFN - Afghan Afghani',
value: 'AFN',
},
{
label: 'ALL - Albanian Lek',
value: 'ALL',
},
{
label: 'DZD - Algerian Dinar',
value: 'DZD',
},
{
label: 'AOA - Angolan Kwanza',
value: 'AOA',
},
{
label: 'ARS - Argentine Peso',
value: 'ARS',
},
{
label: 'AMD - Armenian Dram',
value: 'AMD',
},
{
label: 'AWG - Aruban Florin',
value: 'AWG',
},
{
label: 'AUD - Australian Dollar',
value: 'AUD',
},
{
label: 'AZN - Azerbaijani Manat',
value: 'AZN',
},
{
label: 'BDT - Bangladeshi Taka',
value: 'BDT',
},
{
label: 'BBD - Barbadian Dollar',
value: 'BBD',
},
{
label: 'BZD - Belize Dollar',
value: 'BZD',
},
{
label: 'BMD - Bermudian Dollar',
value: 'BMD',
},
{
label: 'BOB - Bolivian Boliviano',
value: 'BOB',
},
{
label: 'BAM - Bosnia & Herzegovina Convertible Mark',
value: 'BAM',
},
{
label: 'BWP - Botswana Pula',
value: 'BWP',
},
{
label: 'BRL - Brazilian Real',
value: 'BRL',
},
{
label: 'BND - Brunei Dollar',
value: 'BND',
},
{
label: 'BGN - Bulgarian Lev',
value: 'BGN',
},
{
label: 'BIF - Burundian Franc',
value: 'BIF',
},
{
label: 'KHR - Cambodian Riel',
value: 'KHR',
},
{
label: 'CAD - Canadian Dollar',
value: 'CAD',
},
{
label: 'CVE - Cape Verdean Escudo',
value: 'CVE',
},
{
label: 'KYD - Cayman Islands Dollar',
value: 'KYD',
},
{
label: 'XAF - Central African Cfa Franc',
value: 'XAF',
},
{
label: 'XPF - Cfp Franc',
value: 'XPF',
},
{
label: 'CLP - Chilean Peso',
value: 'CLP',
},
{
label: 'CNY - Chinese Renminbi Yuan',
value: 'CNY',
},
{
label: 'COP - Colombian Peso',
value: 'COP',
},
{
label: 'KMF - Comorian Franc',
value: 'KMF',
},
{
label: 'CDF - Congolese Franc',
value: 'CDF',
},
{
label: 'CRC - Costa Rican Colón',
value: 'CRC',
},
{
label: 'HRK - Croatian Kuna',
value: 'HRK',
},
{
label: 'CZK - Czech Koruna',
value: 'CZK',
},
{
label: 'DKK - Danish Krone',
value: 'DKK',
},
{
label: 'DJF - Djiboutian Franc',
value: 'DJF',
},
{
label: 'DOP - Dominican Peso',
value: 'DOP',
},
{
label: 'XCD - East Caribbean Dollar',
value: 'XCD',
},
{
label: 'EGP - Egyptian Pound',
value: 'EGP',
},
{
label: 'ETB - Ethiopian Birr',
value: 'ETB',
},
{
label: 'FKP - Falkland Islands Pound',
value: 'FKP',
},
{
label: 'FJD - Fijian Dollar',
value: 'FJD',
},
{
label: 'GMD - Gambian Dalasi',
value: 'GMD',
},
{
label: 'GEL - Georgian Lari',
value: 'GEL',
},
{
label: 'GIP - Gibraltar Pound',
value: 'GIP',
},
{
label: 'GTQ - Guatemalan Quetzal',
value: 'GTQ',
},
{
label: 'GNF - Guinean Franc',
value: 'GNF',
},
{
label: 'GYD - Guyanese Dollar',
value: 'GYD',
},
{
label: 'HTG - Haitian Gourde',
value: 'HTG',
},
{
label: 'HNL - Honduran Lempira',
value: 'HNL',
},
{
label: 'HKD - Hong Kong Dollar',
value: 'HKD',
},
{
label: 'HUF - Hungarian Forint',
value: 'HUF',
},
{
label: 'ISK - Icelandic Króna',
value: 'ISK',
},
{
label: 'INR - Indian Rupee',
value: 'INR',
},
{
label: 'IDR - Indonesian Rupiah',
value: 'IDR',
},
{
label: 'ILS - Israeli New Sheqel',
value: 'ILS',
},
{
label: 'JMD - Jamaican Dollar',
value: 'JMD',
},
{
label: 'JPY - Japanese Yen',
value: 'JPY',
},
{
label: 'KZT - Kazakhstani Tenge',
value: 'KZT',
},
{
label: 'KES - Kenyan Shilling',
value: 'KES',
},
{
label: 'KGS - Kyrgyzstani Som',
value: 'KGS',
},
{
label: 'LAK - Lao Kip',
value: 'LAK',
},
{
label: 'LBP - Lebanese Pound',
value: 'LBP',
},
{
label: 'LSL - Lesotho Loti',
value: 'LSL',
},
{
label: 'LRD - Liberian Dollar',
value: 'LRD',
},
{
label: 'MOP - Macanese Pataca',
value: 'MOP',
},
{
label: 'MKD - Macedonian Denar',
value: 'MKD',
},
{
label: 'MGA - Malagasy Ariary',
value: 'MGA',
},
{
label: 'MWK - Malawian Kwacha',
value: 'MWK',
},
{
label: 'MYR - Malaysian Ringgit',
value: 'MYR',
},
{
label: 'MVR - Maldivian Rufiyaa',
value: 'MVR',
},
{
label: 'MRO - Mauritanian Ouguiya',
value: 'MRO',
},
{
label: 'MUR - Mauritian Rupee',
value: 'MUR',
},
{
label: 'MXN - Mexican Peso',
value: 'MXN',
},
{
label: 'MDL - Moldovan Leu',
value: 'MDL',
},
{
label: 'MNT - Mongolian Tögrög',
value: 'MNT',
},
{
label: 'MAD - Moroccan Dirham',
value: 'MAD',
},
{
label: 'MZN - Mozambican Metical',
value: 'MZN',
},
{
label: 'MMK - Myanmar Kyat',
value: 'MMK',
},
{
label: 'NAD - Namibian Dollar',
value: 'NAD',
},
{
label: 'NPR - Nepalese Rupee',
value: 'NPR',
},
{
label: 'ANG - Netherlands Antillean Gulden',
value: 'ANG',
},
{
label: 'TWD - New Taiwan Dollar',
value: 'TWD',
},
{
label: 'NZD - New Zealand Dollar',
value: 'NZD',
},
{
label: 'NIO - Nicaraguan Córdoba',
value: 'NIO',
},
{
label: 'NGN - Nigerian Naira',
value: 'NGN',
},
{
label: 'NOK - Norwegian Krone',
value: 'NOK',
},
{
label: 'PKR - Pakistani Rupee',
value: 'PKR',
},
{
label: 'PAB - Panamanian Balboa',
value: 'PAB',
},
{
label: 'PGK - Papua New Guinean Kina',
value: 'PGK',
},
{
label: 'PYG - Paraguayan Guaraní',
value: 'PYG',
},
{
label: 'PEN - Peruvian Nuevo Sol',
value: 'PEN',
},
{
label: 'PHP - Philippine Peso',
value: 'PHP',
},
{
label: 'PLN - Polish Złoty',
value: 'PLN',
},
{
label: 'QAR - Qatari Riyal',
value: 'QAR',
},
{
label: 'RON - Romanian Leu',
value: 'RON',
},
{
label: 'RUB - Russian Ruble',
value: 'RUB',
},
{
label: 'RWF - Rwandan Franc',
value: 'RWF',
},
{
label: 'STD - São Tomé and Príncipe Dobra',
value: 'STD',
},
{
label: 'SHP - Saint Helenian Pound',
value: 'SHP',
},
{
label: 'SVC - Salvadoran Colón',
value: 'SVC',
},
{
label: 'WST - Samoan Tala',
value: 'WST',
},
{
label: 'SAR - Saudi Riyal',
value: 'SAR',
},
{
label: 'RSD - Serbian Dinar',
value: 'RSD',
},
{
label: 'SCR - Seychellois Rupee',
value: 'SCR',
},
{
label: 'SLL - Sierra Leonean Leone',
value: 'SLL',
},
{
label: 'SGD - Singapore Dollar',
value: 'SGD',
},
{
label: 'SBD - Solomon Islands Dollar',
value: 'SBD',
},
{
label: 'SOS - Somali Shilling',
value: 'SOS',
},
{
label: 'ZAR - South African Rand',
value: 'ZAR',
},
{
label: 'KRW - South Korean Won',
value: 'KRW',
},
{
label: 'LKR - Sri Lankan Rupee',
value: 'LKR',
},
{
label: 'SRD - Surinamese Dollar',
value: 'SRD',
},
{
label: 'SZL - Swazi Lilangeni',
value: 'SZL',
},
{
label: 'SEK - Swedish Krona',
value: 'SEK',
},
{
label: 'CHF - Swiss Franc',
value: 'CHF',
},
{
label: 'TJS - Tajikistani Somoni',
value: 'TJS',
},
{
label: 'TZS - Tanzanian Shilling',
value: 'TZS',
},
{
label: 'THB - Thai Baht',
value: 'THB',
},
{
label: 'TOP - Tongan Paʻanga',
value: 'TOP',
},
{
label: 'TTD - Trinidad and Tobago Dollar',
value: 'TTD',
},
{
label: 'TRY - Turkish Lira',
value: 'TRY',
},
{
label: 'UGX - Ugandan Shilling',
value: 'UGX',
},
{
label: 'UAH - Ukrainian Hryvnia',
value: 'UAH',
},
{
label: 'AED - United Arab Emirates Dirham',
value: 'AED',
},
{
label: 'UYU - Uruguayan Peso',
value: 'UYU',
},
{
label: 'UZS - Uzbekistani Som',
value: 'UZS',
},
{
label: 'VUV - Vanuatu Vatu',
value: 'VUV',
},
{
label: 'VND - Vietnamese Đồng',
value: 'VND',
},
{
label: 'XOF - West African Cfa Franc',
value: 'XOF',
},
{
label: 'YER - Yemeni Rial',
value: 'YER',
},
{
label: 'ZMW - Zambian Kwacha',
value: 'ZMW',
},
],
stripeCredentials: {
key: '',
secret: '',

View File

@@ -45,7 +45,7 @@
<ValidationProvider tag="div" mode="passive" class="input-wrapper" name="Price"
rules="required" v-slot="{ errors }">
<input v-model="plan.attributes.price" placeholder="Type your plan price" type="number"
step="0.01" min="1" max="99999"
step="0.01" min="1" max="999999999999"
:class="{'is-error': errors[0]}"/>
<span class="error-message" v-if="errors[0]">{{ errors[0] }}</span>
</ValidationProvider>

View File

@@ -70,7 +70,7 @@
<script>
import {ValidationProvider, ValidationObserver} from 'vee-validate/dist/vee-validate.full'
import DesktopToolbar from '@/components/FilesView/DesktopToolbar'
import FileFullPreview from "@/components/FilesView/FileFullpreview";
import FileFullPreview from "@/components/FilesView/FileFullPreview";
import FileItemGrid from '@/components/FilesView/FileItemGrid'
import FileBrowser from '@/components/FilesView/FileBrowser'
import ContextMenu from '@/components/FilesView/ContextMenu'
@@ -226,6 +226,19 @@
@import '@assets/vue-file-manager/_auth-form';
@import '@assets/vue-file-manager/_auth';
#files-view {
font-family: 'Nunito', sans-serif;
font-size: 16px;
width: 100%;
height: 100%;
position: relative;
min-width: 320px;
overflow-x: hidden;
padding-left: 15px;
padding-right: 15px;
overflow-y: hidden;
}
#shared {
height: 100%;
}

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