mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-28 02:50:39 +00:00
language strings updates
This commit is contained in:
@@ -70,6 +70,10 @@ Add the following Cron entry to your server. Just update your php path (if it's
|
|||||||
* * * * * /usr/local/bin/php /www/html/your-project/artisan schedule:run >> /dev/null 2>&1
|
* * * * * /usr/local/bin/php /www/html/your-project/artisan schedule:run >> /dev/null 2>&1
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### 8. Broadcasting
|
||||||
|
|
||||||
|
coming soon...
|
||||||
|
|
||||||
## Nginx Configuration
|
## Nginx Configuration
|
||||||
If you running VueFileManager under Nginx, don't forget set this value in your `nginx.conf` file:
|
If you running VueFileManager under Nginx, don't forget set this value in your `nginx.conf` file:
|
||||||
```
|
```
|
||||||
@@ -134,6 +138,11 @@ Make sure you have enabled mod_rewrite. There is an example config for running V
|
|||||||
# Developers
|
# Developers
|
||||||
## Running development environment on your localhost
|
## Running development environment on your localhost
|
||||||
|
|
||||||
|
**For running development environment make sure you have:**
|
||||||
|
|
||||||
|
- Node >= 14
|
||||||
|
- NPM >= 6
|
||||||
|
|
||||||
If you would like to express set up, please update your database credentials in .env file
|
If you would like to express set up, please update your database credentials in .env file
|
||||||
```
|
```
|
||||||
DB_CONNECTION=mysql
|
DB_CONNECTION=mysql
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ return [
|
|||||||
'plan_description' => 'Plan description',
|
'plan_description' => 'Plan description',
|
||||||
'type_plan_name' => 'Type plan name',
|
'type_plan_name' => 'Type plan name',
|
||||||
'plan_name' => 'Plan name',
|
'plan_name' => 'Plan name',
|
||||||
'admin_page_plans.form.price_plac' => 'Plan price',
|
'plan_price' => 'Plan price',
|
||||||
'admin_page_plans.form.status_help' => 'Status of your plan availability on website.',
|
'admin_page_plans.form.status_help' => 'Status of your plan availability on website.',
|
||||||
'admin_page_plans.form.storage' => 'Storage Capacity in GB',
|
'admin_page_plans.form.storage' => 'Storage Capacity in GB',
|
||||||
'admin_page_plans.form.storage_helper' => "You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.",
|
'admin_page_plans.form.storage_helper' => "You have to type only number e.g. value '5' means, user will have 5GB of storage capacity.",
|
||||||
@@ -69,13 +69,19 @@ return [
|
|||||||
'seller_vat' => 'VAT number',
|
'seller_vat' => 'VAT number',
|
||||||
'phone' => 'Phone',
|
'phone' => 'Phone',
|
||||||
'postal_code' => 'Postal code',
|
'postal_code' => 'Postal code',
|
||||||
|
'price' => 'Price',
|
||||||
// v2
|
'charged_features' => 'Charged Features',
|
||||||
'max_team_members' => 'Up to {value} Team Members',
|
'zero_for_unlimited_members' => 'Type -1 to set unlimited team members.',
|
||||||
|
'team_members' => 'Team Members',
|
||||||
|
'max_team_members' => 'Max Team Members',
|
||||||
|
'add_max_team_members' => 'Add max team members in number',
|
||||||
|
'max_team_members_total' => 'Up to {value} Team Members',
|
||||||
'max_team_members.unlimited' => 'Unlimited Team Members',
|
'max_team_members.unlimited' => 'Unlimited Team Members',
|
||||||
'max_storage_amount' => '{value} GB Storage Size',
|
'max_storage_amount' => '{value} GB Storage Size',
|
||||||
'monthly' => 'Monthly',
|
'monthly' => 'Monthly',
|
||||||
'yearly' => 'Yearly',
|
'yearly' => 'Yearly',
|
||||||
|
'month' => 'Month',
|
||||||
|
'year' => 'Year',
|
||||||
'bandwidth' => 'Bandwidth',
|
'bandwidth' => 'Bandwidth',
|
||||||
'storage' => 'Storage',
|
'storage' => 'Storage',
|
||||||
'flatFee' => 'Flat Fee',
|
'flatFee' => 'Flat Fee',
|
||||||
@@ -85,8 +91,146 @@ return [
|
|||||||
'feature_usage_desc_member' => 'Total members you invited to your team folders.',
|
'feature_usage_desc_member' => 'Total members you invited to your team folders.',
|
||||||
'feature_usage_desc_platform' => 'Total storage amount you are using.',
|
'feature_usage_desc_platform' => 'Total storage amount you are using.',
|
||||||
'credit_to_auto_withdraw' => 'You own {credit} in credits that will be automatically withdrawn on your next payment.',
|
'credit_to_auto_withdraw' => 'You own {credit} in credits that will be automatically withdrawn on your next payment.',
|
||||||
|
'transactions' => 'Transactions',
|
||||||
|
'not_any_transactions' => "There aren't any transactions.",
|
||||||
|
'service' => 'Service',
|
||||||
|
'payed_at' => 'Payed At',
|
||||||
|
'current_estimated_usage' => 'Your current estimated usage:',
|
||||||
|
'payment_was_successfully_received' => 'Your payment was successfully received.',
|
||||||
|
'failed_to_load_paypal' => 'Failed to load the PayPal service',
|
||||||
|
'cancel_payment' => 'Cancel Payment',
|
||||||
|
'not_any_payment_method' => "There isn't any payment method yet.",
|
||||||
|
'select_payment_method' => 'Select Payment Method',
|
||||||
|
'change_your_plan' => 'Change Your Plan',
|
||||||
|
'not_any_plan' => "There isn't any plan yet.",
|
||||||
|
'change_plan' => 'Change Plan',
|
||||||
|
'subscription_changed' => 'Your subscription was successfully changed.',
|
||||||
|
'expires' => 'Expires',
|
||||||
|
'want_to_delete_card_title' => 'Are you sure you want to delete your credit card?',
|
||||||
|
'want_to_delete_card_description' => 'We will no longer settle your payments automatically and you will have to fund your account for the next payments.',
|
||||||
|
'credit_card_deleted' => 'Your credit card was deleted.',
|
||||||
|
'billed_annually' => 'Billed Annually',
|
||||||
|
'restricted_account_warning' => 'Your functionality is restricted. Please review your billing settings.',
|
||||||
|
'subscription_type' => 'Subscription Type',
|
||||||
|
'subscription_type_note' => 'Please do not change in production environment.',
|
||||||
|
'select_subscription_type' => 'Select your subscription type',
|
||||||
|
'subscription_type_change_warn' => 'Are you sure you want to change subscription type?',
|
||||||
|
'subscription_type_change_warn_description' => 'We strongly do not recommend change this value if there is any subscribed user to prevent any failures. You can operate only with one type of subscription and you can not change it on the fly!',
|
||||||
|
'x_days_intervals' => '30 Days intervals',
|
||||||
|
'interval' => 'Interval',
|
||||||
|
'currency' => 'Currency',
|
||||||
|
'allow_pay_by_card' => 'Allow your users pay by their credit card',
|
||||||
|
'paste_webhook_secret' => 'Paste your webhook secret',
|
||||||
|
'configure_your_credentials' => 'Configure Your Credentials',
|
||||||
|
'allow_registration_bonus' => 'Allow Registration Bonus',
|
||||||
|
'allow_registration_bonus_description' => 'Credit user automatically bonus to his balance after registration.',
|
||||||
|
'registration_bonus_amount' => 'The Amount of Registration Bonus',
|
||||||
|
'registration_bonus_amount_description' => 'This bonus will be automatically added when user successfully register his account.',
|
||||||
|
'registration_bonus_amount_' => 'Type registration bonus amount...',
|
||||||
|
'metered_plan' => 'Metered Plan',
|
||||||
|
'metered_plan_description' => 'Your price set up for billing multiple features by user usage.',
|
||||||
|
'plan_details' => 'Plan Details',
|
||||||
|
'copy_webhook_note' => 'Please copy your url and paste it to the service webhook setup.',
|
||||||
|
'webhook_url' => 'Your Webhook URL',
|
||||||
|
'payment_description' => 'Payment Description',
|
||||||
|
'payment_description_note' => 'The description showed below user payment method selection.',
|
||||||
|
'additional_info_about_payment_method_' => 'Describe in short which methods user can pay with this payment method...',
|
||||||
|
'select_plan_currency' => 'Select plan currency',
|
||||||
|
'select_billing_interval' => 'Select billing interval',
|
||||||
|
'features' => 'Features',
|
||||||
|
'bandwidth_per_gb' => 'Bandwidth Price per 1GB',
|
||||||
|
'bandwidth_per_gb_note' => 'Charge your user by the amount of data he upload or download.',
|
||||||
|
'type_bandwidth_price' => 'Type the price per 1GB...',
|
||||||
|
'storage_per_gb' => 'Storage Price per 1GB',
|
||||||
|
'storage_per_gb_note' => 'Charge your user by the amount of data he has stored on the disk per 1GB.',
|
||||||
|
'type_storage_price' => 'Type the price per 1GB...',
|
||||||
|
'member_per_unit' => 'Price per 1 Member',
|
||||||
|
'member_per_unit_note' => 'Charge your user by the total members he use in his Team Folders.',
|
||||||
|
'type_member_price' => 'Type the price per 1 member...',
|
||||||
|
'flat_fee_unit_gb' => 'Flat Fee per Cycle',
|
||||||
|
'flat_fee_unit_gb_note' => 'Charge monthly flat fee.',
|
||||||
|
'type_flat_fee_price' => 'Type the price...',
|
||||||
|
'price_change_not_possible_create_new' => 'Price change is not possible. If you would like to change your price or currency, please feel free to create a new plan.',
|
||||||
|
'metered_billing_settings' => 'Metered Billing Settings',
|
||||||
|
'allow_subscription_payments' => 'Allow Subscription Payments',
|
||||||
|
'allow_subscription_payments_description' => 'User can subscribe to fixed or metered plan',
|
||||||
|
'subscription_payments' => 'Subscription Payments',
|
||||||
|
'free_plan_parameters' => '{storage}GB Free storage space with {members} Team members',
|
||||||
|
'active_until' => 'Active until {date}',
|
||||||
|
'ends_at_date' => 'Ends at {date}',
|
||||||
|
'price_per_month' => '{price} Per Month',
|
||||||
|
'price_per_year' => '{price} Per Year',
|
||||||
|
'balance_will_be_increased' => 'User balance will be increased for the amount above.',
|
||||||
|
'increase_for' => 'Increase user balance for...',
|
||||||
|
'increase_balance' => 'Increase Balance',
|
||||||
|
'balance_was_increased' => 'User balance was successfully increased',
|
||||||
|
'user_dont_have_transactions' => "User doesn't have any transactions yet.",
|
||||||
|
'billing_est.' => 'Billing Est.',
|
||||||
|
'ends_at' => 'Ends At',
|
||||||
|
'renews_at' => 'Renews At',
|
||||||
|
'create_first_plan' => 'Create First Plan',
|
||||||
|
'all_visible_subscriptions_here' => 'All your subscriptions will be visible here',
|
||||||
|
'all_visible_plans_here' => 'All your plans will be visible here',
|
||||||
|
'transaction_will_be_here' => 'All your transactions will be visible here',
|
||||||
|
'latest_transactions' => 'Latest Transactions',
|
||||||
|
'show_all_transactions' => 'Show all transactions',
|
||||||
|
'earnings' => 'Earnings',
|
||||||
|
'records_updated_daily_bases' => 'Records are updated on daily bases.',
|
||||||
|
'till_now' => 'till now',
|
||||||
|
'usage_estimates' => 'Usage Estimates',
|
||||||
|
'payment_method_update_redirect_description' => 'You will be redirected to your payment provider to edit your payment method.',
|
||||||
|
'update_payment_method' => 'Update your Payment Method',
|
||||||
|
'update_payments' => 'Update Payments',
|
||||||
|
'credit_card_stored' => 'Your credit card was stored successfully',
|
||||||
|
'store_my_credit_card' => 'Store My Credit Card',
|
||||||
|
'add_payment_method' => 'Add Payment Method',
|
||||||
|
'auto_settled_credit_card' => 'We are settling your payment automatically via your saved credit card.',
|
||||||
|
'payment_method' => 'Payment Method',
|
||||||
|
'unable_to_charge' => "We are unable to charge your usage. Please register new credit card or fund your account with sufficient amount and we'll give it another try!",
|
||||||
|
'failed_payments' => 'Failed Payments',
|
||||||
|
'upgrade_to_get_more' => 'Upgrade your account to get more.',
|
||||||
|
'free_plan' => 'Free Plan',
|
||||||
|
'want_cancel_subscription' => 'Are you sure you want to cancel subscription?',
|
||||||
|
'upgrade_downgrade_plan' => 'Upgrade or Downgrade Plan',
|
||||||
|
'upgrade_downgrade_plan_description' => 'You can upgrade your plan at any time you want.',
|
||||||
|
'cancel_now' => 'Cancel Now',
|
||||||
|
'cancel_subscription' => 'Cancel Subscription',
|
||||||
|
'cancel_subscription_description' => "You can cancel your subscription now. You'll continue to have access to the features you've paid for until the end of your billing cycle.",
|
||||||
|
'edit_your_subscription' => 'Edit your Subscription',
|
||||||
|
'want_to_delete_alert_description' => 'You will no longer receive any notifications that your billing limit has been exceeded.',
|
||||||
|
'want_to_delete_alert' => 'Are you sure you want to delete your alert?',
|
||||||
|
'alert_set_successfully' => 'Your billing alert was set successfully',
|
||||||
|
'alert_updated' => 'Your billing alert was updated successfully',
|
||||||
|
'set_alert' => 'Set Alert',
|
||||||
|
'update_alert' => 'Update Alert',
|
||||||
|
'deleted_alert' => 'Your billing alert was deleted.',
|
||||||
|
'alert_amount_' => 'Alert Amount...',
|
||||||
|
'billing_alert' => 'Billing Alert',
|
||||||
|
'billing_alert_description' => 'Alert will be triggered after you reach the value above.',
|
||||||
|
'billing_alert_notes' => 'You will receive an email whenever your monthly balance reaches the specified amount above.',
|
||||||
|
'make_payment' => 'Make a Payment',
|
||||||
|
'fund_account_balance' => 'Fund Your Account Balance...',
|
||||||
|
'amount_increase_description' => 'The amount will be increased as soon as we register your charge from payment gateway.',
|
||||||
|
'balance' => 'Balance',
|
||||||
|
'upgrade_account' => 'Upgrade Account',
|
||||||
|
'upgrade_your_account' => 'Upgrade Your Account',
|
||||||
|
'upload_temporarily_disabled' => 'Upload is temporarily disabled',
|
||||||
|
'upload_temporarily_disabled_note' => 'Please review your billing settings.',
|
||||||
|
'create_folder_temporarily_disabled' => 'Folder creation is temporarily disabled',
|
||||||
|
'create_folder_temporarily_disabled_desc' => 'Please review your billing settings.',
|
||||||
|
'download_temporarily_disabled' => 'File download is temporarily disabled',
|
||||||
|
'download_temporarily_disabled_desc' => 'Please review your billing settings.',
|
||||||
|
'billing' => 'Billing',
|
||||||
|
'usage' => 'usage',
|
||||||
|
'charge' => 'Charge',
|
||||||
|
'credit' => 'Credit',
|
||||||
|
'withdrawal' => 'Withdrawal',
|
||||||
|
'interval.year' => 'Yearly',
|
||||||
|
'interval.month' => 'Monthly',
|
||||||
|
'subscriptions' => 'Subscriptions',
|
||||||
],
|
],
|
||||||
'regular' => [
|
'regular' => [
|
||||||
|
'type' => 'Type',
|
||||||
'cancel' => 'Cancel',
|
'cancel' => 'Cancel',
|
||||||
'close' => 'Close',
|
'close' => 'Close',
|
||||||
'create_folder' => 'Create folder',
|
'create_folder' => 'Create folder',
|
||||||
@@ -108,7 +252,6 @@ return [
|
|||||||
'change_capacity' => 'Change Capacity',
|
'change_capacity' => 'Change Capacity',
|
||||||
'avatar' => 'Avatar',
|
'avatar' => 'Avatar',
|
||||||
'account_details' => 'Account Details',
|
'account_details' => 'Account Details',
|
||||||
'admin_page_user.create_user.label_conf_pass' => 'Confirm password',
|
|
||||||
'admin_page_user.create_user.label_email' => 'Type E-mail',
|
'admin_page_user.create_user.label_email' => 'Type E-mail',
|
||||||
'admin_page_user.create_user.label_name' => 'Type full name',
|
'admin_page_user.create_user.label_name' => 'Type full name',
|
||||||
'admin_page_user.create_user.submit' => 'Create User',
|
'admin_page_user.create_user.submit' => 'Create User',
|
||||||
@@ -121,7 +264,6 @@ return [
|
|||||||
'admin_page_user.select_role' => 'Select user role',
|
'admin_page_user.select_role' => 'Select user role',
|
||||||
'admin_page_user.send_password_link' => 'Send Password Reset Link',
|
'admin_page_user.send_password_link' => 'Send Password Reset Link',
|
||||||
'action' => 'Action',
|
'action' => 'Action',
|
||||||
'admin_page_user.table.created_at' => 'Registered',
|
|
||||||
'user' => 'User',
|
'user' => 'User',
|
||||||
'role' => 'Role',
|
'role' => 'Role',
|
||||||
'storage_used' => 'Storage Used',
|
'storage_used' => 'Storage Used',
|
||||||
@@ -140,6 +282,8 @@ return [
|
|||||||
'admin_settings.appearance.description_plac' => 'Type your app description',
|
'admin_settings.appearance.description_plac' => 'Type your app description',
|
||||||
'admin_settings.appearance.favicon' => 'App Favicon (optional)',
|
'admin_settings.appearance.favicon' => 'App Favicon (optional)',
|
||||||
'admin_settings.appearance.logo' => 'App Logo (optional)',
|
'admin_settings.appearance.logo' => 'App Logo (optional)',
|
||||||
|
'app_logo_dark_mode' => 'App Logo Dark Mode (optional)',
|
||||||
|
'app_logo_horizontal_dark_mode' => 'App Logo Horizontal Dark Mode (optional)',
|
||||||
'admin_settings.appearance.logo_horizontal' => 'App Logo Horizontal (optional)',
|
'admin_settings.appearance.logo_horizontal' => 'App Logo Horizontal (optional)',
|
||||||
'admin_settings.appearance.section_general' => 'General Settings',
|
'admin_settings.appearance.section_general' => 'General Settings',
|
||||||
'admin_settings.appearance.title' => 'App Title',
|
'admin_settings.appearance.title' => 'App Title',
|
||||||
@@ -155,7 +299,6 @@ return [
|
|||||||
'admin_settings.others.allow_registration' => 'Allow User Registration',
|
'admin_settings.others.allow_registration' => 'Allow User Registration',
|
||||||
'admin_settings.others.allow_registration_help' => 'You can disable public registration for new users. You will still able to create new users in administration panel.',
|
'admin_settings.others.allow_registration_help' => 'You can disable public registration for new users. You will still able to create new users in administration panel.',
|
||||||
'admin_settings.others.allow_user_verification' => 'Allow User Email Verification',
|
'admin_settings.others.allow_user_verification' => 'Allow User Email Verification',
|
||||||
'admin_settings.others.allow_user_verification_help' => 'Turn on, if you want to allow user email verification.',
|
|
||||||
'clear_cache' => 'Clear Cache',
|
'clear_cache' => 'Clear Cache',
|
||||||
'admin_settings.others.contact_email' => 'Contact Email',
|
'admin_settings.others.contact_email' => 'Contact Email',
|
||||||
'admin_settings.others.contact_email_plac' => 'Type your contact email',
|
'admin_settings.others.contact_email_plac' => 'Type your contact email',
|
||||||
@@ -197,6 +340,7 @@ return [
|
|||||||
'errors.capacity_digit' => 'The storage capacity must be lower than 10 digit number.',
|
'errors.capacity_digit' => 'The storage capacity must be lower than 10 digit number.',
|
||||||
'created_at' => 'Created at',
|
'created_at' => 'Created at',
|
||||||
'items' => 'Items',
|
'items' => 'Items',
|
||||||
|
'space' => 'space',
|
||||||
'selected_multiple' => 'Selected Multiple Items',
|
'selected_multiple' => 'Selected Multiple Items',
|
||||||
'shared' => 'Shared',
|
'shared' => 'Shared',
|
||||||
'size' => 'Size',
|
'size' => 'Size',
|
||||||
@@ -216,8 +360,8 @@ return [
|
|||||||
'meta_data' => 'Metadata',
|
'meta_data' => 'Metadata',
|
||||||
'model' => 'Model',
|
'model' => 'Model',
|
||||||
'resolution' => 'Resolution',
|
'resolution' => 'Resolution',
|
||||||
'file_detail_meta.time_data' => 'Content Created',
|
'time_data' => 'Content Created',
|
||||||
'folder.empty' => 'Empty',
|
'empty' => 'Empty',
|
||||||
'folder.item_counts' => '{count} Item | {count} Items',
|
'folder.item_counts' => '{count} Item | {count} Items',
|
||||||
'admin' => 'Admin',
|
'admin' => 'Admin',
|
||||||
'yes_iam_sure' => "Yes, I'm sure",
|
'yes_iam_sure' => "Yes, I'm sure",
|
||||||
@@ -225,23 +369,22 @@ return [
|
|||||||
'get_it' => 'Get It',
|
'get_it' => 'Get It',
|
||||||
'input_image.supported' => 'Supported formats are .png, .jpg, .jpeg.',
|
'input_image.supported' => 'Supported formats are .png, .jpg, .jpeg.',
|
||||||
'input_image.title' => 'Upload Image',
|
'input_image.title' => 'Upload Image',
|
||||||
'inputs.placeholder_search_files' => 'Search anything...',
|
'search_anything' => 'Search anything...',
|
||||||
'item_thumbnail.deleted_at' => 'Deleted {time}',
|
'item_thumbnail.deleted_at' => 'Deleted {time}',
|
||||||
'locations.home' => 'Files',
|
'locations.home' => 'Files',
|
||||||
'locations.logout' => 'Log Out',
|
'logout' => 'Log Out',
|
||||||
'locations.profile' => 'Profile',
|
'locations.profile' => 'Profile',
|
||||||
'locations.settings' => 'Settings',
|
'locations.settings' => 'Settings',
|
||||||
'locations.trash' => 'Trash',
|
'locations.trash' => 'Trash',
|
||||||
'administration' => 'Administration',
|
'administration' => 'Administration',
|
||||||
'menu.files' => 'Files',
|
'menu.files' => 'Files',
|
||||||
'menu.latest' => 'Recent Uploads',
|
'menu.latest' => 'Recent Uploads',
|
||||||
'menu.logout' => 'Log Out',
|
|
||||||
'menu.password' => 'Security & API',
|
'menu.password' => 'Security & API',
|
||||||
'menu.profile' => 'Profile Settings',
|
'menu.profile' => 'Profile Settings',
|
||||||
'menu.shared' => 'Shared Files',
|
'menu.shared' => 'Shared Files',
|
||||||
'storage' => 'Storage',
|
'storage' => 'Storage',
|
||||||
'trash' => 'Trash',
|
'trash' => 'Trash',
|
||||||
'messages.nothing_to_preview' => 'There is nothing to preview.',
|
'nothing_to_preview' => 'There is nothing to preview.',
|
||||||
'messages.nothing_was_found' => 'Nothing was found.',
|
'messages.nothing_was_found' => 'Nothing was found.',
|
||||||
'deselect_all' => 'Deselect All',
|
'deselect_all' => 'Deselect All',
|
||||||
'done' => 'Done',
|
'done' => 'Done',
|
||||||
@@ -371,7 +514,7 @@ return [
|
|||||||
'routes_title.users_password' => 'Password',
|
'routes_title.users_password' => 'Password',
|
||||||
'routes_title.users_storage_usage' => 'Storage Usage',
|
'routes_title.users_storage_usage' => 'Storage Usage',
|
||||||
'routes_title.users_user' => 'User',
|
'routes_title.users_user' => 'User',
|
||||||
'shared.can_download' => 'Can download file',
|
'can_download_file' => 'Can download file',
|
||||||
'shared.editor' => 'Can edit and upload files',
|
'shared.editor' => 'Can edit and upload files',
|
||||||
'shared.empty_shared' => "You haven't shared anything yet.",
|
'shared.empty_shared' => "You haven't shared anything yet.",
|
||||||
'shared.visitor' => 'Can only view and download',
|
'shared.visitor' => 'Can only view and download',
|
||||||
@@ -423,6 +566,7 @@ return [
|
|||||||
'phone_number' => 'Phone Number',
|
'phone_number' => 'Phone Number',
|
||||||
'user_settings.phone_number_plac' => 'Type your billing phone number',
|
'user_settings.phone_number_plac' => 'Type your billing phone number',
|
||||||
'postal_code' => 'Postal Code',
|
'postal_code' => 'Postal Code',
|
||||||
|
'postal_code_plac' => 'Type your postal code',
|
||||||
'state' => 'State',
|
'state' => 'State',
|
||||||
'user_settings.state_plac' => 'Type your billing state',
|
'user_settings.state_plac' => 'Type your billing state',
|
||||||
'timezone' => 'Timezone',
|
'timezone' => 'Timezone',
|
||||||
@@ -432,7 +576,7 @@ return [
|
|||||||
'validation_errors.incorrect_2fa_code' => 'Sorry, you passed incorrect or expired code',
|
'validation_errors.incorrect_2fa_code' => 'Sorry, you passed incorrect or expired code',
|
||||||
'validation_errors.incorrect_2fa_recovery_code' => 'Sorry, you passed incorrect recovery code',
|
'validation_errors.incorrect_2fa_recovery_code' => 'Sorry, you passed incorrect recovery code',
|
||||||
'validation_errors.incorrect_password' => 'Sorry, you passed incorrect password :(',
|
'validation_errors.incorrect_password' => 'Sorry, you passed incorrect password :(',
|
||||||
'validation_errors.wrong_image' => 'You may have uploaded the wrong file, try again!',
|
'wrong_image_error' => 'You may have uploaded the wrong file, try again!',
|
||||||
'app_description' => 'Your self-hosted storage cloud software powered by Laravel and Vue',
|
'app_description' => 'Your self-hosted storage cloud software powered by Laravel and Vue',
|
||||||
'user_not_fount' => 'We can\'t find a user with that e-mail address.',
|
'user_not_fount' => 'We can\'t find a user with that e-mail address.',
|
||||||
'incorrect_password' => 'Sorry, your password is incorrect.',
|
'incorrect_password' => 'Sorry, your password is incorrect.',
|
||||||
@@ -503,7 +647,7 @@ return [
|
|||||||
'popup_delete_personal_token.description' => 'Any applications or scripts using this token will no longer be able to access into your account. You cannot undo this action.',
|
'popup_delete_personal_token.description' => 'Any applications or scripts using this token will no longer be able to access into your account. You cannot undo this action.',
|
||||||
'personal_token.token_deleted' => 'Token was successfully deleted!',
|
'personal_token.token_deleted' => 'Token was successfully deleted!',
|
||||||
'dark_mode_toggle' => 'Toggle Dark Mode',
|
'dark_mode_toggle' => 'Toggle Dark Mode',
|
||||||
'actions.convert_into_team_folder' => 'Convert into Team Folder',
|
'convert_into_team_folder' => 'Convert into Team Folder',
|
||||||
'create_something' => 'Create Something',
|
'create_something' => 'Create Something',
|
||||||
'popup.share.email_send' => 'Send link by Email',
|
'popup.share.email_send' => 'Send link by Email',
|
||||||
'popup.share.email_description' => 'Send your share link via email to many recipients.',
|
'popup.share.email_description' => 'Send your share link via email to many recipients.',
|
||||||
@@ -514,11 +658,7 @@ return [
|
|||||||
'sharelink.copy_embed' => 'Copy Web Insert Code',
|
'sharelink.copy_embed' => 'Copy Web Insert Code',
|
||||||
'popup.move_into_team_disclaimer' => 'Your folder <b class="text-theme dark-text-theme">will be moved</b> into Team Folders section.',
|
'popup.move_into_team_disclaimer' => 'Your folder <b class="text-theme dark-text-theme">will be moved</b> into Team Folders section.',
|
||||||
'upload_folder' => 'Upload Folder',
|
'upload_folder' => 'Upload Folder',
|
||||||
|
|
||||||
// v2
|
|
||||||
'member' => 'Members',
|
'member' => 'Members',
|
||||||
|
|
||||||
// file request
|
|
||||||
'request_for_upload' => '{name} is Asking You For Files',
|
'request_for_upload' => '{name} is Asking You For Files',
|
||||||
'request_for_upload_success' => 'Upload Request for {name} was Fulfilled Successfully',
|
'request_for_upload_success' => 'Upload Request for {name} was Fulfilled Successfully',
|
||||||
'request_for_upload_expired' => 'Upload Request Expired',
|
'request_for_upload_expired' => 'Upload Request Expired',
|
||||||
@@ -528,9 +668,204 @@ return [
|
|||||||
'closing_request_for_upload_warn' => "You won't be able to upload any files here once again.",
|
'closing_request_for_upload_warn' => "You won't be able to upload any files here once again.",
|
||||||
'user_leave_message' => '{name} leave you a message',
|
'user_leave_message' => '{name} leave you a message',
|
||||||
'tell_you_are_done' => 'Tell {name} you are done!',
|
'tell_you_are_done' => 'Tell {name} you are done!',
|
||||||
|
|
||||||
// teams
|
|
||||||
'user_invite_you_into_team_folder' => '{name} invite you to join with his team into shared team folder',
|
'user_invite_you_into_team_folder' => '{name} invite you to join with his team into shared team folder',
|
||||||
'register_with_email_and_get_folder' => 'Register account with your email {email} and get access to this Team Folder.',
|
'register_with_email_and_get_folder' => 'Register account with your email {email} and get access to this Team Folder.',
|
||||||
|
'invite_to_join_team_folder' => 'Invitation To Join Team Folder',
|
||||||
|
'or_decline_your_invitation' => 'Or {0} your invitation.',
|
||||||
|
'decline' => 'decline',
|
||||||
|
'you_are_successfully_joined' => 'You are successfully joined',
|
||||||
|
'proceed_to_participate_with_team' => 'You can now proceed to your account and participate in team folder',
|
||||||
|
'proceed_to_your_account' => 'Proceed to your account',
|
||||||
|
'go_to_team_folder' => 'Go to Team Folder',
|
||||||
|
'you_denied_invitation' => 'You are successfully denied invitation',
|
||||||
|
'invitation_used' => 'Your invitation has been used',
|
||||||
|
'invitation_used_description' => 'We are sorry but this invitation was used previously',
|
||||||
|
'go_to_your_shared_folders' => 'Go to your shared folders',
|
||||||
|
'accept_invitation' => 'Accept Invitation',
|
||||||
|
'accept_and_register' => 'Accept and Register Account',
|
||||||
|
'application' => 'Application',
|
||||||
|
'account_settings' => 'Account Settings',
|
||||||
|
'first_name' => 'First Name',
|
||||||
|
'last_name' => 'Last Name',
|
||||||
|
'gmt' => 'GMT',
|
||||||
|
'theme_mode' => 'Theme Mode',
|
||||||
|
'set_default_theme_disclaimer' => 'Set your theme mode on dark, light or based on your system settings.',
|
||||||
|
'default_emojis' => 'Default Emojis',
|
||||||
|
'set_default_emoji_disclaimer' => 'Set your default emojis for your folder custom icons. You can set Twemoji or default Apple emojis.',
|
||||||
|
'light_mode' => 'Light mode',
|
||||||
|
'dark_mode' => 'Dark mode',
|
||||||
|
'based_on_system' => 'Based on system settings',
|
||||||
|
'storage_usage' => 'Storage Usage',
|
||||||
|
'total_of' => 'Total of {capacity}',
|
||||||
|
'used' => 'Used',
|
||||||
|
'in_last_x_days' => 'In last 45 days',
|
||||||
|
'edit_members' => 'Edit Members',
|
||||||
|
'dissolve_team' => 'Dissolve Team',
|
||||||
|
'edit_team_members' => 'Edit Team Members',
|
||||||
|
'file_request' => 'File Request',
|
||||||
|
'create_team_folder_description' => 'Collaborate on your files with your team easily by creating new team folder.',
|
||||||
|
'create_team_folder' => 'Create Team Folder',
|
||||||
|
'spotlight' => 'Spotlight',
|
||||||
|
'your_trash_is_empty' => 'Your Trash is Empty',
|
||||||
|
'create' => 'Create',
|
||||||
|
'upload_or_create' => 'Upload / Create',
|
||||||
|
'base' => 'Base',
|
||||||
|
'not_any_folder' => "There isn't any folder.",
|
||||||
|
'collaboration' => 'Collaboration',
|
||||||
|
'team_folders' => 'Team Folders',
|
||||||
|
'shared_with_me' => 'Shared with Me',
|
||||||
|
'broadcasting' => 'Broadcasting',
|
||||||
|
'view' => 'View',
|
||||||
|
'sorting' => 'Sorting',
|
||||||
|
'accept' => 'Accept',
|
||||||
|
'you_accepted_invitation' => 'You successfully accepted invitation',
|
||||||
|
'you_decline_invitation' => 'You successfully decline invitation',
|
||||||
|
'notification_center' => 'Notification Center',
|
||||||
|
'clear_all' => 'Clear all',
|
||||||
|
'not_any_notifications' => "There aren't any notifications.",
|
||||||
|
'unread' => 'unread',
|
||||||
|
'read' => 'Read',
|
||||||
|
'notifications' => 'Notifications',
|
||||||
|
'options' => 'Options',
|
||||||
|
'loading_content' => 'loading content...',
|
||||||
|
'note' => 'Note',
|
||||||
|
'user_was_deleted' => 'User was deleted',
|
||||||
|
'max_storage' => 'Max Storage',
|
||||||
|
'create_file_request' => 'Create File Request',
|
||||||
|
'convert_as_team_folder' => 'Convert as Team Folder',
|
||||||
|
'leave_team_folder' => 'Leave the Team Folder',
|
||||||
|
'nothing_shared_with_you' => 'Nothing Shared With You',
|
||||||
|
'nothing_shared_with_you_description' => 'All items that are shared with you will be visible here.',
|
||||||
|
'you_left_team_folder' => 'You have successfully left the team folder',
|
||||||
|
'there_is_nothing' => 'There is Nothing',
|
||||||
|
'frequently_used' => 'Frequently Used',
|
||||||
|
'there_is_nothing_smile' => 'There is nothing :(',
|
||||||
|
'cache' => 'Cache',
|
||||||
|
'cache_note' => 'Did you change anything in your .env file? Then clear your cache.',
|
||||||
|
'there_is_not_log' => 'There is not any server log.',
|
||||||
|
'there_is_not_database_backup' => 'There is not any database backup stored.',
|
||||||
|
'backup_path' => 'You can find your backups in <b>/storage/app/app-backups</b>.',
|
||||||
|
'update_your_credentials' => 'Update Your Credentials',
|
||||||
|
'search_your_users' => 'Search through your users...',
|
||||||
|
'files_and_folders' => 'Files & Folders',
|
||||||
|
'actions' => 'Actions',
|
||||||
|
'suggested_filters' => 'Suggested Filters',
|
||||||
|
'go' => 'Go',
|
||||||
|
'navigate' => 'Navigate',
|
||||||
|
'web_code_copied' => 'Your web insert code was copied',
|
||||||
|
'share_with_multiple_emails' => 'Share on multiple emails',
|
||||||
|
'get_qr_code' => 'Get your QR code',
|
||||||
|
'store_changes' => 'Store Changes',
|
||||||
|
'send' => 'Send',
|
||||||
|
'show_details' => 'Show Details',
|
||||||
|
'select_or_search_emoji' => 'Select or search emoji icon...',
|
||||||
|
'create_request' => 'Create Request',
|
||||||
|
'copy_upload_request_link' => 'Copy your upload request link',
|
||||||
|
'type_email_' => 'Type email...',
|
||||||
|
'send_request_by_email' => 'Send Request by Email',
|
||||||
|
'send_request_by_email_description' => 'Send your file request on recipients email',
|
||||||
|
'message_for_recipient' => 'Type message for recipient...',
|
||||||
|
'message_optional' => 'Message (optional)',
|
||||||
|
'message_optional_description' => 'This message will be showed for your email recipient or in the upload page.',
|
||||||
|
'folder_name_optional' => 'Folder Name (optional)',
|
||||||
|
'folder_name_optional_description' => 'Created folder with files will be named with your own name.',
|
||||||
|
'type_name_' => 'Type name...',
|
||||||
|
'replace_icon_with_emoji' => 'Replace folder icon with an Emoji',
|
||||||
|
'emoji_as_an_icon' => 'Emoji as an Icon',
|
||||||
|
'current_password' => 'Current Password',
|
||||||
|
'delete_account' => 'Delete Account',
|
||||||
|
'details' => 'Details',
|
||||||
|
'store_credentials' => 'Store Credentials',
|
||||||
|
'default_language_disclaimer' => 'If this language is set as default, app will appear in this language for all users.',
|
||||||
|
'reset_user_password' => 'Reset User Password',
|
||||||
|
'server' => 'Server',
|
||||||
|
'environment' => 'Environment',
|
||||||
|
'homepage' => 'Homepage',
|
||||||
|
'allow_homepage' => 'Allow Homepage',
|
||||||
|
'allow_homepage_note' => 'When this is turned on, your visitors can visit your default homepage.',
|
||||||
|
'storage_upload' => 'Storage & Upload',
|
||||||
|
'allow_recaptcha' => 'Allow ReCaptcha',
|
||||||
|
'allow_recaptcha_note' => 'ReCaptcha will be allowed on Registration and Contact Us forms.',
|
||||||
|
'login_and_registration' => 'Login & Registration',
|
||||||
|
'account' => 'Account',
|
||||||
|
'search' => 'Search',
|
||||||
|
'latest_registrations' => 'Latest Registrations',
|
||||||
|
'total_storage' => 'Total Storage',
|
||||||
|
'total_users' => 'Total Users',
|
||||||
|
'temporary_unavailable' => 'Temporary Unavailable',
|
||||||
|
'shared_link_temporary_unavailable' => 'Unfortunately, this shared link is temporary unavailable. Please try it later.',
|
||||||
|
'not_selected' => 'Not selected',
|
||||||
|
'waiting_for_accept_invitation' => 'Waiting for accept invitation...',
|
||||||
|
'team_folder_updated' => 'Your team folder was updated',
|
||||||
|
'update_team_folder' => 'Update Team Folder',
|
||||||
|
'edit_team_folder' => 'Edit Team Folder',
|
||||||
|
'upgrade_to_invite_members' => 'You have to upgrade your account to add this new member.',
|
||||||
|
'type_valid_email' => 'You have to type valid email',
|
||||||
|
'team_was_invited' => 'Your Team was invited successfully.',
|
||||||
|
'team_was_invited_and_folder_moved' => 'Your Team was invited and folder was moved into Team Folders section.',
|
||||||
|
'move_and_invite_members' => 'Move & Invite Members',
|
||||||
|
'add_at_least_one_member' => 'Please add at least one member.',
|
||||||
|
'add_at_least_one_member_into_team_folder' => 'Please add at least one member into your Team Folders.',
|
||||||
|
'your_members' => 'Your Members',
|
||||||
|
'type_member_email_' => 'Type member email...',
|
||||||
|
'add_member' => 'Add Member',
|
||||||
|
'go_to_dashboard' => 'Go To Dashboard',
|
||||||
|
'go_to_settings' => 'Go To Settings',
|
||||||
|
'go_to_payments' => 'Go To Payments',
|
||||||
|
'go_to_pages' => 'Go To Pages',
|
||||||
|
'go_to_languages' => 'Go To Languages',
|
||||||
|
'show_all_plans' => 'Show all Plans',
|
||||||
|
'show_transactions' => 'Show Transactions',
|
||||||
|
'go_home_spotlight' => 'Go Home',
|
||||||
|
'go_to_recent_uploads' => 'Go To Recent Uploads',
|
||||||
|
'go_to_publicly_shared' => 'Go To Publicly Shared',
|
||||||
|
'go_to_trash' => 'Go To Trash',
|
||||||
|
'go_to_team_folders' => 'Go To Team Folders',
|
||||||
|
'go_to_shared_with_me' => 'Go To Shared with Me',
|
||||||
|
'update_profile_settings' => 'Update Profile Settings',
|
||||||
|
'update_security_api' => 'Update Security & API',
|
||||||
|
'show_storage_details' => 'Show Storage Details',
|
||||||
|
'show_billing' => 'Show Billing',
|
||||||
|
'empty_your_trash' => 'Empty Your Trash',
|
||||||
|
'toggle_grid_list_view' => 'Toggle Grid/List View',
|
||||||
|
'toggle_dark_light_mode' => 'Toggle Dark/Light Mode',
|
||||||
|
'toggle_full_screen_mode' => 'Toggle Full-Screen Mode',
|
||||||
|
'toggle_emoji_type' => 'Toggle Emoji Type',
|
||||||
|
'show_all_subscriptions' => 'Show all Subscriptions',
|
||||||
|
'write_feedback' => 'Write a Feedback',
|
||||||
|
'branding' => 'Branding',
|
||||||
|
'save_broadcast_settings' => 'Save Broadcast Settings',
|
||||||
|
'save_storage_settings' => 'Save Storage Settings',
|
||||||
|
'storage_driver' => 'Storage Driver',
|
||||||
|
'mail_driver' => 'Mail Driver',
|
||||||
|
'select_mail_driver' => 'Select your mail driver',
|
||||||
|
'broadcast_driver_updated' => 'Your broadcast driver was updated.',
|
||||||
|
'storage_driver_updated' => 'Your storage driver was updated.',
|
||||||
|
'spotlight_search' => 'Spotlight search...',
|
||||||
|
'add' => 'Add',
|
||||||
|
'can_edit' => 'Can Edit',
|
||||||
|
'can_view' => 'Can View',
|
||||||
|
'exceed_upload_limit' => 'You exceeded your upload limit',
|
||||||
|
'exceed_upload_limit_description' => 'Unfortunately, you can not upload your file.',
|
||||||
|
'really_dissolve_team' => 'Are you sure you want to dissolve this team?',
|
||||||
|
'really_dissolve_team_desc' => 'All team members will lose access to your files and existing folder will be moved into your "Files" section.',
|
||||||
|
'really_leave_team' => 'Are you sure you want to leave this team folder?',
|
||||||
|
'really_leave_team_desc' => "You will don't have access to the files and all your previously uploaded content will be part of this Team Folder you are leaving.",
|
||||||
|
'images' => 'Images',
|
||||||
|
'videos' => 'Videos',
|
||||||
|
'audios' => 'Audios',
|
||||||
|
'documents' => 'Documents',
|
||||||
|
'paginator' => 'Showing {from} - {to} from {total} records',
|
||||||
|
'require_email_verification' => 'Require Email Verification',
|
||||||
|
'require_email_verification_note' => 'Turn on, if you want to allow user email verification.',
|
||||||
|
'completed' => 'Completed',
|
||||||
|
'error' => 'Error',
|
||||||
|
'cancelled' => 'Cancelled',
|
||||||
|
'active' => 'Active',
|
||||||
|
'archived' => 'Archived',
|
||||||
|
'inactive' => 'Inactive',
|
||||||
|
'total_x_of_x_used' => 'Total ${use} of ${total} Used',
|
||||||
|
'total_x_of_x_members' => 'Total ${use} of ${total} Members',
|
||||||
|
'go_back_from_x' => 'Go back from {location}',
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|||||||
+53
-53
@@ -1,53 +1,53 @@
|
|||||||
{
|
{
|
||||||
"/js/main.js": "/js/main.js",
|
"/js/main.js": "/js/main.js",
|
||||||
"/chunks/request.js": "/chunks/request.js?id=88d37ed86ceba816",
|
"/chunks/request.js": "/chunks/request.js?id=dfe723f178024684",
|
||||||
"/chunks/request-upload.js": "/chunks/request-upload.js?id=9722fdb2f733ed4d",
|
"/chunks/request-upload.js": "/chunks/request-upload.js?id=adb096eca092cfdf",
|
||||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
|
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
|
||||||
"/chunks/status-check.js": "/chunks/status-check.js?id=86537fa25cb2c188",
|
"/chunks/status-check.js": "/chunks/status-check.js?id=ca27b637120e086a",
|
||||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=df5bd89528649783",
|
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=df5bd89528649783",
|
||||||
"/chunks/database.js": "/chunks/database.js?id=1d8661f23ef3f761",
|
"/chunks/database.js": "/chunks/database.js?id=6bd9994bd24d6c8d",
|
||||||
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=b27ffed124d1dbc9",
|
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=fc9b6215ce43229b",
|
||||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=c0958df6a3672aa6",
|
"/chunks/app-setup.js": "/chunks/app-setup.js?id=77937d105dfa28ba",
|
||||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=2e8ec4e6bd25f645",
|
"/chunks/admin-account.js": "/chunks/admin-account.js?id=6dbc3fe81f957a59",
|
||||||
"/chunks/shared.js": "/chunks/shared.js?id=1e0220ae85779862",
|
"/chunks/shared.js": "/chunks/shared.js?id=b7a9b097ce035686",
|
||||||
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=d3b959af90b6d1e3",
|
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=855a1efa8bc5a5cd",
|
||||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=af632a9bdc82be95",
|
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=9ccb8bb19b95a23f",
|
||||||
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=672e931a9fb0b672",
|
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=672e931a9fb0b672",
|
||||||
"/chunks/not-found.js": "/chunks/not-found.js?id=9f6ce23ce5d969f1",
|
"/chunks/not-found.js": "/chunks/not-found.js?id=9f6ce23ce5d969f1",
|
||||||
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=423f9af0ed1f7c85",
|
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=f564565faa09d6d6",
|
||||||
"/chunks/admin.js": "/chunks/admin.js?id=a1750b4ce22d58f8",
|
"/chunks/admin.js": "/chunks/admin.js?id=40ae44d319d3322b",
|
||||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=cb7c5fd2d6dbf0df",
|
"/chunks/dashboard.js": "/chunks/dashboard.js?id=c7fa2f0dc8ed949c",
|
||||||
"/chunks/invoices.js": "/chunks/invoices.js?id=f89964a5a55ace45",
|
"/chunks/invoices.js": "/chunks/invoices.js?id=1416cbf6d1a593ac",
|
||||||
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=3a34c7abf7c39465",
|
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=5bf6704f5b599f36",
|
||||||
"/chunks/pages.js": "/chunks/pages.js?id=a22d90135b5c42a5",
|
"/chunks/pages.js": "/chunks/pages.js?id=c8380d571e91e8be",
|
||||||
"/chunks/page-edit.js": "/chunks/page-edit.js?id=b19868b3100360a3",
|
"/chunks/page-edit.js": "/chunks/page-edit.js?id=b19868b3100360a3",
|
||||||
"/chunks/plans.js": "/chunks/plans.js?id=3596e49797d8e542",
|
"/chunks/plans.js": "/chunks/plans.js?id=c8506e0e20966ef7",
|
||||||
"/chunks/users.js": "/chunks/users.js?id=fca6ae29a4db92e8",
|
"/chunks/users.js": "/chunks/users.js?id=ec687ee365c4248a",
|
||||||
"/chunks/user-create.js": "/chunks/user-create.js?id=f3d40fff62b631c3",
|
"/chunks/user-create.js": "/chunks/user-create.js?id=bb3b30ce248209f0",
|
||||||
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=cc9d00d1f7b2b08d",
|
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=a8ffa08ce94ddf4e",
|
||||||
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=a9ca1e309b659182",
|
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=3b516dcccbbef20a",
|
||||||
"/chunks/user.js": "/chunks/user.js?id=6372d05a9abdc1c2",
|
"/chunks/user.js": "/chunks/user.js?id=c191b906a0496fe5",
|
||||||
"/chunks/user-detail.js": "/chunks/user-detail.js?id=c114a34ec886981f",
|
"/chunks/user-detail.js": "/chunks/user-detail.js?id=80491654e6ee63b1",
|
||||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=72a0d5f53d7a2cc8",
|
"/chunks/user-storage.js": "/chunks/user-storage.js?id=69eb59b682c5482f",
|
||||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=f033931911b07f5c",
|
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=a69ebc3b23446cda",
|
||||||
"/chunks/user-password.js": "/chunks/user-password.js?id=6d23f552e9d52c49",
|
"/chunks/user-password.js": "/chunks/user-password.js?id=e1c4ebc07ba426e6",
|
||||||
"/chunks/user-delete.js": "/chunks/user-delete.js?id=82b5180a1d9e1217",
|
"/chunks/user-delete.js": "/chunks/user-delete.js?id=82b5180a1d9e1217",
|
||||||
"/chunks/plan.js": "/chunks/plan.js?id=d3864115f662f616",
|
"/chunks/plan.js": "/chunks/plan.js?id=4b267375ea9f19b3",
|
||||||
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=4d7859aa1f1a3f7f",
|
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=a956ceca6865c50c",
|
||||||
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=866099771fab6dcc",
|
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=f366690f8764bb20",
|
||||||
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=e26d5bd3ecbb4bb1",
|
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=e26d5bd3ecbb4bb1",
|
||||||
"/chunks/payments.js": "/chunks/payments.js?id=3302fa3148c766de",
|
"/chunks/payments.js": "/chunks/payments.js?id=dc4586691c25de6f",
|
||||||
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=45bdae67aa7d936f",
|
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=9942aaac1bdb11e5",
|
||||||
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=76886eefc4b9d00a",
|
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=717bf97ba2ffdc28",
|
||||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=64d41e8b5ce7ff28",
|
"/chunks/app-settings.js": "/chunks/app-settings.js?id=55da23af2b076069",
|
||||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=20103e4ae5bac339",
|
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=c308941663208358",
|
||||||
"/chunks/app-index.js": "/chunks/app-index.js?id=a93175b2a28b1d56",
|
"/chunks/app-index.js": "/chunks/app-index.js?id=aa62aedf1f38cc22",
|
||||||
"/chunks/app-environment.js": "/chunks/app-environment.js?id=68e6d7a9cd872cb7",
|
"/chunks/app-environment.js": "/chunks/app-environment.js?id=538eea914fc27794",
|
||||||
"/chunks/app-others.js": "/chunks/app-others.js?id=c6ffde5374b27ae2",
|
"/chunks/app-others.js": "/chunks/app-others.js?id=19963f8026eb335a",
|
||||||
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=d3ed0a81743ac3ba",
|
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=3f8e5f906a4dee4e",
|
||||||
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=4ee8de4ac0dae19e",
|
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=4ee8de4ac0dae19e",
|
||||||
"/chunks/app-server.js": "/chunks/app-server.js?id=8269a0df9064927f",
|
"/chunks/app-server.js": "/chunks/app-server.js?id=dd8c15d4646053cd",
|
||||||
"/chunks/app-language.js": "/chunks/app-language.js?id=83a53ba4d233ae46",
|
"/chunks/app-language.js": "/chunks/app-language.js?id=ba087a47c8efca29",
|
||||||
"/chunks/homepage.js": "/chunks/homepage.js?id=f1cfba4f0152f4b9",
|
"/chunks/homepage.js": "/chunks/homepage.js?id=f1cfba4f0152f4b9",
|
||||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=2504793131107b1f",
|
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=2504793131107b1f",
|
||||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=2e0b16655d2d85d7",
|
"/chunks/contact-us.js": "/chunks/contact-us.js?id=2e0b16655d2d85d7",
|
||||||
@@ -57,19 +57,19 @@
|
|||||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=77351b7631a6ee6c",
|
"/chunks/sign-up.js": "/chunks/sign-up.js?id=77351b7631a6ee6c",
|
||||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=50a1bc5e4ed86ec9",
|
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=50a1bc5e4ed86ec9",
|
||||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=f652de052dba55c1",
|
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=f652de052dba55c1",
|
||||||
"/chunks/settings.js": "/chunks/settings.js?id=0c64ce909339f286",
|
"/chunks/settings.js": "/chunks/settings.js?id=db0f876b7f1229bb",
|
||||||
"/chunks/profile.js": "/chunks/profile.js?id=aa448a63771d7ad0",
|
"/chunks/profile.js": "/chunks/profile.js?id=5b2ed82815320625",
|
||||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=70128f4330237452",
|
"/chunks/settings-password.js": "/chunks/settings-password.js?id=c912a79595c2efcb",
|
||||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=80bca2eb75da275d",
|
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=6fec7aac1a5280c7",
|
||||||
"/chunks/billing.js": "/chunks/billing.js?id=7d56ea0d79e31c19",
|
"/chunks/billing.js": "/chunks/billing.js?id=2a2cd66f503a9fc0",
|
||||||
"/chunks/platform.js": "/chunks/platform.js?id=31b2ecb59e3124fc",
|
"/chunks/platform.js": "/chunks/platform.js?id=409b7dc2a080e93e",
|
||||||
"/chunks/files.js": "/chunks/files.js?id=40434484f678dfcf",
|
"/chunks/files.js": "/chunks/files.js?id=7ba4274a7b63f15b",
|
||||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=cd3353e8928b57df",
|
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=aeb9ea7f43a75aa1",
|
||||||
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=b3a32dbacd1e408e",
|
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=ed296d2d8f6b4302",
|
||||||
"/chunks/trash.js": "/chunks/trash.js?id=878ef09616cc4668",
|
"/chunks/trash.js": "/chunks/trash.js?id=b671a56c6cfb99da",
|
||||||
"/chunks/team-folders.js": "/chunks/team-folders.js?id=2645ae9d570f94d2",
|
"/chunks/team-folders.js": "/chunks/team-folders.js?id=7518e54deade41d3",
|
||||||
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=ad9d57d26962de4a",
|
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=52f03c48445091e5",
|
||||||
"/chunks/invitation.js": "/chunks/invitation.js?id=21d172e77f12dbbb",
|
"/chunks/invitation.js": "/chunks/invitation.js?id=9ed8456c9d6d5ce1",
|
||||||
"/css/tailwind.css": "/css/tailwind.css",
|
"/css/tailwind.css": "/css/tailwind.css",
|
||||||
"/css/app.css": "/css/app.css"
|
"/css/app.css": "/css/app.css"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||||
{{ row.data.attributes.role }}
|
{{ $t(row.data.attributes.role) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||||
{{ row.data.attributes.role }}
|
{{ $t(row.data.attributes.role) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1" v-if="config.isSaaS">
|
<td class="px-3 md:px-1" v-if="config.isSaaS">
|
||||||
@@ -190,7 +190,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||||
{{ row.data.attributes.role }}
|
{{ $t(row.data.attributes.role) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -274,11 +274,11 @@ export default {
|
|||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Billing Est.'),
|
label: this.$t('billing_est.'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('admin_page_user.table.created_at'),
|
label: this.$t('created_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
@@ -303,12 +303,12 @@ export default {
|
|||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Max Storage'),
|
label: this.$t('max_storage'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
hidden: !this.config.storageLimit,
|
hidden: !this.config.storageLimit,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('admin_page_user.table.created_at'),
|
label: this.$t('created_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
@@ -333,12 +333,12 @@ export default {
|
|||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Max Storage'),
|
label: this.$t('max_storage'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
hidden: !this.config.storageLimit,
|
hidden: !this.config.storageLimit,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('admin_page_user.table.created_at'),
|
label: this.$t('created_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -23,7 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
||||||
{{ $t('User was deleted') }}
|
{{ $t('user_was_deleted') }}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -31,13 +31,13 @@
|
|||||||
v-if="config.subscriptionType === 'fixed'"
|
v-if="config.subscriptionType === 'fixed'"
|
||||||
:color="$getTransactionStatusColor(row.data.attributes.status)"
|
:color="$getTransactionStatusColor(row.data.attributes.status)"
|
||||||
>
|
>
|
||||||
{{ row.data.attributes.status }}
|
{{ $t(row.data.attributes.status) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
<ColorLabel
|
<ColorLabel
|
||||||
v-if="config.subscriptionType === 'metered'"
|
v-if="config.subscriptionType === 'metered'"
|
||||||
:color="$getTransactionTypeColor(row.data.attributes.type)"
|
:color="$getTransactionTypeColor(row.data.attributes.type)"
|
||||||
>
|
>
|
||||||
{{ row.data.attributes.type }}
|
{{ $t(row.data.attributes.type) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
<!--Empty page-->
|
<!--Empty page-->
|
||||||
<template v-slot:empty-page>
|
<template v-slot:empty-page>
|
||||||
<InfoBox style="margin-bottom: 0">
|
<InfoBox style="margin-bottom: 0">
|
||||||
<p>{{ $t("There aren't any transactions.") }}</p>
|
<p>{{ $t("not_any_transactions") }}</p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
</template>
|
</template>
|
||||||
</DatatableWrapper>
|
</DatatableWrapper>
|
||||||
@@ -99,17 +99,17 @@ export default {
|
|||||||
return {
|
return {
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
label: this.$t('Note'),
|
label: this.$t('note'),
|
||||||
field: 'note',
|
field: 'note',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('User'),
|
label: this.$t('user'),
|
||||||
field: 'user_id',
|
field: 'user_id',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Status'),
|
label: this.$t('status'),
|
||||||
field: 'status',
|
field: 'status',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
@@ -119,12 +119,12 @@ export default {
|
|||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Payed At'),
|
label: this.$t('payed_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Service'),
|
label: this.$t('service'),
|
||||||
field: 'driver',
|
field: 'driver',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
>
|
>
|
||||||
<template slot="loading">
|
<template slot="loading">
|
||||||
<b>
|
<b>
|
||||||
{{ $t('loading content...') }}
|
{{ $t('loading_content') }}
|
||||||
</b>
|
</b>
|
||||||
</template>
|
</template>
|
||||||
</pdf>
|
</pdf>
|
||||||
|
|||||||
@@ -12,11 +12,11 @@
|
|||||||
:action="$t('create_something')"
|
:action="$t('create_something')"
|
||||||
/>
|
/>
|
||||||
<PopoverItem name="desktop-create" side="left">
|
<PopoverItem name="desktop-create" side="left">
|
||||||
<OptionGroup :title="$t('Upload')">
|
<OptionGroup :title="$t('upload')">
|
||||||
<OptionUpload :title="$t('upload_files')" type="file" />
|
<OptionUpload :title="$t('upload_files')" type="file" />
|
||||||
<OptionUpload :title="$t('upload_folder')" type="folder" />
|
<OptionUpload :title="$t('upload_folder')" type="folder" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup :title="$t('Create')">
|
<OptionGroup :title="$t('create')">
|
||||||
<Option
|
<Option
|
||||||
@click.native="$createFolder"
|
@click.native="$createFolder"
|
||||||
:title="$t('create_folder')"
|
:title="$t('create_folder')"
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
'is-inactive': !canManipulate,
|
'is-inactive': !canManipulate,
|
||||||
}"
|
}"
|
||||||
source="trash"
|
source="trash"
|
||||||
:action="$t('actions.delete')"
|
:action="$t('delete')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
/>
|
/>
|
||||||
<PopoverItem name="desktop-create" side="left">
|
<PopoverItem name="desktop-create" side="left">
|
||||||
<OptionGroup
|
<OptionGroup
|
||||||
:title="$t('Frequently Used')"
|
:title="$t('frequently_used')"
|
||||||
>
|
>
|
||||||
<OptionUpload
|
<OptionUpload
|
||||||
:title="$t('upload_files')"
|
:title="$t('upload_files')"
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
icon="folder-plus"
|
icon="folder-plus"
|
||||||
/>
|
/>
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup :title="$t('Others')">
|
<OptionGroup :title="$t('others')">
|
||||||
<OptionUpload
|
<OptionUpload
|
||||||
:class="{
|
:class="{
|
||||||
'is-inactive': (isSharedWithMe && !canEdit) || canUploadFolderInView || isTeamFolderHomepage || isSharedWithMeHomepage,
|
'is-inactive': (isSharedWithMe && !canEdit) || canUploadFolderInView || isTeamFolderHomepage || isSharedWithMeHomepage,
|
||||||
@@ -42,12 +42,12 @@
|
|||||||
<Option
|
<Option
|
||||||
@click.stop.native="$createTeamFolder"
|
@click.stop.native="$createTeamFolder"
|
||||||
:class="{ 'is-inactive': canCreateTeamFolder }"
|
:class="{ 'is-inactive': canCreateTeamFolder }"
|
||||||
:title="$t('Create Team Folder')"
|
:title="$t('create_team_folder')"
|
||||||
icon="users"
|
icon="users"
|
||||||
/>
|
/>
|
||||||
<Option
|
<Option
|
||||||
@click.native="$createFileRequest"
|
@click.native="$createFileRequest"
|
||||||
:title="$t('Create File Request')"
|
:title="$t('create_file_request')"
|
||||||
icon="upload-cloud"
|
icon="upload-cloud"
|
||||||
/>
|
/>
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
@@ -70,23 +70,23 @@
|
|||||||
<PopoverItem name="team-folder" side="left">
|
<PopoverItem name="team-folder" side="left">
|
||||||
<TeamFolderPreview />
|
<TeamFolderPreview />
|
||||||
|
|
||||||
<OptionGroup v-if="$isThisRoute($route, ['TeamFolders'])" :title="$t('Options')">
|
<OptionGroup v-if="$isThisRoute($route, ['TeamFolders'])" :title="$t('options')">
|
||||||
<Option
|
<Option
|
||||||
@click.native="$updateTeamFolder(teamFolder)"
|
@click.native="$updateTeamFolder(teamFolder)"
|
||||||
:title="$t('Edit Members')"
|
:title="$t('edit_members')"
|
||||||
icon="rename"
|
icon="rename"
|
||||||
/>
|
/>
|
||||||
<Option
|
<Option
|
||||||
@click.native="$dissolveTeamFolder(teamFolder)"
|
@click.native="$dissolveTeamFolder(teamFolder)"
|
||||||
:title="$t('Dissolve Team')"
|
:title="$t('dissolve_team')"
|
||||||
icon="trash"
|
icon="trash"
|
||||||
/>
|
/>
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
|
|
||||||
<OptionGroup v-if="$isThisRoute($route, ['SharedWithMe'])" :title="$t('Options')">
|
<OptionGroup v-if="$isThisRoute($route, ['SharedWithMe'])" :title="$t('options')">
|
||||||
<Option
|
<Option
|
||||||
@click.native="$detachMeFromTeamFolder(teamFolder)"
|
@click.native="$detachMeFromTeamFolder(teamFolder)"
|
||||||
:title="$t('Leave the Team Folder')"
|
:title="$t('leave_team_folder')"
|
||||||
icon="user-minus"
|
icon="user-minus"
|
||||||
/>
|
/>
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
'is-inactive': !canCreateTeamFolder,
|
'is-inactive': !canCreateTeamFolder,
|
||||||
}"
|
}"
|
||||||
source="user-plus"
|
source="user-plus"
|
||||||
:action="$t('actions.convert_into_team_folder')"
|
:action="$t('convert_into_team_folder')"
|
||||||
/>
|
/>
|
||||||
<ToolbarButton
|
<ToolbarButton
|
||||||
v-if="!$isThisRoute($route, ['SharedWithMe', 'Public'])"
|
v-if="!$isThisRoute($route, ['SharedWithMe', 'Public'])"
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
'is-inactive': canDeleteInView && !canEdit,
|
'is-inactive': canDeleteInView && !canEdit,
|
||||||
}"
|
}"
|
||||||
source="trash"
|
source="trash"
|
||||||
:action="$t('actions.delete')"
|
:action="$t('delete')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -24,11 +24,11 @@
|
|||||||
:action="$t('create_something')"
|
:action="$t('create_something')"
|
||||||
/>
|
/>
|
||||||
<PopoverItem name="desktop-create" side="left">
|
<PopoverItem name="desktop-create" side="left">
|
||||||
<OptionGroup :title="$t('Upload')">
|
<OptionGroup :title="$t('upload')">
|
||||||
<OptionUpload :title="$t('upload_files')" type="file" />
|
<OptionUpload :title="$t('upload_files')" type="file" />
|
||||||
<OptionUpload :title="$t('upload_folder')" type="folder" />
|
<OptionUpload :title="$t('upload_folder')" type="folder" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup :title="$t('Create')">
|
<OptionGroup :title="$t('create')">
|
||||||
<Option
|
<Option
|
||||||
@click.native="$createFolder"
|
@click.native="$createFolder"
|
||||||
:title="$t('create_folder')"
|
:title="$t('create_folder')"
|
||||||
@@ -54,7 +54,7 @@
|
|||||||
'is-inactive': !canManipulate,
|
'is-inactive': !canManipulate,
|
||||||
}"
|
}"
|
||||||
source="trash"
|
source="trash"
|
||||||
:action="$t('actions.delete')"
|
:action="$t('delete')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export default {
|
|||||||
// Subtitle for single folder
|
// Subtitle for single folder
|
||||||
if (this.draggedItem.data.type === 'folder') {
|
if (this.draggedItem.data.type === 'folder') {
|
||||||
return this.draggedItem.items == 0
|
return this.draggedItem.items == 0
|
||||||
? this.$t('folder.empty')
|
? this.$t('empty')
|
||||||
: this.$tc('folder.item_counts', this.draggedItem.items)
|
: this.$tc('folder.item_counts', this.draggedItem.items)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<MenuMobile name="file-filter">
|
<MenuMobile name="file-filter">
|
||||||
<MenuMobileGroup>
|
<MenuMobileGroup>
|
||||||
<OptionGroup :title="$t('Base')">
|
<OptionGroup :title="$t('base')">
|
||||||
<Option
|
<Option
|
||||||
@click.native="goToFiles"
|
@click.native="goToFiles"
|
||||||
:title="$t('sidebar.home')"
|
:title="$t('sidebar.home')"
|
||||||
@@ -31,17 +31,17 @@
|
|||||||
:is-hover-disabled="true"
|
:is-hover-disabled="true"
|
||||||
/>
|
/>
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup :title="$t('Collaboration')">
|
<OptionGroup :title="$t('collaboration')">
|
||||||
<Option
|
<Option
|
||||||
@click.native="goToTeamFolders"
|
@click.native="goToTeamFolders"
|
||||||
:title="$t('Team Folders')"
|
:title="$t('team_folders')"
|
||||||
icon="users"
|
icon="users"
|
||||||
:is-active="$isThisRoute($route, 'TeamFolders')"
|
:is-active="$isThisRoute($route, 'TeamFolders')"
|
||||||
:is-hover-disabled="true"
|
:is-hover-disabled="true"
|
||||||
/>
|
/>
|
||||||
<Option
|
<Option
|
||||||
@click.native="goToSharedWithMe"
|
@click.native="goToSharedWithMe"
|
||||||
:title="$t('Shared with Me')"
|
:title="$t('shared_with_me')"
|
||||||
icon="user-check"
|
icon="user-check"
|
||||||
:is-active="$isThisRoute($route, 'SharedWithMe')"
|
:is-active="$isThisRoute($route, 'SharedWithMe')"
|
||||||
:is-hover-disabled="true"
|
:is-hover-disabled="true"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<OptionGroup :title="$t('View')">
|
<OptionGroup :title="$t('view')">
|
||||||
<Option
|
<Option
|
||||||
v-if="isList"
|
v-if="isList"
|
||||||
@click.native="changePreview('grid')"
|
@click.native="changePreview('grid')"
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
icon="list"
|
icon="list"
|
||||||
/>
|
/>
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup :title="$t('Sorting')">
|
<OptionGroup :title="$t('sorting')">
|
||||||
<Option
|
<Option
|
||||||
@click.native.stop="sort('created_at')"
|
@click.native.stop="sort('created_at')"
|
||||||
:arrow="arrowForCreatedAtField"
|
:arrow="arrowForCreatedAtField"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="flex items-center justify-between pt-0.5 pb-2" v-if="clipboard.data.attributes.date_time_original">
|
<div class="flex items-center justify-between pt-0.5 pb-2" v-if="clipboard.data.attributes.date_time_original">
|
||||||
<b class="font-bold text-sm">{{ $t('file_detail_meta.time_data') }}</b>
|
<b class="font-bold text-sm">{{ $t('time_data') }}</b>
|
||||||
<b class="font-bold text-sm">{{ clipboard.data.attributes.date_time_original }}</b>
|
<b class="font-bold text-sm">{{ clipboard.data.attributes.date_time_original }}</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<eye-off-icon size="22" class="vue-feather mb-3 inline-block text-gray-500" />
|
<eye-off-icon size="22" class="vue-feather mb-3 inline-block text-gray-500" />
|
||||||
<small class="block text-xs text-gray-500">
|
<small class="block text-xs text-gray-500">
|
||||||
{{ $t('messages.nothing_to_preview') }}
|
{{ $t('nothing_to_preview') }}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
</ListInfoItem>
|
</ListInfoItem>
|
||||||
|
|
||||||
<!--Author-->
|
<!--Author-->
|
||||||
<ListInfoItem v-if="canShowAuthor" :title="$t('Author')">
|
<ListInfoItem v-if="canShowAuthor" :title="$t('author')">
|
||||||
<div class="mt-1.5 flex items-center">
|
<div class="mt-1.5 flex items-center">
|
||||||
<MemberAvatar :size="32" :member="singleFile.data.relationships.owner" />
|
<MemberAvatar :size="32" :member="singleFile.data.relationships.owner" />
|
||||||
<span class="ml-3 block text-sm font-bold">
|
<span class="ml-3 block text-sm font-bold">
|
||||||
@@ -154,7 +154,7 @@ import { mapGetters } from 'vuex'
|
|||||||
return option.value === this.clipboard[0].data.relationships.shared.permission
|
return option.value === this.clipboard[0].data.relationships.shared.permission
|
||||||
})
|
})
|
||||||
|
|
||||||
return title ? this.$t(title.label) : this.$t('shared.can_download')
|
return title ? this.$t(title.label) : this.$t('can_download_file')
|
||||||
},
|
},
|
||||||
canShowAuthor() {
|
canShowAuthor() {
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<eye-off-icon size="22" class="vue-feather mb-3 inline-block text-gray-500" />
|
<eye-off-icon size="22" class="vue-feather mb-3 inline-block text-gray-500" />
|
||||||
<small class="block text-xs text-gray-500">
|
<small class="block text-xs text-gray-500">
|
||||||
{{ $t('messages.nothing_to_preview') }}
|
{{ $t('nothing_to_preview') }}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
<!--Folder sub line-->
|
<!--Folder sub line-->
|
||||||
<small v-if="isFolder" class="block text-xs text-gray-500 dark:text-gray-500">
|
<small v-if="isFolder" class="block text-xs text-gray-500 dark:text-gray-500">
|
||||||
{{ folderItems === 0 ? $t('folder.empty') : $tc('folder.item_counts', folderItems)
|
{{ folderItems === 0 ? $t('empty') : $tc('folder.item_counts', folderItems)
|
||||||
}}<span class="hidden text-xs text-gray-500 dark:text-gray-500 lg:inline-block"
|
}}<span class="hidden text-xs text-gray-500 dark:text-gray-500 lg:inline-block"
|
||||||
>, {{ timeStamp }}</span
|
>, {{ timeStamp }}</span
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
|
|
||||||
<!--Folder sub line-->
|
<!--Folder sub line-->
|
||||||
<small v-if="isFolder" class="block text-xs text-gray-500 dark:text-gray-500">
|
<small v-if="isFolder" class="block text-xs text-gray-500 dark:text-gray-500">
|
||||||
{{ folderItems === 0 ? $t('folder.empty') : $tc('folder.item_counts', folderItems) }},
|
{{ folderItems === 0 ? $t('empty') : $tc('folder.item_counts', folderItems) }},
|
||||||
{{ timeStamp }}
|
{{ timeStamp }}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
@click.native="closeSelecting"
|
@click.native="closeSelecting"
|
||||||
class="action-btn close-icon"
|
class="action-btn close-icon"
|
||||||
source="close"
|
source="close"
|
||||||
:action="$t('actions.close')"
|
:action="$t('close')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
|
|||||||
@@ -3,18 +3,6 @@
|
|||||||
class="sticky top-0 z-[19] block flex w-full items-center justify-between bg-white py-5 px-4 text-center dark:bg-dark-background lg:hidden"
|
class="sticky top-0 z-[19] block flex w-full items-center justify-between bg-white py-5 px-4 text-center dark:bg-dark-background lg:hidden"
|
||||||
>
|
>
|
||||||
<NavigationBar />
|
<NavigationBar />
|
||||||
|
|
||||||
<!-- <div class="relative flex items-center">
|
|
||||||
<!–More Actions–>
|
|
||||||
<div class="relative">
|
|
||||||
<div
|
|
||||||
@click="showMobileNavigation"
|
|
||||||
class="absolute right-0 -mr-2 -translate-y-2/4 transform p-4"
|
|
||||||
>
|
|
||||||
<menu-icon size="17" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>-->
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<search-icon size="18" class="vue-feather text-gray-400 dark:text-gray-600" />
|
<search-icon size="18" class="vue-feather text-gray-400 dark:text-gray-600" />
|
||||||
<span class="pl-2.5 text-xs font-bold text-gray-400 dark:text-gray-600">
|
<span class="pl-2.5 text-xs font-bold text-gray-400 dark:text-gray-600">
|
||||||
{{ $t('inputs.placeholder_search_files') }}
|
{{ $t('search_anything') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<span
|
<span
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
>
|
>
|
||||||
<check-icon size="16" class="vue-feather mr-2 text-green-600 dark:text-green-600" />
|
<check-icon size="16" class="vue-feather mr-2 text-green-600 dark:text-green-600" />
|
||||||
<span class="text-sm font-bold text-green-600 dark:text-green-600">
|
<span class="text-sm font-bold text-green-600 dark:text-green-600">
|
||||||
{{ $t('Accept') }}
|
{{ $t('accept') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
>
|
>
|
||||||
<x-icon size="16" class="vue-feather mr-2 text-rose-600 dark:text-rose-600" />
|
<x-icon size="16" class="vue-feather mr-2 text-rose-600 dark:text-rose-600" />
|
||||||
<span class="text-sm font-bold text-rose-600 dark:text-rose-600">
|
<span class="text-sm font-bold text-rose-600 dark:text-rose-600">
|
||||||
{{ $t('Decline') }}
|
{{ $t('decline') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -121,7 +121,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('You successfully accepted invitation'),
|
message: this.$t('you_accepted_invitation'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -132,7 +132,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('You successfully decline invitation'),
|
message: this.$t('you_decline_invitation'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -11,27 +11,27 @@
|
|||||||
|
|
||||||
<!--Title-->
|
<!--Title-->
|
||||||
<b class="dark:text-gray-200 text-xl font-extrabold px-2.5 mb-2.5 block">
|
<b class="dark:text-gray-200 text-xl font-extrabold px-2.5 mb-2.5 block">
|
||||||
{{ $t('Notification Center') }}
|
{{ $t('notification_center') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<div class="px-2.5">
|
<div class="px-2.5">
|
||||||
<MobileActionButton v-if="readNotifications.length || unreadNotifications.length" @click.native="$store.dispatch('deleteAllNotifications')" icon="check-square" class="mb-2 dark:!bg-4x-dark-foreground">
|
<MobileActionButton v-if="readNotifications.length || unreadNotifications.length" @click.native="$store.dispatch('deleteAllNotifications')" icon="check-square" class="mb-2 dark:!bg-4x-dark-foreground">
|
||||||
{{ $t('Clear all') }}
|
{{ $t('clear_all') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
|
|
||||||
<p v-if="!readNotifications.length && !unreadNotifications.length" class="text-sm mt-8">
|
<p v-if="!readNotifications.length && !unreadNotifications.length" class="text-sm mt-8">
|
||||||
{{ $t("There aren't any notifications.") }}
|
{{ $t("not_any_notifications") }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<b v-if="unreadNotifications.length" class="dark-text-theme mt-1.5 block px-2.5 mb-2.5 text-xs text-gray-400">
|
<b v-if="unreadNotifications.length" class="dark-text-theme mt-1.5 block px-2.5 mb-2.5 text-xs text-gray-400">
|
||||||
{{ $t('Unread') }}
|
{{ $t('unread') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<Notification :notification="notification" v-for="notification in unreadNotifications" :key="notification.id" />
|
<Notification :notification="notification" v-for="notification in unreadNotifications" :key="notification.id" />
|
||||||
|
|
||||||
<b v-if="readNotifications.length" class="dark-text-theme mt-2.5 block px-2.5 mb-2.5 text-xs text-gray-400">
|
<b v-if="readNotifications.length" class="dark-text-theme mt-2.5 block px-2.5 mb-2.5 text-xs text-gray-400">
|
||||||
{{ $t('Read') }}
|
{{ $t('read') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<Notification :notification="notification" v-for="notification in readNotifications" :key="notification.id" />
|
<Notification :notification="notification" v-for="notification in readNotifications" :key="notification.id" />
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<PopupWrapper name="select-payment-method">
|
<PopupWrapper name="select-payment-method">
|
||||||
<PopupHeader :title="$t('Select Payment Method')" icon="credit-card" />
|
<PopupHeader :title="$t('select_payment_method')" icon="credit-card" />
|
||||||
|
|
||||||
<PopupContent style="padding: 0 20px">
|
<PopupContent style="padding: 0 20px">
|
||||||
<InfoBox v-if="!config.isPayPal && !config.isPaystack" class="!mb-0">
|
<InfoBox v-if="!config.isPayPal && !config.isPaystack" class="!mb-0">
|
||||||
<p>{{ $t("There isn't any payment method yet.") }}</p>
|
<p>{{ $t("not_any_payment_method") }}</p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
|
|
||||||
<!--PayPal implementation-->
|
<!--PayPal implementation-->
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
:class="{ 'opacity-0': paypal.isMethodLoading }"
|
:class="{ 'opacity-0': paypal.isMethodLoading }"
|
||||||
class="text-theme cursor-pointer text-sm font-bold"
|
class="text-theme cursor-pointer text-sm font-bold"
|
||||||
>
|
>
|
||||||
{{ $t('Select') }}
|
{{ $t('select') }}
|
||||||
</span>
|
</span>
|
||||||
</PaymentMethod>
|
</PaymentMethod>
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
<PaymentMethod
|
<PaymentMethod
|
||||||
v-if="config.isPaystack"
|
v-if="config.isPaystack"
|
||||||
driver="paystack"
|
driver="paystack"
|
||||||
:description="$t('Available Bank Account, USSD, Mobile Money, Apple Pay')"
|
:description="$t(config.paystack_payment_description)"
|
||||||
>
|
>
|
||||||
<div v-if="paystack.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
<div v-if="paystack.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
||||||
<Spinner />
|
<Spinner />
|
||||||
@@ -49,14 +49,14 @@
|
|||||||
:class="{ 'opacity-0': paystack.isGettingCheckoutLink }"
|
:class="{ 'opacity-0': paystack.isGettingCheckoutLink }"
|
||||||
class="text-theme cursor-pointer text-sm font-bold"
|
class="text-theme cursor-pointer text-sm font-bold"
|
||||||
>
|
>
|
||||||
{{ $t('Select') }}
|
{{ $t('select') }}
|
||||||
</span>
|
</span>
|
||||||
</PaymentMethod>
|
</PaymentMethod>
|
||||||
</PopupContent>
|
</PopupContent>
|
||||||
|
|
||||||
<PopupActions>
|
<PopupActions>
|
||||||
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
||||||
{{ $t('Cancel Payment') }}
|
{{ $t('cancel_payment') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
</PopupWrapper>
|
</PopupWrapper>
|
||||||
@@ -131,7 +131,7 @@ export default {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'danger',
|
type: 'danger',
|
||||||
message: this.$t('Failed to load the PayPal service'),
|
message: this.$t('failed_to_load_paypal'),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,7 +168,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your payment was successfully received.'),
|
message: this.$t('payment_was_successfully_received'),
|
||||||
})
|
})
|
||||||
|
|
||||||
// todo: temporary reload function
|
// todo: temporary reload function
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<PopupWrapper name="confirm-password">
|
<PopupWrapper name="confirm-password">
|
||||||
<PopupHeader :title="$t('Confirm Password')" icon="edit" />
|
<PopupHeader :title="$t('confirm_password')" icon="edit" />
|
||||||
|
|
||||||
<PopupContent>
|
<PopupContent>
|
||||||
<ValidationObserver @submit.prevent="confirmPassword" ref="passwordForm" v-slot="{ invalid }" tag="form">
|
<ValidationObserver @submit.prevent="confirmPassword" ref="passwordForm" v-slot="{ invalid }" tag="form">
|
||||||
|
|||||||
@@ -22,8 +22,8 @@
|
|||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Emoji as an Icon')"
|
:title="$t('emoji_as_an_icon')"
|
||||||
:description="$t('Replace folder icon with an Emoji')"
|
:description="$t('replace_icon_with_emoji')"
|
||||||
:is-last="!isEmoji"
|
:is-last="!isEmoji"
|
||||||
>
|
>
|
||||||
<SwitchInput v-model="isEmoji" :state="isEmoji" />
|
<SwitchInput v-model="isEmoji" :state="isEmoji" />
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<PopupWrapper name="create-file-request">
|
<PopupWrapper name="create-file-request">
|
||||||
<!--Title-->
|
<!--Title-->
|
||||||
<PopupHeader :title="$t('Create File Request')" icon="upload" />
|
<PopupHeader :title="$t('create_file_request')" icon="upload" />
|
||||||
|
|
||||||
<!--Content-->
|
<!--Content-->
|
||||||
<PopupContent>
|
<PopupContent>
|
||||||
@@ -23,21 +23,21 @@
|
|||||||
name="Name"
|
name="Name"
|
||||||
v-slot="{ errors }"
|
v-slot="{ errors }"
|
||||||
>
|
>
|
||||||
<AppInputText :title="$t('Folder Name (optional)')" :description="$t('Created folder with files will be named with your own name.')" :error="errors[0]">
|
<AppInputText :title="$t('folder_name_optional')" :description="$t('folder_name_optional_description')" :error="errors[0]">
|
||||||
<input
|
<input
|
||||||
v-model="form.name"
|
v-model="form.name"
|
||||||
:class="{ '!border-rose-600': errors[0] }"
|
:class="{ '!border-rose-600': errors[0] }"
|
||||||
type="text"
|
type="text"
|
||||||
ref="input"
|
ref="input"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
:placeholder="$t('Type name...')"
|
:placeholder="$t('type_name_')"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
|
|
||||||
<!--Set note-->
|
<!--Set note-->
|
||||||
<ValidationProvider tag="div" mode="passive" name="Note" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Note" v-slot="{ errors }">
|
||||||
<AppInputText :title="$t('Message (optional)')" :description="$t('This message will be showed for your email recipient or in the upload page.')" :error="errors[0]">
|
<AppInputText :title="$t('message_optional')" :description="$t('message_optional_description')" :error="errors[0]">
|
||||||
<textarea
|
<textarea
|
||||||
v-model="form.notes"
|
v-model="form.notes"
|
||||||
rows="2"
|
rows="2"
|
||||||
@@ -45,15 +45,15 @@
|
|||||||
type="text"
|
type="text"
|
||||||
ref="input"
|
ref="input"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
:placeholder="$t('Type message for recipient...')"
|
:placeholder="$t('message_for_recipient')"
|
||||||
></textarea>
|
></textarea>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
|
|
||||||
<!--Send Request by Email-->
|
<!--Send Request by Email-->
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Send Request by Email')"
|
:title="$t('send_request_by_email')"
|
||||||
:description="$t('Send your file request on recipients email')"
|
:description="$t('send_request_by_email_description')"
|
||||||
:is-last="! shareViaEmail"
|
:is-last="! shareViaEmail"
|
||||||
>
|
>
|
||||||
<SwitchInput v-model="shareViaEmail" :state="shareViaEmail" />
|
<SwitchInput v-model="shareViaEmail" :state="shareViaEmail" />
|
||||||
@@ -75,14 +75,14 @@
|
|||||||
type="text"
|
type="text"
|
||||||
ref="input"
|
ref="input"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
:placeholder="$t('Type email...')"
|
:placeholder="$t('type_email_')"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
|
|
||||||
<!--Copy generated link-->
|
<!--Copy generated link-->
|
||||||
<AppInputText v-if="generatedUploadRequest" :title="$t('Copy your upload request link')" :is-last="true">
|
<AppInputText v-if="generatedUploadRequest" :title="$t('copy_upload_request_link')" :is-last="true">
|
||||||
<CopyInput :str="generatedUploadRequest.data.attributes.url" />
|
<CopyInput :str="generatedUploadRequest.data.attributes.url" />
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
</PopupContent>
|
</PopupContent>
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
>{{ $t('cancel') }}
|
>{{ $t('cancel') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
<ButtonBase class="w-full" @click.native="createUploadRequest" :loading="isLoading" button-style="theme"
|
<ButtonBase class="w-full" @click.native="createUploadRequest" :loading="isLoading" button-style="theme"
|
||||||
>{{ $t('Create Request') }}
|
>{{ $t('create_request') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
v-model="query"
|
v-model="query"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
type="text"
|
type="text"
|
||||||
:placeholder="$t('Select or search emoji icon...')"
|
:placeholder="$t('select_or_search_emoji')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
<!-- Not found -->
|
<!-- Not found -->
|
||||||
<span class="ml-2 text-sm font-bold" v-if="filteredEmojis.length === 0 && query !== undefined">
|
<span class="ml-2 text-sm font-bold" v-if="filteredEmojis.length === 0 && query !== undefined">
|
||||||
{{ $t('There is nothing :(') }}
|
{{ $t('there_is_nothing_smile') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -127,7 +127,7 @@ export default {
|
|||||||
this.filteredEmojis = this.emojis.list.filter((emoji) => emoji.name.includes(val.toLowerCase()))
|
this.filteredEmojis = this.emojis.list.filter((emoji) => emoji.name.includes(val.toLowerCase()))
|
||||||
|
|
||||||
if (this.filteredEmojis.length === 0) {
|
if (this.filteredEmojis.length === 0) {
|
||||||
console.log('empty')
|
//
|
||||||
}
|
}
|
||||||
}, 200),
|
}, 200),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ export default {
|
|||||||
// Update user avatar
|
// Update user avatar
|
||||||
this.$updateImage('/user/settings', 'avatar', event.target.files[0])
|
this.$updateImage('/user/settings', 'avatar', event.target.files[0])
|
||||||
} else {
|
} else {
|
||||||
alert(this.$t('validation_errors.wrong_image'))
|
alert(this.$t('wrong_image_error'))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<camera-icon size="14" />
|
<camera-icon size="14" />
|
||||||
</div>
|
</div>
|
||||||
<span class="text-sm font-bold">
|
<span class="text-sm font-bold">
|
||||||
{{ $t('Get QR Code') }}
|
{{ $t('get_qr_code') }}
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
@@ -126,7 +126,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your web insert code was copied'),
|
message: this.$t('web_code_copied'),
|
||||||
})
|
})
|
||||||
|
|
||||||
this.isOpenedMoreOptions = false
|
this.isOpenedMoreOptions = false
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ export default {
|
|||||||
// Update user avatar
|
// Update user avatar
|
||||||
this.$emit('input', event.target.files[0])
|
this.$emit('input', event.target.files[0])
|
||||||
} else {
|
} else {
|
||||||
alert(this.$t('validation_errors.wrong_image'))
|
alert(this.$t('wrong_image_error'))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -43,7 +43,9 @@
|
|||||||
<user-icon v-if="option.icon === 'user'" size="14" />
|
<user-icon v-if="option.icon === 'user'" size="14" />
|
||||||
<edit2-icon v-if="option.icon === 'user-edit'" size="14" />
|
<edit2-icon v-if="option.icon === 'user-edit'" size="14" />
|
||||||
</div>
|
</div>
|
||||||
<span class="option-value">{{ option.label }}</span>
|
<span class="option-value">
|
||||||
|
{{ $t(option.label) }}
|
||||||
|
</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
>
|
>
|
||||||
<div class="rounded-lg bg-light-background px-3 py-1.5 dark:bg-4x-dark-foreground">
|
<div class="rounded-lg bg-light-background px-3 py-1.5 dark:bg-4x-dark-foreground">
|
||||||
<span class="text-sm font-semibold">
|
<span class="text-sm font-semibold">
|
||||||
{{ $t('Your current estimated usage:') }}
|
{{ $t('current_estimated_usage') }}
|
||||||
</span>
|
</span>
|
||||||
<span class="text-theme text-sm font-bold">
|
<span class="text-theme text-sm font-bold">
|
||||||
{{ user.data.meta.usages.costEstimate }}
|
{{ user.data.meta.usages.costEstimate }}
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
/>
|
/>
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
<OptionGroup v-if="!clickedSubmenu">
|
<OptionGroup v-if="!clickedSubmenu">
|
||||||
<Option @click.native="logOut" :title="$t('menu.logout')" icon="power" :is-hover-disabled="true" />
|
<Option @click.native="logOut" :title="$t('logout')" icon="power" :is-hover-disabled="true" />
|
||||||
</OptionGroup>
|
</OptionGroup>
|
||||||
|
|
||||||
<!--Submenu: User settings-->
|
<!--Submenu: User settings-->
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
<Option
|
<Option
|
||||||
@click.native="goToRoute('Billing')"
|
@click.native="goToRoute('Billing')"
|
||||||
v-if="config.subscriptionType !== 'none'"
|
v-if="config.subscriptionType !== 'none'"
|
||||||
:title="$t('Billing')"
|
:title="$t('billing')"
|
||||||
icon="cloud"
|
icon="cloud"
|
||||||
:is-hover-disabled="true"
|
:is-hover-disabled="true"
|
||||||
/>
|
/>
|
||||||
@@ -127,14 +127,14 @@
|
|||||||
<OptionGroup v-if="clickedSubmenu === 'admin' && config.subscriptionType !== 'none'">
|
<OptionGroup v-if="clickedSubmenu === 'admin' && config.subscriptionType !== 'none'">
|
||||||
<Option
|
<Option
|
||||||
@click.native="goToRoute('AppPayments')"
|
@click.native="goToRoute('AppPayments')"
|
||||||
:title="$t('Payments')"
|
:title="$t('payments')"
|
||||||
icon="credit-card"
|
icon="credit-card"
|
||||||
:is-hover-disabled="true"
|
:is-hover-disabled="true"
|
||||||
/>
|
/>
|
||||||
<Option
|
<Option
|
||||||
@click.native="goToRoute('Subscriptions')"
|
@click.native="goToRoute('Subscriptions')"
|
||||||
v-if="config.subscriptionType === 'fixed'"
|
v-if="config.subscriptionType === 'fixed'"
|
||||||
:title="$t('Subscriptions')"
|
:title="$t('subscriptions')"
|
||||||
icon="credit-card"
|
icon="credit-card"
|
||||||
:is-hover-disabled="true"
|
:is-hover-disabled="true"
|
||||||
/>
|
/>
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
/>
|
/>
|
||||||
<Option
|
<Option
|
||||||
@click.native="goToRoute('Invoices')"
|
@click.native="goToRoute('Invoices')"
|
||||||
:title="$t('Transactions')"
|
:title="$t('transactions')"
|
||||||
icon="file-text"
|
icon="file-text"
|
||||||
:is-hover-disabled="true"
|
:is-hover-disabled="true"
|
||||||
/>
|
/>
|
||||||
@@ -185,7 +185,7 @@ export default {
|
|||||||
admin: this.$t('administration'),
|
admin: this.$t('administration'),
|
||||||
}
|
}
|
||||||
|
|
||||||
return 'Go back from ' + location[this.clickedSubmenu]
|
return this.$t('go_back_from_x', {location: location[this.clickedSubmenu]})
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<PopupWrapper name="notifications-mobile">
|
<PopupWrapper name="notifications-mobile">
|
||||||
<!--Title-->
|
<!--Title-->
|
||||||
<PopupHeader :title="$t('Notifications')" icon="bell" />
|
<PopupHeader :title="$t('notifications')" icon="bell" />
|
||||||
|
|
||||||
<!--Content-->
|
<!--Content-->
|
||||||
<PopupContent>
|
<PopupContent>
|
||||||
@@ -11,18 +11,18 @@
|
|||||||
icon="check-square"
|
icon="check-square"
|
||||||
class="mb-2 dark:!bg-4x-dark-foreground"
|
class="mb-2 dark:!bg-4x-dark-foreground"
|
||||||
>
|
>
|
||||||
{{ $t('Clear all') }}
|
{{ $t('clear_all') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
|
|
||||||
<p v-if="!readNotifications.length && !unreadNotifications.length" class="text-sm text-gray-500">
|
<p v-if="!readNotifications.length && !unreadNotifications.length" class="text-sm text-gray-500">
|
||||||
{{ $t("There aren't any notifications.") }}
|
{{ $t("not_any_notifications") }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<b
|
<b
|
||||||
v-if="unreadNotifications.length"
|
v-if="unreadNotifications.length"
|
||||||
class="dark-text-theme mt-1.5 mb-2.5 block px-2.5 text-xs text-gray-400"
|
class="dark-text-theme mt-1.5 mb-2.5 block px-2.5 text-xs text-gray-400"
|
||||||
>
|
>
|
||||||
{{ $t('Unread') }}
|
{{ $t('unread') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<Notification
|
<Notification
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<b v-if="readNotifications.length" class="dark-text-theme mt-2.5 mb-2.5 block px-2.5 text-xs text-gray-400">
|
<b v-if="readNotifications.length" class="dark-text-theme mt-2.5 mb-2.5 block px-2.5 text-xs text-gray-400">
|
||||||
{{ $t('Read') }}
|
{{ $t('read') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<Notification
|
<Notification
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
<!--Actions-->
|
<!--Actions-->
|
||||||
<PopupActions>
|
<PopupActions>
|
||||||
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
||||||
{{ $t('Close') }}
|
{{ $t('close') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
</PopupWrapper>
|
</PopupWrapper>
|
||||||
|
|||||||
@@ -36,8 +36,8 @@
|
|||||||
<!--Emoji-->
|
<!--Emoji-->
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
v-if="pickedItem.data.type === 'folder'"
|
v-if="pickedItem.data.type === 'folder'"
|
||||||
:title="$t('Emoji as an Icon')"
|
:title="$t('emoji_as_an_icon')"
|
||||||
:description="$t('Replace folder icon with an Emoji')"
|
:description="$t('replace_icon_with_emoji')"
|
||||||
:is-last="!isEmoji"
|
:is-last="!isEmoji"
|
||||||
>
|
>
|
||||||
<SwitchInput v-model="isEmoji" :state="isEmoji" />
|
<SwitchInput v-model="isEmoji" :state="isEmoji" />
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
<PopupActions>
|
<PopupActions>
|
||||||
<ButtonBase class="w-full" @click.native="showSection(undefined)" button-style="secondary">
|
<ButtonBase class="w-full" @click.native="showSection(undefined)" button-style="secondary">
|
||||||
{{ $t('Show Details') }}
|
{{ $t('show_details') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="theme">
|
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="theme">
|
||||||
{{ $t('awesome_iam_done') }}
|
{{ $t('awesome_iam_done') }}
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
<PopupActions>
|
<PopupActions>
|
||||||
<ButtonBase class="w-full" @click.native="showSection(undefined)" button-style="secondary">
|
<ButtonBase class="w-full" @click.native="showSection(undefined)" button-style="secondary">
|
||||||
{{ $t('Show Details') }}
|
{{ $t('show_details') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
<ButtonBase
|
<ButtonBase
|
||||||
class="w-full"
|
class="w-full"
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
:loading="isLoading"
|
:loading="isLoading"
|
||||||
:disabled="isLoading"
|
:disabled="isLoading"
|
||||||
>
|
>
|
||||||
{{ $t('Send') }}
|
{{ $t('send') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
</div>
|
</div>
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
:loading="isLoading"
|
:loading="isLoading"
|
||||||
:disabled="isLoading"
|
:disabled="isLoading"
|
||||||
>
|
>
|
||||||
{{ $t('Store Changes') }}
|
{{ $t('store_changes') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
</div>
|
</div>
|
||||||
@@ -236,8 +236,8 @@ export default {
|
|||||||
popupTitle() {
|
popupTitle() {
|
||||||
return (
|
return (
|
||||||
{
|
{
|
||||||
'qr-code': this.$t('Get your QR code'),
|
'qr-code': this.$t('get_qr_code'),
|
||||||
'email-sharing': this.$t('Share on multiple emails'),
|
'email-sharing': this.$t('share_with_multiple_emails'),
|
||||||
}[this.activeSection] || this.$t('popup_share_edit.title')
|
}[this.activeSection] || this.$t('popup_share_edit.title')
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
v-if="!column.hidden"
|
v-if="!column.hidden"
|
||||||
>
|
>
|
||||||
<span class="text-xs text-gray-400 dark:text-gray-500">
|
<span class="text-xs text-gray-400 dark:text-gray-500">
|
||||||
{{ column.label }}
|
{{ $t(column.label) }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<chevron-up-icon
|
<chevron-up-icon
|
||||||
@@ -192,7 +192,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<span class="text-xs text-gray-600 dark:text-gray-500">
|
<span class="text-xs text-gray-600 dark:text-gray-500">
|
||||||
Showing {{ data.meta.from }} - {{ data.meta.to }} from {{ data.meta.total }} records
|
{{ $t('paginator', {from: data.meta.from, to: data.meta.to, total: data.meta.total}) }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
|
|
||||||
<!--Folder sub line-->
|
<!--Folder sub line-->
|
||||||
<small v-if="isFolder" class="block text-xs text-gray-500">
|
<small v-if="isFolder" class="block text-xs text-gray-500">
|
||||||
{{ folderItems === 0 ? $t('folder.empty') : $tc('folder.item_counts', folderItems) }},
|
{{ folderItems === 0 ? $t('empty') : $tc('folder.item_counts', folderItems) }},
|
||||||
{{ timeStamp }}
|
{{ timeStamp }}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
<div class="mt-auto text-center">
|
<div class="mt-auto text-center">
|
||||||
<div
|
<div
|
||||||
@click="$store.dispatch('logOut')"
|
@click="$store.dispatch('logOut')"
|
||||||
:title="$t('locations.logout')"
|
:title="$t('logout')"
|
||||||
class="button-icon inline-block cursor-pointer rounded-xl p-3 hover:bg-light-300 dark:hover:bg-4x-dark-foreground"
|
class="button-icon inline-block cursor-pointer rounded-xl p-3 hover:bg-light-300 dark:hover:bg-4x-dark-foreground"
|
||||||
>
|
>
|
||||||
<power-icon size="20" />
|
<power-icon size="20" />
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<ArrowDownIcon size="12" class="vue-feather text-gray-400" />
|
<ArrowDownIcon size="12" class="vue-feather text-gray-400" />
|
||||||
|
|
||||||
<span class="ml-1.5 text-xs text-gray-400">
|
<span class="ml-1.5 text-xs text-gray-400">
|
||||||
{{ $t('Navigate') }}
|
{{ $t('navigate') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<CornerDownLeftIcon size="12" class="vue-feather text-gray-400" />
|
<CornerDownLeftIcon size="12" class="vue-feather text-gray-400" />
|
||||||
|
|
||||||
<span class="ml-1.5 text-xs text-gray-400">
|
<span class="ml-1.5 text-xs text-gray-400">
|
||||||
{{ $t('Go') }}
|
{{ $t('go') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
@keyup.down="onPageDown"
|
@keyup.down="onPageDown"
|
||||||
@keyup.up="onPageUp"
|
@keyup.up="onPageUp"
|
||||||
type="text"
|
type="text"
|
||||||
placeholder="Spotlight search..."
|
:placeholder="$t('spotlight_search')"
|
||||||
ref="searchInput"
|
ref="searchInput"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
class="relative z-50 px-4 pb-4"
|
class="relative z-50 px-4 pb-4"
|
||||||
>
|
>
|
||||||
<CategoryName>
|
<CategoryName>
|
||||||
{{ $t('Suggested Filters') }}
|
{{ $t('suggested_filters') }}
|
||||||
</CategoryName>
|
</CategoryName>
|
||||||
|
|
||||||
<FilterSuggestion
|
<FilterSuggestion
|
||||||
@@ -82,7 +82,7 @@
|
|||||||
<div v-if="isNotEmptyQuery" class="relative z-50 px-4 pb-4">
|
<div v-if="isNotEmptyQuery" class="relative z-50 px-4 pb-4">
|
||||||
<!--Show actions-->
|
<!--Show actions-->
|
||||||
<CategoryName v-if="actions.length !== 0">
|
<CategoryName v-if="actions.length !== 0">
|
||||||
{{ $t('Actions') }}
|
{{ $t('actions') }}
|
||||||
</CategoryName>
|
</CategoryName>
|
||||||
|
|
||||||
<div v-if="actions.length !== 0" class="mb-2">
|
<div v-if="actions.length !== 0" class="mb-2">
|
||||||
@@ -236,7 +236,7 @@
|
|||||||
|
|
||||||
<!--Show results-->
|
<!--Show results-->
|
||||||
<CategoryName v-if="!activeFilter && results.length !== 0">
|
<CategoryName v-if="!activeFilter && results.length !== 0">
|
||||||
{{ $t('Files & Folders') }}
|
{{ $t('files_and_folders') }}
|
||||||
</CategoryName>
|
</CategoryName>
|
||||||
|
|
||||||
<div v-if="results.length !== 0" v-for="(result, i) in results" :key="result.data.id" class="relative">
|
<div v-if="results.length !== 0" v-for="(result, i) in results" :key="result.data.id" class="relative">
|
||||||
@@ -377,56 +377,56 @@ export default {
|
|||||||
actionList() {
|
actionList() {
|
||||||
let adminLocations = [
|
let adminLocations = [
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Dashboard'),
|
title: this.$t('go_to_dashboard'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Dashboard',
|
value: 'Dashboard',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Settings'),
|
title: this.$t('go_to_settings'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'AppOthers',
|
value: 'AppOthers',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Payments'),
|
title: this.$t('go_to_payments'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'AppPayments',
|
value: 'AppPayments',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Pages'),
|
title: this.$t('go_to_pages'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Pages',
|
value: 'Pages',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Languages'),
|
title: this.$t('go_to_languages'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Language',
|
value: 'Language',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Show all Users'),
|
title: this.$t('show_all_users'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Users',
|
value: 'Users',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Show all Plans'),
|
title: this.$t('show_all_plans'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Plans',
|
value: 'Plans',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Show Transactions'),
|
title: this.$t('show_transactions'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Invoices',
|
value: 'Invoices',
|
||||||
@@ -436,42 +436,42 @@ export default {
|
|||||||
|
|
||||||
let fileLocations = [
|
let fileLocations = [
|
||||||
{
|
{
|
||||||
title: this.$t('Go Home'),
|
title: this.$t('go_home_spotlight'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Files',
|
value: 'Files',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Recent Uploads'),
|
title: this.$t('go_to_recent_uploads'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'RecentUploads',
|
value: 'RecentUploads',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Publicly Shared'),
|
title: this.$t('go_to_publicly_shared'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'MySharedItems',
|
value: 'MySharedItems',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Trash'),
|
title: this.$t('go_to_trash'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Trash',
|
value: 'Trash',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Team Folders'),
|
title: this.$t('go_to_team_folders'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'TeamFolders',
|
value: 'TeamFolders',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Go To Shared with Me'),
|
title: this.$t('go_to_shared_with_me'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'SharedWithMe',
|
value: 'SharedWithMe',
|
||||||
@@ -481,7 +481,7 @@ export default {
|
|||||||
|
|
||||||
let adminActions = [
|
let adminActions = [
|
||||||
{
|
{
|
||||||
title: this.$t('Create User'),
|
title: this.$t('create_user'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'UserCreate',
|
value: 'UserCreate',
|
||||||
@@ -491,42 +491,42 @@ export default {
|
|||||||
|
|
||||||
let userSettings = [
|
let userSettings = [
|
||||||
{
|
{
|
||||||
title: this.$t('Update Profile Settings'),
|
title: this.$t('update_profile_settings'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Profile',
|
value: 'Profile',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Update Security & API'),
|
title: this.$t('update_security_api'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Password',
|
value: 'Password',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Show Storage Details'),
|
title: this.$t('show_storage_details'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Storage',
|
value: 'Storage',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Show Billing'),
|
title: this.$t('show_billing'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Billing',
|
value: 'Billing',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Empty Your Trash'),
|
title: this.$t('empty_your_trash'),
|
||||||
action: {
|
action: {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
value: 'empty-trash',
|
value: 'empty-trash',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Log Out'),
|
title: this.$t('logout'),
|
||||||
action: {
|
action: {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
value: 'log-out',
|
value: 'log-out',
|
||||||
@@ -536,14 +536,14 @@ export default {
|
|||||||
|
|
||||||
let createList = [
|
let createList = [
|
||||||
{
|
{
|
||||||
title: this.$t('Create Team Folder'),
|
title: this.$t('create_team_folder'),
|
||||||
action: {
|
action: {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
value: 'create-team-folder',
|
value: 'create-team-folder',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Create File Request'),
|
title: this.$t('create_file_request'),
|
||||||
action: {
|
action: {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
value: 'create-file-request',
|
value: 'create-file-request',
|
||||||
@@ -553,21 +553,21 @@ export default {
|
|||||||
|
|
||||||
let functionList = [
|
let functionList = [
|
||||||
{
|
{
|
||||||
title: this.$t('Toggle Grid/List View'),
|
title: this.$t('toggle_grid_list_view'),
|
||||||
action: {
|
action: {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
value: 'toggle-grid-list',
|
value: 'toggle-grid-list',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Toggle Dark/Light Mode'),
|
title: this.$t('toggle_dark_light_mode'),
|
||||||
action: {
|
action: {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
value: 'dark-mode',
|
value: 'dark-mode',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Toggle Full-Screen Mode'),
|
title: this.$t('toggle_full_screen_mode'),
|
||||||
action: {
|
action: {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
value: 'full-screen-mode',
|
value: 'full-screen-mode',
|
||||||
@@ -578,7 +578,7 @@ export default {
|
|||||||
// Available only for apple users
|
// Available only for apple users
|
||||||
if (this.$isApple()) {
|
if (this.$isApple()) {
|
||||||
functionList.push({
|
functionList.push({
|
||||||
title: this.$t('Toggle Emoji Type'),
|
title: this.$t('toggle_emoji_type'),
|
||||||
action: {
|
action: {
|
||||||
type: 'function',
|
type: 'function',
|
||||||
value: 'toggle-emoji',
|
value: 'toggle-emoji',
|
||||||
@@ -596,7 +596,7 @@ export default {
|
|||||||
// Available only for fixed subscription
|
// Available only for fixed subscription
|
||||||
if (this.config.subscriptionType === 'fixed') {
|
if (this.config.subscriptionType === 'fixed') {
|
||||||
adminLocations.push({
|
adminLocations.push({
|
||||||
title: this.$t('Show all Subscriptions'),
|
title: this.$t('show_all_subscriptions'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: 'Subscriptions',
|
value: 'Subscriptions',
|
||||||
@@ -610,7 +610,7 @@ export default {
|
|||||||
this.config.subscriptionType === 'fixed'
|
this.config.subscriptionType === 'fixed'
|
||||||
) {
|
) {
|
||||||
adminActions.push({
|
adminActions.push({
|
||||||
title: this.$t('Create Plan'),
|
title: this.$t('create_plan'),
|
||||||
action: {
|
action: {
|
||||||
type: 'route',
|
type: 'route',
|
||||||
value: this.config.subscriptionType === 'fixed' ? 'CreateFixedPlan' : 'CreateMeteredPlan',
|
value: this.config.subscriptionType === 'fixed' ? 'CreateFixedPlan' : 'CreateMeteredPlan',
|
||||||
@@ -657,7 +657,7 @@ export default {
|
|||||||
filters: [
|
filters: [
|
||||||
{
|
{
|
||||||
keyword: 'u',
|
keyword: 'u',
|
||||||
description: this.$t('Search through your users...'),
|
description: this.$t('search_your_users'),
|
||||||
slug: 'users',
|
slug: 'users',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<PopupWrapper name="change-plan-subscription">
|
<PopupWrapper name="change-plan-subscription">
|
||||||
<PopupHeader :title="$t('Change Your Plan')" icon="credit-card" />
|
<PopupHeader :title="$t('change_your_plan')" icon="credit-card" />
|
||||||
|
|
||||||
<!--Select Payment Plans-->
|
<!--Select Payment Plans-->
|
||||||
<PopupContent v-if="plans">
|
<PopupContent v-if="plans">
|
||||||
<InfoBox v-if="plans.data.length === 0" class="!mb-0">
|
<InfoBox v-if="plans.data.length === 0" class="!mb-0">
|
||||||
<p>{{ $t("There isn't any plan yet.") }}</p>
|
<p>{{ $t("not_any_plan") }}</p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
|
|
||||||
<!--Toggle yearly billing-->
|
<!--Toggle yearly billing-->
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
:button-style="buttonStyle"
|
:button-style="buttonStyle"
|
||||||
:loading="isLoading"
|
:loading="isLoading"
|
||||||
@click.native="proceedToPayment"
|
@click.native="proceedToPayment"
|
||||||
>{{ $t('Change Plan') }}
|
>{{ $t('change_plan') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
</PopupWrapper>
|
</PopupWrapper>
|
||||||
@@ -152,7 +152,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your subscription was successfully changed.'),
|
message: this.$t('subscription_changed'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,12 +21,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
||||||
{{ $t('User was deleted') }}
|
{{ $t('user_was_deleted') }}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel class="capitalize" :color="$getTransactionStatusColor(row.data.attributes.status)">
|
<ColorLabel class="capitalize" :color="$getTransactionStatusColor(row.data.attributes.status)">
|
||||||
{{ row.data.attributes.status }}
|
{{ $t(row.data.attributes.status) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
|
|||||||
@@ -21,12 +21,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
<span v-if="!row.data.relationships.user" class="text-xs font-bold text-gray-500">
|
||||||
{{ $t('User was deleted') }}
|
{{ $t('user_was_deleted') }}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel class="capitalize" :color="$getTransactionStatusColor(row.data.attributes.status)">
|
<ColorLabel class="capitalize" :color="$getTransactionStatusColor(row.data.attributes.status)">
|
||||||
{{ row.data.attributes.status }}
|
{{ $t(row.data.attributes.status) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
{{ card.data.attributes.last4 }}
|
{{ card.data.attributes.last4 }}
|
||||||
</b>
|
</b>
|
||||||
</div>
|
</div>
|
||||||
<b class="text-sm font-bold leading-none"> {{ $t('Expires') }} {{ card.data.attributes.expiration }} </b>
|
<b class="text-sm font-bold leading-none"> {{ $t('expires') }} {{ card.data.attributes.expiration }} </b>
|
||||||
<Trash2Icon @click="deleteCreditCard(card.data.id)" size="15" class="cursor-pointer" />
|
<Trash2Icon @click="deleteCreditCard(card.data.id)" size="15" class="cursor-pointer" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -27,10 +27,8 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
deleteCreditCard(id) {
|
deleteCreditCard(id) {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: this.$t('Are you sure you want to delete your credit card?'),
|
title: this.$t('want_to_delete_card_title'),
|
||||||
message: this.$t(
|
message: this.$t('want_to_delete_card_description'),
|
||||||
'We will no longer settle your payments automatically and you will have to fund your account for the next payments.'
|
|
||||||
),
|
|
||||||
action: {
|
action: {
|
||||||
id: id,
|
id: id,
|
||||||
operation: 'delete-credit-card',
|
operation: 'delete-credit-card',
|
||||||
@@ -48,7 +46,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your credit card was deleted.'),
|
message: this.$t('credit_card_deleted'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => this.$isSomethingWrong())
|
.catch(() => this.$isSomethingWrong())
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
:class="{ 'text-gray-400': !isSelectedYearlyPlans }"
|
:class="{ 'text-gray-400': !isSelectedYearlyPlans }"
|
||||||
class="cursor-pointer text-xs font-bold"
|
class="cursor-pointer text-xs font-bold"
|
||||||
>
|
>
|
||||||
{{ $t('Billed Annually') }}
|
{{ $t('billed_annually') }}
|
||||||
</label>
|
</label>
|
||||||
<div class="relative inline-block w-12 select-none align-middle">
|
<div class="relative inline-block w-12 select-none align-middle">
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="$store.getters.isLimitedUser" class="bg-red-500 py-1 text-center">
|
<div v-if="$store.getters.isLimitedUser" class="bg-red-500 py-1 text-center">
|
||||||
<router-link :to="{ name: 'Billing' }" class="text-xs font-bold text-white">
|
<router-link :to="{ name: 'Billing' }" class="text-xs font-bold text-white">
|
||||||
{{ $t('Your functionality is restricted. Please review your billing settings.') }}
|
{{ $t('restricted_account_warning') }}
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<PopupWrapper name="select-plan-subscription">
|
<PopupWrapper name="select-plan-subscription">
|
||||||
<PopupHeader :title="$t('Upgrade Your Account')" icon="credit-card" />
|
<PopupHeader :title="$t('upgrade_your_account')" icon="credit-card" />
|
||||||
|
|
||||||
<!--Payment Options-->
|
<!--Payment Options-->
|
||||||
<div v-if="isPaymentOptionPage">
|
<div v-if="isPaymentOptionPage">
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<PaymentMethod
|
<PaymentMethod
|
||||||
v-if="config.isStripe"
|
v-if="config.isStripe"
|
||||||
driver="stripe"
|
driver="stripe"
|
||||||
:description="$t('Pay by your credit card or Apple Pay')"
|
:description="$t(config.stripe_payment_description)"
|
||||||
>
|
>
|
||||||
<div v-if="stripe.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
<div v-if="stripe.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
||||||
<Spinner />
|
<Spinner />
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
:class="{ 'opacity-0': stripe.isGettingCheckoutLink }"
|
:class="{ 'opacity-0': stripe.isGettingCheckoutLink }"
|
||||||
class="text-theme cursor-pointer text-sm font-bold"
|
class="text-theme cursor-pointer text-sm font-bold"
|
||||||
>
|
>
|
||||||
{{ $t('Select') }}
|
{{ $t('select') }}
|
||||||
</span>
|
</span>
|
||||||
</PaymentMethod>
|
</PaymentMethod>
|
||||||
|
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<PaymentMethod
|
<PaymentMethod
|
||||||
@click.native="payByPayPal"
|
@click.native="payByPayPal"
|
||||||
driver="paypal"
|
driver="paypal"
|
||||||
:description="$t('Available PayPal Credit, Debit or Credit Card.')"
|
:description="$t(config.paypal_payment_description)"
|
||||||
>
|
>
|
||||||
<div v-if="paypal.isMethodLoading" class="translate-y-3 scale-50 transform">
|
<div v-if="paypal.isMethodLoading" class="translate-y-3 scale-50 transform">
|
||||||
<Spinner />
|
<Spinner />
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
:class="{ 'opacity-0': paypal.isMethodLoading }"
|
:class="{ 'opacity-0': paypal.isMethodLoading }"
|
||||||
class="text-theme cursor-pointer text-sm font-bold"
|
class="text-theme cursor-pointer text-sm font-bold"
|
||||||
>
|
>
|
||||||
{{ $t('Select') }}
|
{{ $t('select') }}
|
||||||
</span>
|
</span>
|
||||||
</PaymentMethod>
|
</PaymentMethod>
|
||||||
|
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
<PaymentMethod
|
<PaymentMethod
|
||||||
v-if="config.isPaystack"
|
v-if="config.isPaystack"
|
||||||
driver="paystack"
|
driver="paystack"
|
||||||
:description="$t('Available Bank Account, USSD, Mobile Money, Apple Pay')"
|
:description="$t(config.paystack_payment_description)"
|
||||||
>
|
>
|
||||||
<div v-if="paystack.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
<div v-if="paystack.isGettingCheckoutLink" class="translate-y-3 scale-50 transform">
|
||||||
<Spinner />
|
<Spinner />
|
||||||
@@ -65,14 +65,14 @@
|
|||||||
:class="{ 'opacity-0': paystack.isGettingCheckoutLink }"
|
:class="{ 'opacity-0': paystack.isGettingCheckoutLink }"
|
||||||
class="text-theme cursor-pointer text-sm font-bold"
|
class="text-theme cursor-pointer text-sm font-bold"
|
||||||
>
|
>
|
||||||
{{ $t('Select') }}
|
{{ $t('select') }}
|
||||||
</span>
|
</span>
|
||||||
</PaymentMethod>
|
</PaymentMethod>
|
||||||
</PopupContent>
|
</PopupContent>
|
||||||
|
|
||||||
<PopupActions>
|
<PopupActions>
|
||||||
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
<ButtonBase class="w-full" @click.native="$closePopup()" button-style="secondary">
|
||||||
{{ $t('Cancel Payment') }}
|
{{ $t('cancel_payment') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
</div>
|
</div>
|
||||||
@@ -110,7 +110,7 @@
|
|||||||
v-if="plans && plans.data.length !== 0"
|
v-if="plans && plans.data.length !== 0"
|
||||||
:button-style="buttonStyle"
|
:button-style="buttonStyle"
|
||||||
@click.native="isPaymentOptionPage = true"
|
@click.native="isPaymentOptionPage = true"
|
||||||
>{{ $t('Upgrade Account') }}
|
>{{ $t('upgrade_account') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
</div>
|
</div>
|
||||||
@@ -221,7 +221,7 @@ export default {
|
|||||||
} catch (error) {
|
} catch (error) {
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'danger',
|
type: 'danger',
|
||||||
message: this.$t('Failed to load the PayPal service'),
|
message: this.$t('failed_to_load_paypal'),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,7 +266,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your payment was successfully received.'),
|
message: this.$t('payment_was_successfully_received'),
|
||||||
})
|
})
|
||||||
|
|
||||||
// todo: temporary reload function
|
// todo: temporary reload function
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="!hasPaymentMethod" class="card shadow-card">
|
<div v-if="!hasPaymentMethod" class="card shadow-card">
|
||||||
<FormLabel icon="dollar">
|
<FormLabel icon="dollar">
|
||||||
{{ $t('Balance') }}
|
{{ $t('balance') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
>
|
>
|
||||||
<AppInputText
|
<AppInputText
|
||||||
:description="
|
:description="
|
||||||
$t('The amount will be increased as soon as we register your charge from payment gateway.')
|
$t('amount_increase_description')
|
||||||
"
|
"
|
||||||
:error="errors[0]"
|
:error="errors[0]"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
||||||
<input
|
<input
|
||||||
v-model="chargeAmount"
|
v-model="chargeAmount"
|
||||||
:placeholder="$t('Fund Your Account Balance...')"
|
:placeholder="$t('fund_account_balance')"
|
||||||
type="number"
|
type="number"
|
||||||
min="1"
|
min="1"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
:class="{ '!border-rose-600': errors[0] }"
|
:class="{ '!border-rose-600': errors[0] }"
|
||||||
/>
|
/>
|
||||||
<ButtonBase type="submit" button-style="theme" class="w-full sm:w-auto">
|
<ButtonBase type="submit" button-style="theme" class="w-full sm:w-auto">
|
||||||
{{ $t('Make a Payment') }}
|
{{ $t('make_payment') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel icon="bell">
|
<FormLabel icon="bell">
|
||||||
{{ $t('Billing Alert') }}
|
{{ $t('billing_alert') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<div v-if="user.data.relationships.alert">
|
<div v-if="user.data.relationships.alert">
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
</b>
|
</b>
|
||||||
|
|
||||||
<b class="block text-sm dark:text-gray-500 text-gray-400">
|
<b class="block text-sm dark:text-gray-500 text-gray-400">
|
||||||
{{ $t('Alert will be triggered after you reach the value above.') }}
|
{{ $t('billing_alert_description') }}
|
||||||
</b>
|
</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
<AppInputText
|
<AppInputText
|
||||||
:description="
|
:description="
|
||||||
$t(
|
$t(
|
||||||
'You will receive an email whenever your monthly balance reaches the specified amount above.'
|
'billing_alert_notes'
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:error="errors[0]"
|
:error="errors[0]"
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
||||||
<input
|
<input
|
||||||
v-model="billingAlertAmount"
|
v-model="billingAlertAmount"
|
||||||
:placeholder="$t('Alert Amount...')"
|
:placeholder="$t('alert_amount_')"
|
||||||
type="number"
|
type="number"
|
||||||
min="1"
|
min="1"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
button-style="theme"
|
button-style="theme"
|
||||||
class="w-full sm:w-auto"
|
class="w-full sm:w-auto"
|
||||||
>
|
>
|
||||||
{{ $t('Update Alert') }}
|
{{ $t('update_alert') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
<AppInputText
|
<AppInputText
|
||||||
:description="
|
:description="
|
||||||
$t(
|
$t(
|
||||||
'You will receive an email whenever your monthly balance reaches the specified amount above.'
|
'billing_alert_notes'
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:error="errors[0]"
|
:error="errors[0]"
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
||||||
<input
|
<input
|
||||||
v-model="billingAlertAmount"
|
v-model="billingAlertAmount"
|
||||||
:placeholder="$t('Alert Amount...')"
|
:placeholder="$t('alert_amount_')"
|
||||||
type="number"
|
type="number"
|
||||||
min="1"
|
min="1"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
button-style="theme"
|
button-style="theme"
|
||||||
class="w-full sm:w-auto"
|
class="w-full sm:w-auto"
|
||||||
>
|
>
|
||||||
{{ $t('Set Alert') }}
|
{{ $t('set_alert') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -162,7 +162,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your billing alert was updated successfully'),
|
message: this.$t('alert_updated'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
@@ -192,7 +192,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your billing alert was set successfully'),
|
message: this.$t('alert_set_successfully'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
@@ -207,9 +207,9 @@ export default {
|
|||||||
},
|
},
|
||||||
deleteBillingAlert() {
|
deleteBillingAlert() {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: this.$t('Are you sure you want to delete your alert?'),
|
title: this.$t('want_to_delete_alert'),
|
||||||
message: this.$t(
|
message: this.$t(
|
||||||
'You will no longer receive any notifications that your billing limit has been exceeded.'
|
'want_to_delete_alert_description'
|
||||||
),
|
),
|
||||||
action: {
|
action: {
|
||||||
id: this.user.data.relationships.alert.data.id,
|
id: this.user.data.relationships.alert.data.id,
|
||||||
@@ -231,7 +231,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your billing alert was deleted.'),
|
message: this.$t('deleted_alert'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => this.$isSomethingWrong())
|
.catch(() => this.$isSomethingWrong())
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="hasSubscription" class="card shadow-card">
|
<div v-if="hasSubscription" class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Edit your Subscription') }}
|
{{ $t('edit_your_subscription') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputButton
|
<AppInputButton
|
||||||
v-if="subscription.attributes.status !== 'cancelled'"
|
v-if="subscription.attributes.status !== 'cancelled'"
|
||||||
:title="$t('Cancel Subscription')"
|
:title="$t('cancel_subscription')"
|
||||||
:description="
|
:description="
|
||||||
$t(
|
$t(
|
||||||
'You can cancel your subscription now. You\'ll continue to have access to the features you\'ve paid for until the end of your billing cycle.'
|
'cancel_subscription_description'
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
@@ -19,17 +19,17 @@
|
|||||||
class="w-full sm:w-auto"
|
class="w-full sm:w-auto"
|
||||||
button-style="secondary"
|
button-style="secondary"
|
||||||
>
|
>
|
||||||
{{ $t('Cancel Now') }}
|
{{ $t('cancel_now') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</AppInputButton>
|
</AppInputButton>
|
||||||
|
|
||||||
<AppInputButton
|
<AppInputButton
|
||||||
:title="$t('Upgrade or Downgrade Plan')"
|
:title="$t('upgrade_downgrade_plan')"
|
||||||
:description="$t('You can upgrade your plan at any time you want.')"
|
:description="$t('upgrade_downgrade_plan_description')"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
<ButtonBase @click.native="$changeSubscriptionOptions" class="w-full sm:w-auto" button-style="secondary">
|
<ButtonBase @click.native="$changeSubscriptionOptions" class="w-full sm:w-auto" button-style="secondary">
|
||||||
{{ $t('Change Plan') }}
|
{{ $t('change_plan') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</AppInputButton>
|
</AppInputButton>
|
||||||
</div>
|
</div>
|
||||||
@@ -69,7 +69,7 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
cancelSubscriptionConfirmation() {
|
cancelSubscriptionConfirmation() {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: this.$t('Are you sure you want to cancel subscription?'),
|
title: this.$t('want_cancel_subscription'),
|
||||||
message: this.$t(
|
message: this.$t(
|
||||||
"popup_subscription_cancel.message"
|
"popup_subscription_cancel.message"
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="!hasSubscription" class="card shadow-card">
|
<div v-if="!hasSubscription" class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Subscription') }}
|
{{ $t('subscription') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
{{ $t('Free Plan') }}
|
{{ $t('free_plan') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<b v-if="$store.getters.config.allowed_payments" class="mb-3 mb-8 block text-sm text-gray-400">
|
<b v-if="$store.getters.config.allowed_payments" class="mb-3 mb-8 block text-sm text-gray-400">
|
||||||
{{ $t('Upgrade your account to get more.') }}
|
{{ $t('upgrade_to_get_more') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<ButtonBase
|
<ButtonBase
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
button-style="theme"
|
button-style="theme"
|
||||||
class="mt-4 w-full"
|
class="mt-4 w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Upgrade Your Account') }}
|
{{ $t('upgrade_your_account') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
class="card shadow-card"
|
class="card shadow-card"
|
||||||
>
|
>
|
||||||
<FormLabel icon="frown">
|
<FormLabel icon="frown">
|
||||||
{{ $t('Failed Payments') }}
|
{{ $t('failed_payments') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
<b class="mb-3 mb-5 block text-sm text-gray-400">
|
<b class="mb-3 mb-5 block text-sm text-gray-400">
|
||||||
{{
|
{{
|
||||||
$t(
|
$t(
|
||||||
"We are unable to charge your usage. Please register new credit card or fund your account with sufficient amount and we'll give it another try!"
|
"unable_to_charge"
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</b>
|
</b>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="hasSubscription" class="card shadow-card">
|
<div v-if="hasSubscription" class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Subscription') }}
|
{{ $t('subscription') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-xl font-extrabold sm:text-3xl">
|
||||||
@@ -50,12 +50,12 @@ export default {
|
|||||||
max_team_members: 'purple',
|
max_team_members: 'purple',
|
||||||
},
|
},
|
||||||
message: {
|
message: {
|
||||||
max_storage_amount: `Total ${item.use} of ${item.total} Used`,
|
max_storage_amount: this.$t('total_x_of_x_used', {use: item.use, total:item.total }),
|
||||||
max_team_members: `Total ${item.use} of ${item.total} Members`,
|
max_team_members: this.$t('total_x_of_x_members', {use: item.use, total:item.total }),
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
max_storage_amount: `Storage`,
|
max_storage_amount: this.$t('storage'),
|
||||||
max_team_members: `Team Members`,
|
max_team_members: this.$t('team_members'),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,14 +75,14 @@ export default {
|
|||||||
},
|
},
|
||||||
status() {
|
status() {
|
||||||
return {
|
return {
|
||||||
active: `Active until ${this.subscription.data.attributes.renews_at}`,
|
active: this.$t('active_until', {date: this.subscription.data.attributes.renews_at}),
|
||||||
cancelled: `Ends at ${this.subscription.data.attributes.ends_at}`,
|
cancelled: this.$t('ends_at_date', {date: this.subscription.data.attributes.ends_at}),
|
||||||
}[this.subscription.data.attributes.status]
|
}[this.subscription.data.attributes.status]
|
||||||
},
|
},
|
||||||
price() {
|
price() {
|
||||||
return {
|
return {
|
||||||
month: `${this.subscription.data.relationships.plan.data.attributes.price} Per Month`,
|
month: this.$t('price_per_month', {price: this.subscription.data.relationships.plan.data.attributes.price}),
|
||||||
year: `${this.subscription.data.relationships.plan.data.attributes.price} Per Year`,
|
year: this.$t('price_per_year', {price: this.subscription.data.relationships.plan.data.attributes.price}),
|
||||||
}[this.subscription.data.relationships.plan.data.attributes.interval]
|
}[this.subscription.data.relationships.plan.data.attributes.interval]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="canShowForMeteredBilling || canShowForFixedBilling" class="card shadow-card">
|
<div v-if="canShowForMeteredBilling || canShowForFixedBilling" class="card shadow-card">
|
||||||
<FormLabel icon="credit-card">
|
<FormLabel icon="credit-card">
|
||||||
{{ $t('Payment Method') }}
|
{{ $t('payment_method') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!-- User has registered payment method -->
|
<!-- User has registered payment method -->
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
<PaymentCard v-for="card in user.data.relationships.creditCards.data" :key="card.data.id" :card="card" />
|
<PaymentCard v-for="card in user.data.relationships.creditCards.data" :key="card.data.id" :card="card" />
|
||||||
|
|
||||||
<small class="hidden pt-3 text-xs leading-none dark:text-gray-500 text-gray-500 sm:block">
|
<small class="hidden pt-3 text-xs leading-none dark:text-gray-500 text-gray-500 sm:block">
|
||||||
{{ $t('We are settling your payment automatically via your saved credit card.') }}
|
{{ $t('auto_settled_credit_card') }}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
button-style="theme"
|
button-style="theme"
|
||||||
class="mt-4 w-full"
|
class="mt-4 w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Add Payment Method') }}
|
{{ $t('add_payment_method') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
|
|
||||||
<!-- Store credit card form -->
|
<!-- Store credit card form -->
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
button-style="theme"
|
button-style="theme"
|
||||||
class="mt-4 w-full"
|
class="mt-4 w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Store My Credit Card') }}
|
{{ $t('store_my_credit_card') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
<div id="error-message" class="pt-2 text-xs text-rose-600">
|
<div id="error-message" class="pt-2 text-xs text-rose-600">
|
||||||
<!-- Display error message to your customers here -->
|
<!-- Display error message to your customers here -->
|
||||||
@@ -124,7 +124,7 @@ export default {
|
|||||||
if (this.config.isDemo && this.user.data.attributes.email === 'ho**@hi5ve.digital') {
|
if (this.config.isDemo && this.user.data.attributes.email === 'ho**@hi5ve.digital') {
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your credit card was stored successfully'),
|
message: this.$t('credit_card_stored'),
|
||||||
})
|
})
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -153,7 +153,7 @@ export default {
|
|||||||
// site first to authorize the payment, then redirected to the `return_url`.
|
// site first to authorize the payment, then redirected to the `return_url`.
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your credit card was stored successfully'),
|
message: this.$t('credit_card_stored'),
|
||||||
})
|
})
|
||||||
|
|
||||||
// TODO: L9 - load credit card after was stored in database
|
// TODO: L9 - load credit card after was stored in database
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel icon="file-text">
|
<FormLabel icon="file-text">
|
||||||
{{ $t('Transactions') }}
|
{{ $t('transactions') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<DatatableWrapper
|
<DatatableWrapper
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel icon="file-text">
|
<FormLabel icon="file-text">
|
||||||
{{ $t('Transactions') }}
|
{{ $t('transactions') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<DatatableWrapper class="overflow-x-auto" api="/api/user/transactions" :paginator="true" :columns="columns">
|
<DatatableWrapper class="overflow-x-auto" api="/api/user/transactions" :paginator="true" :columns="columns">
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div v-if="canShowForSubscription" class="card shadow-card">
|
<div v-if="canShowForSubscription" class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Update Payments') }}
|
{{ $t('update_payments') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputButton
|
<AppInputButton
|
||||||
:title="$t('Update your Payment Method')"
|
:title="$t('update_payment_method')"
|
||||||
:description="$t('You will be redirected to your payment provider to edit your payment method.')"
|
:description="$t('payment_method_update_redirect_description')"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
<ButtonBase
|
<ButtonBase
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
class="w-full sm:w-auto"
|
class="w-full sm:w-auto"
|
||||||
button-style="theme"
|
button-style="theme"
|
||||||
>
|
>
|
||||||
{{ $t('Update Payments') }}
|
{{ $t('update_payments') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</AppInputButton>
|
</AppInputButton>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel icon="bar-chart">
|
<FormLabel icon="bar-chart">
|
||||||
{{ $t('Usage Estimates') }}
|
{{ $t('usage_estimates') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
||||||
{{ user.data.relationships.subscription.data.attributes.updated_at }}
|
{{ user.data.relationships.subscription.data.attributes.updated_at }}
|
||||||
{{ $t('till now') }}
|
{{ $t('till_now') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<small class="mt-6 block font-bold">
|
<small class="mt-6 block font-bold">
|
||||||
{{ $t('Records are updated on daily bases.') }}
|
{{ $t('records_updated_daily_bases') }}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div @click="togglePermission" class="permission-toggle">
|
<div @click="togglePermission" class="permission-toggle">
|
||||||
<b class="privilege">{{ teamPermissions[permission] }}</b>
|
<b class="privilege">{{ $t(teamPermissions[permission]) }}</b>
|
||||||
<refresh-cw-icon size="14" />
|
<refresh-cw-icon size="14" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
{{ teamFolder.data.attributes.name }}
|
{{ teamFolder.data.attributes.name }}
|
||||||
</b>
|
</b>
|
||||||
<span class="subtitle mb-2 block text-tiny text-gray-600 dark:text-gray-500">
|
<span class="subtitle mb-2 block text-tiny text-gray-600 dark:text-gray-500">
|
||||||
{{ $t('Created at') }} {{ teamFolder.data.attributes.created_at }}
|
{{ $t('created_at') }} {{ teamFolder.data.attributes.created_at }}
|
||||||
</span>
|
</span>
|
||||||
<TeamMembersPreview :folder="teamFolder" :avatar-size="32" class="members" />
|
<TeamMembersPreview :folder="teamFolder" :avatar-size="32" class="members" />
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
{{ entry.email }}
|
{{ entry.email }}
|
||||||
</b>
|
</b>
|
||||||
<span v-if="entry.id" class="block text-xs text-gray-600 dark:text-gray-500">
|
<span v-if="entry.id" class="block text-xs text-gray-600 dark:text-gray-500">
|
||||||
{{ $t('Waiting for accept invitation...') }}
|
{{ $t('waiting_for_accept_invitation') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div class="w-28">
|
<div class="w-28">
|
||||||
<div v-if="!teamFolder" class="text-right md:text-center">
|
<div v-if="!teamFolder" class="text-right md:text-center">
|
||||||
<span class="mr-3 align-middle text-tiny text-gray-600 dark:text-gray-500 md:mr-0.5">
|
<span class="mr-3 align-middle text-tiny text-gray-600 dark:text-gray-500 md:mr-0.5">
|
||||||
{{ $t('Not selected') }}
|
{{ $t('not_selected') }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<TeamMembersPreview
|
<TeamMembersPreview
|
||||||
|
|||||||
@@ -33,14 +33,14 @@
|
|||||||
|
|
||||||
<!--Add Member-->
|
<!--Add Member-->
|
||||||
<ValidationProvider tag="div" mode="passive" name="Email" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Email" v-slot="{ errors }">
|
||||||
<AppInputText :title="$t('Add Member')" :error="errors[0]">
|
<AppInputText :title="$t('add_member')" :error="errors[0]">
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
<span
|
<span
|
||||||
v-if="email"
|
v-if="email"
|
||||||
@click="addMember"
|
@click="addMember"
|
||||||
class="button-base theme absolute right-2 top-1/2 -translate-y-1/2 transform cursor-pointer rounded-lg px-3 py-2 text-sm font-bold"
|
class="button-base theme absolute right-2 top-1/2 -translate-y-1/2 transform cursor-pointer rounded-lg px-3 py-2 text-sm font-bold"
|
||||||
>
|
>
|
||||||
Add
|
{{ $t('add') }}
|
||||||
</span>
|
</span>
|
||||||
<input
|
<input
|
||||||
@keypress.enter.stop.prevent="addMember"
|
@keypress.enter.stop.prevent="addMember"
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
:class="{ '!border-rose-600': errors[0] }"
|
:class="{ '!border-rose-600': errors[0] }"
|
||||||
type="email"
|
type="email"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
:placeholder="$t('Type member email...')"
|
:placeholder="$t('type_member_email_')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -57,15 +57,15 @@
|
|||||||
|
|
||||||
<!--Member list-->
|
<!--Member list-->
|
||||||
<ValidationProvider tag="div" mode="passive" name="Members" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Members" rules="required" v-slot="{ errors }">
|
||||||
<AppInputText :title="$t('Your Members')" :error="errors[0]" :is-last="true">
|
<AppInputText :title="$t('your_members')" :error="errors[0]" :is-last="true">
|
||||||
<span v-if="errors[0]" class="error-message" style="margin-top: -5px">
|
<span v-if="errors[0]" class="error-message" style="margin-top: -5px">
|
||||||
{{ $t('Please add at least one member.') }}
|
{{ $t('add_at_least_one_member') }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<TeamList v-model="invitations" />
|
<TeamList v-model="invitations" />
|
||||||
|
|
||||||
<p v-if="Object.values(invitations).length === 0" class="text-xs dark:text-gray-500">
|
<p v-if="Object.values(invitations).length === 0" class="text-xs dark:text-gray-500">
|
||||||
{{ $t('Please add at least one member into your Team Folders.') }}
|
{{ $t('add_at_least_one_member_into_team_folder') }}
|
||||||
</p>
|
</p>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
@@ -128,10 +128,10 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['user']),
|
...mapGetters(['user']),
|
||||||
popupTitle() {
|
popupTitle() {
|
||||||
return this.item ? this.$t('Convert as Team Folder') : this.$t('Create Team Folder')
|
return this.item ? this.$t('convert_as_team_folder') : this.$t('create_team_folder')
|
||||||
},
|
},
|
||||||
popupSubmit() {
|
popupSubmit() {
|
||||||
return this.item ? this.$t('Move & Invite Members') : this.$t('Create Team Folder')
|
return this.item ? this.$t('move_and_invite_members') : this.$t('create_team_folder')
|
||||||
},
|
},
|
||||||
isNewFolderTeamCreation() {
|
isNewFolderTeamCreation() {
|
||||||
return !this.item
|
return !this.item
|
||||||
@@ -187,8 +187,8 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let toasterMessage = this.isNewFolderTeamCreation
|
let toasterMessage = this.isNewFolderTeamCreation
|
||||||
? this.$t('Your Team was invited successfully.')
|
? this.$t('team_was_invited')
|
||||||
: this.$t('Your Team was invited and folder was moved into Team Folders section.')
|
: this.$t('team_was_invited_and_folder_moved')
|
||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
@@ -209,14 +209,14 @@ export default {
|
|||||||
addMember() {
|
addMember() {
|
||||||
if (this.$isInvalidEmail(this.email)) {
|
if (this.$isInvalidEmail(this.email)) {
|
||||||
this.$refs.teamFolderForm.setErrors({
|
this.$refs.teamFolderForm.setErrors({
|
||||||
Email: this.$t('You have to type valid email'),
|
Email: this.$t('type_valid_email'),
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.$cantInviteMember(this.email, this.invitations)) {
|
if (this.$cantInviteMember(this.email, this.invitations)) {
|
||||||
this.$refs.teamFolderForm.setErrors({
|
this.$refs.teamFolderForm.setErrors({
|
||||||
Email: this.$t('You have to upgrade your account to add this new member.'),
|
Email: this.$t('upgrade_to_invite_members'),
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<PopupWrapper name="update-team-folder">
|
<PopupWrapper name="update-team-folder">
|
||||||
<!--Title-->
|
<!--Title-->
|
||||||
<PopupHeader :title="$t('Edit Team Folder')" icon="user-plus" />
|
<PopupHeader :title="$t('edit_team_folder')" icon="user-plus" />
|
||||||
|
|
||||||
<!--Content-->
|
<!--Content-->
|
||||||
<PopupContent>
|
<PopupContent>
|
||||||
@@ -12,14 +12,14 @@
|
|||||||
<ValidationObserver @submit.prevent="updateTeamFolder" ref="teamFolderForm" v-slot="{ invalid }" tag="form">
|
<ValidationObserver @submit.prevent="updateTeamFolder" ref="teamFolderForm" v-slot="{ invalid }" tag="form">
|
||||||
<!--Add Member-->
|
<!--Add Member-->
|
||||||
<ValidationProvider tag="div" mode="passive" name="Email" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Email" v-slot="{ errors }">
|
||||||
<AppInputText :title="$t('Add Member')" :error="errors[0]">
|
<AppInputText :title="$t('add_member')" :error="errors[0]">
|
||||||
<div class="relative">
|
<div class="relative">
|
||||||
<span
|
<span
|
||||||
v-if="email"
|
v-if="email"
|
||||||
@click="addMember"
|
@click="addMember"
|
||||||
class="button-base theme absolute right-2 top-1/2 -translate-y-1/2 transform cursor-pointer rounded-lg px-3 py-2 text-sm font-bold"
|
class="button-base theme absolute right-2 top-1/2 -translate-y-1/2 transform cursor-pointer rounded-lg px-3 py-2 text-sm font-bold"
|
||||||
>
|
>
|
||||||
Add
|
{{ $t('add') }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<!--TODO: Fix !pr-20 after JIT official release-->
|
<!--TODO: Fix !pr-20 after JIT official release-->
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
:class="{ '!border-rose-600': errors[0] }"
|
:class="{ '!border-rose-600': errors[0] }"
|
||||||
type="email"
|
type="email"
|
||||||
class="focus-border-theme input-dark !pr-20"
|
class="focus-border-theme input-dark !pr-20"
|
||||||
:placeholder="$t('Type member email...')"
|
:placeholder="$t('type_member_email_')"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -38,9 +38,9 @@
|
|||||||
|
|
||||||
<!--Member list-->
|
<!--Member list-->
|
||||||
<ValidationProvider tag="div" mode="passive" name="Members" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Members" v-slot="{ errors }">
|
||||||
<label class="input-label">{{ $t('Your Members') }}:</label>
|
<label class="input-label">{{ $t('your_members') }}:</label>
|
||||||
<span v-if="errors[0]" class="error-message" style="margin-top: -5px">{{
|
<span v-if="errors[0]" class="error-message" style="margin-top: -5px">{{
|
||||||
$t('Please add at least one member.')
|
$t('add_at_least_one_member')
|
||||||
}}</span>
|
}}</span>
|
||||||
<TeamList v-model="members" />
|
<TeamList v-model="members" />
|
||||||
<TeamList v-model="invitations" />
|
<TeamList v-model="invitations" />
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
v-if="Object.values(members).length === 0 && Object.values(invitations).length === 0"
|
v-if="Object.values(members).length === 0 && Object.values(invitations).length === 0"
|
||||||
class="text-xs dark:text-gray-500"
|
class="text-xs dark:text-gray-500"
|
||||||
>
|
>
|
||||||
{{ $t('Please add at least one member into your Team Folder.') }}
|
{{ $t('add_at_least_one_member_into_team_folder') }}
|
||||||
</p>
|
</p>
|
||||||
</ValidationProvider>
|
</ValidationProvider>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
@@ -66,7 +66,7 @@
|
|||||||
:button-style="isDisabledSubmit ? 'secondary' : 'theme'"
|
:button-style="isDisabledSubmit ? 'secondary' : 'theme'"
|
||||||
:loading="isLoading"
|
:loading="isLoading"
|
||||||
:disabled="isLoading || isDisabledSubmit"
|
:disabled="isLoading || isDisabledSubmit"
|
||||||
>{{ $t('Update Team Folder') }}
|
>{{ $t('update_team_folder') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</PopupActions>
|
</PopupActions>
|
||||||
</PopupWrapper>
|
</PopupWrapper>
|
||||||
@@ -139,7 +139,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your team folder was updated'),
|
message: this.$t('team_folder_updated'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
@@ -160,14 +160,14 @@ export default {
|
|||||||
addMember() {
|
addMember() {
|
||||||
if (this.$isInvalidEmail(this.email)) {
|
if (this.$isInvalidEmail(this.email)) {
|
||||||
this.$refs.teamFolderForm.setErrors({
|
this.$refs.teamFolderForm.setErrors({
|
||||||
Email: this.$t('You have to type valid email'),
|
Email: this.$t('type_valid_email'),
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.$cantInviteMember(this.email, this.invitations)) {
|
if (this.$cantInviteMember(this.email, this.invitations)) {
|
||||||
this.$refs.teamFolderForm.setErrors({
|
this.$refs.teamFolderForm.setErrors({
|
||||||
Email: this.$t('You have to upgrade your account to add this new member.'),
|
Email: this.$t('upgrade_to_invite_members'),
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+10
-10
@@ -7,16 +7,16 @@ const AlertHelpers = {
|
|||||||
Vue.prototype.$temporarilyDisabledUpload = function () {
|
Vue.prototype.$temporarilyDisabledUpload = function () {
|
||||||
let messages = {
|
let messages = {
|
||||||
metered: {
|
metered: {
|
||||||
title: i18n.t('Upload is temporarily disabled'),
|
title: i18n.t('upload_temporarily_disabled'),
|
||||||
message: i18n.t('Please review your billing settings.'),
|
message: i18n.t('upload_temporarily_disabled_note'),
|
||||||
},
|
},
|
||||||
fixed: {
|
fixed: {
|
||||||
title: i18n.t('Upload is temporarily disabled'),
|
title: i18n.t('upload_temporarily_disabled'),
|
||||||
message: i18n.t('Please review your billing settings.'),
|
message: i18n.t('upload_temporarily_disabled_note'),
|
||||||
},
|
},
|
||||||
none: {
|
none: {
|
||||||
title: i18n.t('You exceeded your upload limit'),
|
title: i18n.t('exceed_upload_limit'),
|
||||||
message: i18n.t('Unfortunately, you can not upload your file.'),
|
message: i18n.t('exceed_upload_limit_description'),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -28,15 +28,15 @@ const AlertHelpers = {
|
|||||||
|
|
||||||
Vue.prototype.$temporarilyDisabledFolderCreate = function () {
|
Vue.prototype.$temporarilyDisabledFolderCreate = function () {
|
||||||
events.$emit('alert:open', {
|
events.$emit('alert:open', {
|
||||||
title: i18n.t('Folder creation is temporarily disabled'),
|
title: i18n.t('create_folder_temporarily_disabled'),
|
||||||
message: i18n.t('Please review your billing settings.'),
|
message: i18n.t('create_folder_temporarily_disabled_desc'),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
Vue.prototype.$temporarilyDisabledDownload = function () {
|
Vue.prototype.$temporarilyDisabledDownload = function () {
|
||||||
events.$emit('alert:open', {
|
events.$emit('alert:open', {
|
||||||
title: i18n.t('File download is temporarily disabled'),
|
title: i18n.t('download_temporarily_disabled'),
|
||||||
message: i18n.t('Please review your billing settings.'),
|
message: i18n.t('download_temporarily_disabled_desc'),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
-17
@@ -93,31 +93,31 @@ const FunctionHelpers = {
|
|||||||
progress: storage.data.meta.images.percentage,
|
progress: storage.data.meta.images.percentage,
|
||||||
color: 'success',
|
color: 'success',
|
||||||
value: storage.data.meta.images.used,
|
value: storage.data.meta.images.used,
|
||||||
title: 'Images',
|
title: i18n.t('images'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
progress: storage.data.meta.videos.percentage,
|
progress: storage.data.meta.videos.percentage,
|
||||||
color: 'danger',
|
color: 'danger',
|
||||||
value: storage.data.meta.videos.used,
|
value: storage.data.meta.videos.used,
|
||||||
title: 'Videos',
|
title: i18n.t('videos'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
progress: storage.data.meta.audios.percentage,
|
progress: storage.data.meta.audios.percentage,
|
||||||
color: 'warning',
|
color: 'warning',
|
||||||
value: storage.data.meta.audios.used,
|
value: storage.data.meta.audios.used,
|
||||||
title: 'Audios',
|
title: i18n.t('audios'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
progress: storage.data.meta.documents.percentage,
|
progress: storage.data.meta.documents.percentage,
|
||||||
color: 'info',
|
color: 'info',
|
||||||
value: storage.data.meta.documents.used,
|
value: storage.data.meta.documents.used,
|
||||||
title: 'Documents',
|
title: i18n.t('documents'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
progress: storage.data.meta.others.percentage,
|
progress: storage.data.meta.others.percentage,
|
||||||
color: 'purple',
|
color: 'purple',
|
||||||
value: storage.data.meta.others.used,
|
value: storage.data.meta.others.used,
|
||||||
title: 'Others',
|
title: i18n.t('others'),
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -130,7 +130,7 @@ const FunctionHelpers = {
|
|||||||
progress: 100 - storage.data.attributes.percentage,
|
progress: 100 - storage.data.attributes.percentage,
|
||||||
color: 'secondary',
|
color: 'secondary',
|
||||||
value: storage.data.meta.others.used,
|
value: storage.data.meta.others.used,
|
||||||
title: 'Empty',
|
title: i18n.t('empty'),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -288,27 +288,27 @@ const FunctionHelpers = {
|
|||||||
return store.getters.currentFolder.data.attributes.name
|
return store.getters.currentFolder.data.attributes.name
|
||||||
} else {
|
} else {
|
||||||
return {
|
return {
|
||||||
RequestUpload: this.$t('Home'),
|
RequestUpload: this.$t('home'),
|
||||||
RecentUploads: this.$t('Recent Uploads'),
|
RecentUploads: this.$t('menu.latest'),
|
||||||
MySharedItems: this.$t('publicly_shared'),
|
MySharedItems: this.$t('publicly_shared'),
|
||||||
Trash: this.$t('Trash'),
|
Trash: this.$t('trash'),
|
||||||
Public: this.$t('Files'),
|
Public: this.$t('menu.files'),
|
||||||
Files: this.$t('sidebar.home'),
|
Files: this.$t('sidebar.home'),
|
||||||
TeamFolders: this.$t('Team Folders'),
|
TeamFolders: this.$t('team_folders'),
|
||||||
SharedWithMe: this.$t('Shared With Me'),
|
SharedWithMe: this.$t('shared_with_me'),
|
||||||
}[this.$route.name]
|
}[this.$route.name]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Vue.prototype.$getCurrentSectionName = function () {
|
Vue.prototype.$getCurrentSectionName = function () {
|
||||||
return {
|
return {
|
||||||
RecentUploads: this.$t('Recent Uploads'),
|
RecentUploads: this.$t('menu.latest'),
|
||||||
MySharedItems: this.$t('publicly_shared'),
|
MySharedItems: this.$t('publicly_shared'),
|
||||||
Trash: this.$t('Trash'),
|
Trash: this.$t('trash'),
|
||||||
Public: this.$t('Files'),
|
Public: this.$t('menu.files'),
|
||||||
Files: this.$t('sidebar.home'),
|
Files: this.$t('sidebar.home'),
|
||||||
TeamFolders: this.$t('Team Folders'),
|
TeamFolders: this.$t('team_folders'),
|
||||||
SharedWithMe: this.$t('Shared With Me'),
|
SharedWithMe: this.$t('shared_with_me'),
|
||||||
}[this.$route.name]
|
}[this.$route.name]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Vendored
+4
-4
@@ -101,9 +101,9 @@ const itemHelpers = {
|
|||||||
|
|
||||||
Vue.prototype.$dissolveTeamFolder = function (folder) {
|
Vue.prototype.$dissolveTeamFolder = function (folder) {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: i18n.t('Are you sure you want to dissolve this team?'),
|
title: i18n.t('really_dissolve_team'),
|
||||||
message: i18n.t(
|
message: i18n.t(
|
||||||
'All team members will lose access to your files and existing folder will be moved into your "Files" section.'
|
'really_dissolve_team_desc'
|
||||||
),
|
),
|
||||||
action: {
|
action: {
|
||||||
id: folder.data.id,
|
id: folder.data.id,
|
||||||
@@ -114,9 +114,9 @@ const itemHelpers = {
|
|||||||
|
|
||||||
Vue.prototype.$detachMeFromTeamFolder = function (folder) {
|
Vue.prototype.$detachMeFromTeamFolder = function (folder) {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: i18n.t('Are you sure you want to leave this team folder?'),
|
title: i18n.t('really_leave_team'),
|
||||||
message: i18n.t(
|
message: i18n.t(
|
||||||
"You will don't have access to the files and all your previously uploaded content will be part of this Team Folder you are leaving."
|
"really_leave_team_desc"
|
||||||
),
|
),
|
||||||
action: {
|
action: {
|
||||||
id: folder.data.id,
|
id: folder.data.id,
|
||||||
|
|||||||
Vendored
+12
-12
@@ -35,42 +35,42 @@ const defaultState = {
|
|||||||
],
|
],
|
||||||
transactionColumns: [
|
transactionColumns: [
|
||||||
{
|
{
|
||||||
label: i18n.t('Note'),
|
label: 'note',
|
||||||
field: 'note',
|
field: 'note',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: i18n.t('User'),
|
label: 'user',
|
||||||
field: 'user_id',
|
field: 'user_id',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: i18n.t('Status'),
|
label: 'status',
|
||||||
field: 'status',
|
field: 'status',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: i18n.t('Type'),
|
label: 'type',
|
||||||
field: 'type',
|
field: 'type',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: i18n.t('Total'),
|
label: 'total',
|
||||||
field: 'amount',
|
field: 'amount',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: i18n.t('Payed At'),
|
label: 'payed_at',
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: i18n.t('Service'),
|
label: 'service',
|
||||||
field: 'driver',
|
field: 'driver',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: i18n.t('Actions'),
|
label: 'actions',
|
||||||
field: 'actions',
|
field: 'actions',
|
||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
@@ -100,8 +100,8 @@ const defaultState = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
teamPermissions: {
|
teamPermissions: {
|
||||||
'can-edit': 'Can Edit',
|
'can-edit': 'can_edit',
|
||||||
'can-view': 'Can View',
|
'can-view': 'can_view',
|
||||||
},
|
},
|
||||||
countries: [
|
countries: [
|
||||||
{ label: 'Czech Republic', value: 'CZ' },
|
{ label: 'Czech Republic', value: 'CZ' },
|
||||||
@@ -380,11 +380,11 @@ const defaultState = {
|
|||||||
],
|
],
|
||||||
intervalList: [
|
intervalList: [
|
||||||
{
|
{
|
||||||
label: 'Monthly',
|
label: 'monthly',
|
||||||
value: 'month',
|
value: 'month',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Annually',
|
label: 'yearly',
|
||||||
value: 'year',
|
value: 'year',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ export default {
|
|||||||
let subscriptionLinks = {
|
let subscriptionLinks = {
|
||||||
metered: [
|
metered: [
|
||||||
{
|
{
|
||||||
title: this.$t('Payments'),
|
title: this.$t('payments'),
|
||||||
route: 'PaymentSettings',
|
route: 'PaymentSettings',
|
||||||
icon: 'card',
|
icon: 'card',
|
||||||
},
|
},
|
||||||
@@ -104,19 +104,19 @@ export default {
|
|||||||
linkActivation: ['plans', 'plan'],
|
linkActivation: ['plans', 'plan'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Transactions'),
|
title: this.$t('transactions'),
|
||||||
route: 'Invoices',
|
route: 'Invoices',
|
||||||
icon: 'file-text',
|
icon: 'file-text',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
fixed: [
|
fixed: [
|
||||||
{
|
{
|
||||||
title: this.$t('Payments'),
|
title: this.$t('payments'),
|
||||||
route: 'PaymentSettings',
|
route: 'PaymentSettings',
|
||||||
icon: 'card',
|
icon: 'card',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Subscriptions'),
|
title: this.$t('subscriptions'),
|
||||||
route: 'Subscriptions',
|
route: 'Subscriptions',
|
||||||
icon: 'dollar',
|
icon: 'dollar',
|
||||||
},
|
},
|
||||||
@@ -127,7 +127,7 @@ export default {
|
|||||||
linkActivation: ['plans', 'plan'],
|
linkActivation: ['plans', 'plan'],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Transactions'),
|
title: this.$t('transactions'),
|
||||||
route: 'Invoices',
|
route: 'Invoices',
|
||||||
icon: 'file-text',
|
icon: 'file-text',
|
||||||
},
|
},
|
||||||
@@ -159,7 +159,7 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
groupCollapsable: false,
|
groupCollapsable: false,
|
||||||
groupTitle: this.$t('Content'),
|
groupTitle: this.$t('content'),
|
||||||
groupLinks: [
|
groupLinks: [
|
||||||
{
|
{
|
||||||
title: this.$t('pages'),
|
title: this.$t('pages'),
|
||||||
@@ -179,7 +179,7 @@ export default {
|
|||||||
if (this.config.subscriptionType !== 'none') {
|
if (this.config.subscriptionType !== 'none') {
|
||||||
sections.push({
|
sections.push({
|
||||||
groupCollapsable: false,
|
groupCollapsable: false,
|
||||||
groupTitle: this.$t('Subscription'),
|
groupTitle: this.$t('subscription'),
|
||||||
groupLinks: subscriptionLinks,
|
groupLinks: subscriptionLinks,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ export default {
|
|||||||
route: 'AppOthers',
|
route: 'AppOthers',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Login & Registration'),
|
title: this.$t('login_and_registration'),
|
||||||
route: 'AppSignInUp',
|
route: 'AppSignInUp',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -38,15 +38,15 @@ export default {
|
|||||||
route: 'AppAdsense',
|
route: 'AppAdsense',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Homepage'),
|
title: this.$t('homepage'),
|
||||||
route: 'AppIndex',
|
route: 'AppIndex',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Environment'),
|
title: this.$t('environment'),
|
||||||
route: 'AppEnvironment',
|
route: 'AppEnvironment',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Server'),
|
title: this.$t('server'),
|
||||||
route: 'AppServer',
|
route: 'AppServer',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-if="app" class="card shadow-card">
|
<div v-if="app" class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Branding') }}
|
{{ $t('branding') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputText :title="$t('admin_settings.appearance.logo')">
|
<AppInputText :title="$t('admin_settings.appearance.logo')">
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
|
|
||||||
<AppInputText :title="$t('App Logo Dark Mode (optional)')">
|
<AppInputText :title="$t('app_logo_dark_mode')">
|
||||||
<ImageInput
|
<ImageInput
|
||||||
@input="$updateImage('/admin/settings', 'app_logo_dark', app.logo_dark)"
|
@input="$updateImage('/admin/settings', 'app_logo_dark', app.logo_dark)"
|
||||||
:image="$getImage(app.logo_dark)"
|
:image="$getImage(app.logo_dark)"
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
|
|
||||||
<AppInputText :title="$t('App Logo Horizontal Dark Mode (optional)')">
|
<AppInputText :title="$t('app_logo_horizontal_dark_mode')">
|
||||||
<ImageInput
|
<ImageInput
|
||||||
@input="$updateImage('/admin/settings', 'app_logo_horizontal_dark', app.logo_horizontal_dark)"
|
@input="$updateImage('/admin/settings', 'app_logo_horizontal_dark', app.logo_horizontal_dark)"
|
||||||
:image="$getImage(app.logo_horizontal_dark)"
|
:image="$getImage(app.logo_horizontal_dark)"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
class="card shadow-card"
|
class="card shadow-card"
|
||||||
>
|
>
|
||||||
<FormLabel icon="wifi">
|
<FormLabel icon="wifi">
|
||||||
{{ $t('Broadcasting') }}
|
{{ $t('broadcasting') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<ValidationProvider tag="div" mode="passive" name="Broadcast Driver" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Broadcast Driver" rules="required" v-slot="{ errors }">
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
button-style="theme"
|
button-style="theme"
|
||||||
class="w-full sm:w-auto"
|
class="w-full sm:w-auto"
|
||||||
>
|
>
|
||||||
{{ $t('Save Broadcast Settings') }}
|
{{ $t('save_broadcast_settings') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
|
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
class="card shadow-card"
|
class="card shadow-card"
|
||||||
>
|
>
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Storage Driver') }}
|
{{ $t('storage_driver') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<ValidationProvider
|
<ValidationProvider
|
||||||
@@ -224,7 +224,7 @@
|
|||||||
button-style="theme"
|
button-style="theme"
|
||||||
class="w-full sm:w-auto"
|
class="w-full sm:w-auto"
|
||||||
>
|
>
|
||||||
{{ $t('Save Storage Settings') }}
|
{{ $t('save_storage_settings') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
|
|
||||||
@@ -236,7 +236,7 @@
|
|||||||
tag="form"
|
tag="form"
|
||||||
class="card shadow-card"
|
class="card shadow-card"
|
||||||
>
|
>
|
||||||
<FormLabel icon="mail">{{ $t('Mail Driver') }}</FormLabel>
|
<FormLabel icon="mail">{{ $t('mail_driver') }}</FormLabel>
|
||||||
|
|
||||||
<ValidationProvider tag="div" mode="passive" name="Mail Driver" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Mail Driver" rules="required" v-slot="{ errors }">
|
||||||
<AppInputText title="Mail Driver" :error="errors[0]">
|
<AppInputText title="Mail Driver" :error="errors[0]">
|
||||||
@@ -244,7 +244,7 @@
|
|||||||
v-model="mailDriver"
|
v-model="mailDriver"
|
||||||
:default="mailDriver"
|
:default="mailDriver"
|
||||||
:options="mailDriverList"
|
:options="mailDriverList"
|
||||||
placeholder="Select your mail driver"
|
:placeholder="$t('select_mail_driver')"
|
||||||
:isError="errors[0]"
|
:isError="errors[0]"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -846,7 +846,7 @@ export default {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your broadcast driver was updated.'),
|
message: this.$t('broadcast_driver_updated'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
@@ -885,7 +885,7 @@ export default {
|
|||||||
.then(() => {
|
.then(() => {
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('Your storage driver was updated.'),
|
message: this.$t('storage_driver_updated'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|||||||
@@ -4,12 +4,12 @@
|
|||||||
<div class="form block-form">
|
<div class="form block-form">
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Homepage') }}
|
{{ $t('homepage') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Allow Homepage')"
|
:title="$t('allow_homepage')"
|
||||||
:description="$t('When this is turned on, your visitors can visit your default homepage.')"
|
:description="$t('allow_homepage_note')"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!--Store & Upload-->
|
<!--Store & Upload-->
|
||||||
<div v-if="app" class="card shadow-card">
|
<div v-if="app" class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Storage & Upload') }}
|
{{ $t('storage_upload') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Available only when is not metered billing-->
|
<!--Available only when is not metered billing-->
|
||||||
@@ -71,8 +71,8 @@
|
|||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Allow ReCaptcha')"
|
:title="$t('allow_recaptcha')"
|
||||||
:description="$t('ReCaptcha will be allowed on Registration and Contact Us forms.')"
|
:description="$t('allow_recaptcha_note')"
|
||||||
:is-last="!recaptcha.allowedService"
|
:is-last="!recaptcha.allowedService"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
@@ -90,7 +90,7 @@
|
|||||||
:class="{ 'mb-4': recaptcha.isVisibleCredentialsForm }"
|
:class="{ 'mb-4': recaptcha.isVisibleCredentialsForm }"
|
||||||
>
|
>
|
||||||
<edit2-icon size="12" class="vue-feather text-theme mr-2" />
|
<edit2-icon size="12" class="vue-feather text-theme mr-2" />
|
||||||
<b class="text-xs">{{ $t('Update Your Credentials') }}</b>
|
<b class="text-xs">{{ $t('update_your_credentials') }}</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Set up recaptcha credentials-->
|
<!--Set up recaptcha credentials-->
|
||||||
@@ -103,7 +103,7 @@
|
|||||||
class="rounded-xl p-5 shadow-lg"
|
class="rounded-xl p-5 shadow-lg"
|
||||||
>
|
>
|
||||||
<FormLabel v-if="!config.isRecaptchaConfigured" icon="shield">
|
<FormLabel v-if="!config.isRecaptchaConfigured" icon="shield">
|
||||||
{{ $t('Configure Credentials') }}
|
{{ $t('configure_your_credentials') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<ValidationProvider tag="div" mode="passive" name="Site Key" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Site Key" rules="required" v-slot="{ errors }">
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
type="submit"
|
type="submit"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Store Credentials') }}
|
{{ $t('store_credentials') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
</div>
|
</div>
|
||||||
@@ -145,12 +145,12 @@
|
|||||||
<!--Other Settings-->
|
<!--Other Settings-->
|
||||||
<div v-if="app" class="card shadow-card">
|
<div v-if="app" class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Application') }}
|
{{ $t('application') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputButton
|
<AppInputButton
|
||||||
:title="$t('Cache')"
|
:title="$t('cache')"
|
||||||
:description="$t('Did you change anything in your .env file? Then clear your cache.')"
|
:description="$t('cache_note')"
|
||||||
>
|
>
|
||||||
<ButtonBase
|
<ButtonBase
|
||||||
@click.native="flushCache"
|
@click.native="flushCache"
|
||||||
@@ -187,15 +187,15 @@
|
|||||||
<!-- Subscription -->
|
<!-- Subscription -->
|
||||||
<div v-if="app" class="card shadow-card">
|
<div v-if="app" class="card shadow-card">
|
||||||
<FormLabel icon="credit-card">
|
<FormLabel icon="credit-card">
|
||||||
{{ $t('Subscription') }}
|
{{ $t('subscription') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputText :title="$t('Subscription Type')" :description="$t('Please do not change in production environment.')" :is-last="true">
|
<AppInputText :title="$t('subscription_type')" :description="$t('subscription_type_note')" :is-last="true">
|
||||||
<SelectInput
|
<SelectInput
|
||||||
@change="subscriptionTypeChange"
|
@change="subscriptionTypeChange"
|
||||||
:default="app.subscriptionType"
|
:default="app.subscriptionType"
|
||||||
:options="subscriptionTypes"
|
:options="subscriptionTypes"
|
||||||
:placeholder="$t('Select your subscription type')"
|
:placeholder="$t('select_subscription_type')"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
</div>
|
</div>
|
||||||
@@ -255,9 +255,9 @@ export default {
|
|||||||
methods: {
|
methods: {
|
||||||
subscriptionTypeChange(type) {
|
subscriptionTypeChange(type) {
|
||||||
events.$emit('confirm:open', {
|
events.$emit('confirm:open', {
|
||||||
title: this.$t('Are you sure you want to change subscription type?'),
|
title: this.$t(''),
|
||||||
message: this.$t(
|
message: this.$t(
|
||||||
'We strongly do not recommend change this value if there is any subscribed user to prevent any failures. You can operate only with one type of subscription and you can not change it on the fly!'
|
'subscription_type_change_warn_description'
|
||||||
),
|
),
|
||||||
action: {
|
action: {
|
||||||
type: type,
|
type: type,
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<FormLabel icon="list">Latest Server Logs</FormLabel>
|
<FormLabel icon="list">Latest Server Logs</FormLabel>
|
||||||
|
|
||||||
<InfoBox v-if="!logs.length" class="!mb-0">
|
<InfoBox v-if="!logs.length" class="!mb-0">
|
||||||
<p v-html="$t('There is not any server log.')"></p>
|
<p v-html="$t('there_is_not_log')"></p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
@@ -58,11 +58,11 @@
|
|||||||
<FormLabel icon="database"> Latest Database Backups </FormLabel>
|
<FormLabel icon="database"> Latest Database Backups </FormLabel>
|
||||||
|
|
||||||
<InfoBox v-if="!backups.length" class="!mb-0">
|
<InfoBox v-if="!backups.length" class="!mb-0">
|
||||||
<p v-html="$t('There is not any database backup stored.')"></p>
|
<p v-html="$t('there_is_not_database_backup')"></p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
|
|
||||||
<InfoBox v-if="backups.length" class="!mb-3">
|
<InfoBox v-if="backups.length" class="!mb-3">
|
||||||
<p v-html="$t('You can find your backups in <b>/storage/app/app-backups</b>.')"></p>
|
<p v-html="$t('backup_path')"></p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
|
|||||||
@@ -19,8 +19,8 @@
|
|||||||
</AppInputSwitch>
|
</AppInputSwitch>
|
||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Require Email Verification')"
|
:title="$t('require_email_verification')"
|
||||||
:description="$t('admin_settings.others.allow_user_verification_help')"
|
:description="$t('require_email_verification_note')"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
:class="{ 'mb-4': facebook.isVisibleCredentialsForm }"
|
:class="{ 'mb-4': facebook.isVisibleCredentialsForm }"
|
||||||
>
|
>
|
||||||
<edit2-icon size="12" class="vue-feather text-theme mr-2" />
|
<edit2-icon size="12" class="vue-feather text-theme mr-2" />
|
||||||
<b class="text-xs">{{ $t('Update Your Credentials') }}</b>
|
<b class="text-xs">{{ $t('update_your_credentials') }}</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Set up facebook credentials-->
|
<!--Set up facebook credentials-->
|
||||||
@@ -113,7 +113,7 @@
|
|||||||
type="submit"
|
type="submit"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Store Credentials') }}
|
{{ $t('store_credentials') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
</div>
|
</div>
|
||||||
@@ -150,7 +150,7 @@
|
|||||||
:class="{ 'mb-4': google.isVisibleCredentialsForm }"
|
:class="{ 'mb-4': google.isVisibleCredentialsForm }"
|
||||||
>
|
>
|
||||||
<edit2-icon size="12" class="vue-feather text-theme mr-2" />
|
<edit2-icon size="12" class="vue-feather text-theme mr-2" />
|
||||||
<b class="text-xs">{{ $t('Update Your Credentials') }}</b>
|
<b class="text-xs">{{ $t('update_your_credentials') }}</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Set up Google credentials-->
|
<!--Set up Google credentials-->
|
||||||
@@ -197,7 +197,7 @@
|
|||||||
type="submit"
|
type="submit"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Store Credentials') }}
|
{{ $t('store_credentials') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
</div>
|
</div>
|
||||||
@@ -234,7 +234,7 @@
|
|||||||
:class="{ 'mb-4': github.isVisibleCredentialsForm }"
|
:class="{ 'mb-4': github.isVisibleCredentialsForm }"
|
||||||
>
|
>
|
||||||
<edit2-icon size="12" class="vue-feather text-theme mr-2" />
|
<edit2-icon size="12" class="vue-feather text-theme mr-2" />
|
||||||
<b class="text-xs">{{ $t('Update Your Credentials') }}</b>
|
<b class="text-xs">{{ $t('update_your_credentials') }}</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Set up github credentials-->
|
<!--Set up github credentials-->
|
||||||
@@ -281,7 +281,7 @@
|
|||||||
type="submit"
|
type="submit"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Store Credentials') }}
|
{{ $t('store_credentials') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</a>
|
</a>
|
||||||
<b v-if="data.app.license === 'extended'" class="mr-4 inline-block">
|
<b v-if="data.app.license === 'extended'" class="mr-4 inline-block">
|
||||||
<span class="text-sm font-bold"> {{ $t('Subscription') }}: </span>
|
<span class="text-sm font-bold"> {{ $t('subscription') }}: </span>
|
||||||
<ColorLabel color="purple">
|
<ColorLabel color="purple">
|
||||||
{{ config.subscriptionType }}
|
{{ config.subscriptionType }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
>
|
>
|
||||||
<thumbs-up-icon size="15" class="vue-feather text-theme mr-2.5" />
|
<thumbs-up-icon size="15" class="vue-feather text-theme mr-2.5" />
|
||||||
<span class="text-theme text-sm font-bold">
|
<span class="text-theme text-sm font-bold">
|
||||||
{{ $t('Write a Feedback') }}
|
{{ $t('write_feedback') }}
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
<div class="mb-2 md:mb-6 md:flex md:space-x-6">
|
<div class="mb-2 md:mb-6 md:flex md:space-x-6">
|
||||||
<div class="card mb-4 w-full shadow-card md:mb-0">
|
<div class="card mb-4 w-full shadow-card md:mb-0">
|
||||||
<FormLabel icon="users">
|
<FormLabel icon="users">
|
||||||
{{ $t('Total Users') }}
|
{{ $t('total_users') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card mb-4 w-full shadow-card md:mb-0">
|
<div class="card mb-4 w-full shadow-card md:mb-0">
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Total Storage') }}
|
{{ $t('total_storage') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div v-if="config.subscriptionType !== 'none'" class="card mb-4 w-full shadow-card md:mb-0">
|
<div v-if="config.subscriptionType !== 'none'" class="card mb-4 w-full shadow-card md:mb-0">
|
||||||
<FormLabel icon="dollar">
|
<FormLabel icon="dollar">
|
||||||
{{ $t('Earnings') }}
|
{{ $t('earnings') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
|
|
||||||
<router-link :to="{ name: 'Invoices' }" class="mt-6 flex items-center">
|
<router-link :to="{ name: 'Invoices' }" class="mt-6 flex items-center">
|
||||||
<span class="mr-2 whitespace-nowrap text-xs font-bold">
|
<span class="mr-2 whitespace-nowrap text-xs font-bold">
|
||||||
{{ $t('Show all transactions') }}
|
{{ $t('show_all_transactions') }}
|
||||||
</span>
|
</span>
|
||||||
<chevron-right-icon size="16" class="text-theme vue-feather" />
|
<chevron-right-icon size="16" class="text-theme vue-feather" />
|
||||||
</router-link>
|
</router-link>
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
<!--Upload bandwidth widgets-->
|
<!--Upload bandwidth widgets-->
|
||||||
<div class="card mb-4 shadow-card md:mb-6">
|
<div class="card mb-4 shadow-card md:mb-6">
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Upload') }}
|
{{ $t('upload') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
</b>
|
</b>
|
||||||
|
|
||||||
<b class="mb-3 mb-2 block text-sm dark:text-gray-500 text-gray-400">
|
<b class="mb-3 mb-2 block text-sm dark:text-gray-500 text-gray-400">
|
||||||
{{ $t('In last 45 days') }}
|
{{ $t('in_last_x_days') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<BarChart :data="data.disk.upload.records" />
|
<BarChart :data="data.disk.upload.records" />
|
||||||
@@ -153,7 +153,7 @@
|
|||||||
<!--Download bandwidth widgets-->
|
<!--Download bandwidth widgets-->
|
||||||
<div class="card mb-4 shadow-card md:mb-6">
|
<div class="card mb-4 shadow-card md:mb-6">
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Download') }}
|
{{ $t('download') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -161,7 +161,7 @@
|
|||||||
</b>
|
</b>
|
||||||
|
|
||||||
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
||||||
{{ $t('In last 45 days') }}
|
{{ $t('in_last_x_days') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<BarChart :data="data.disk.download.records" />
|
<BarChart :data="data.disk.download.records" />
|
||||||
@@ -170,7 +170,7 @@
|
|||||||
<!--Latest registration widgets-->
|
<!--Latest registration widgets-->
|
||||||
<div class="card mb-4 shadow-card md:mb-6">
|
<div class="card mb-4 shadow-card md:mb-6">
|
||||||
<FormLabel icon="users">
|
<FormLabel icon="users">
|
||||||
{{ $t('Latest Registrations') }}
|
{{ $t('latest_registrations') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<WidgetLatestRegistrations />
|
<WidgetLatestRegistrations />
|
||||||
@@ -182,14 +182,14 @@
|
|||||||
class="card mb-4 shadow-card md:mb-6"
|
class="card mb-4 shadow-card md:mb-6"
|
||||||
>
|
>
|
||||||
<FormLabel icon="dollar">
|
<FormLabel icon="dollar">
|
||||||
{{ $t('Latest Transactions') }}
|
{{ $t('latest_transactions') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<WidgetLatestTransactions />
|
<WidgetLatestTransactions />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="loader" v-if="isLoading">
|
<div id="loader" v-if="isLoading">
|
||||||
<Spinner></Spinner>
|
<Spinner />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -36,10 +36,10 @@
|
|||||||
alt="transaction"
|
alt="transaction"
|
||||||
/>
|
/>
|
||||||
<h1 class="mb-1 text-2xl font-bold">
|
<h1 class="mb-1 text-2xl font-bold">
|
||||||
{{ $t('There is Nothing') }}
|
{{ $t('there_is_nothing') }}
|
||||||
</h1>
|
</h1>
|
||||||
<p class="text-sm text-gray-600">
|
<p class="text-sm text-gray-600">
|
||||||
{{ $t('All your transactions will be visible here') }}
|
{{ $t('transaction_will_be_here') }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -119,7 +119,7 @@
|
|||||||
:title="$t('set_as_default_language')"
|
:title="$t('set_as_default_language')"
|
||||||
:description="
|
:description="
|
||||||
$t(
|
$t(
|
||||||
'If this language is set as default, app will appear in this language for all users.'
|
'default_language_disclaimer'
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
pages: [
|
pages: [
|
||||||
{
|
{
|
||||||
title: this.$t('admin_settings.tabs.payments'),
|
title: this.$t('payments'),
|
||||||
route: 'AppPayments',
|
route: 'AppPayments',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
<!--Global payment settings-->
|
<!--Global payment settings-->
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel icon="dollar">
|
<FormLabel icon="dollar">
|
||||||
{{ $t('Subscription Payments') }}
|
{{ $t('subscription_payments') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Allow Subscription Payments')"
|
:title="$t('allow_subscription_payments')"
|
||||||
:description="$t('User can subscribe to fixed or metered plan')"
|
:description="$t('allow_subscription_payments_description')"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
@@ -22,12 +22,12 @@
|
|||||||
<!--Metered settings-->
|
<!--Metered settings-->
|
||||||
<div v-if="config.subscriptionType === 'metered' && allowedPayments" class="card shadow-card">
|
<div v-if="config.subscriptionType === 'metered' && allowedPayments" class="card shadow-card">
|
||||||
<FormLabel icon="bar-chart">
|
<FormLabel icon="bar-chart">
|
||||||
{{ $t('Metered Billing Settings') }}
|
{{ $t('metered_billing_settings') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Allow Registration Bonus')"
|
:title="$t('allow_registration_bonus')"
|
||||||
:description="$t('Credit user automatically bonus to his balance after registration.')"
|
:description="$t('allow_registration_bonus_description')"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
@input="$updateText('/admin/settings', 'allowed_registration_bonus', allowedRegistrationBonus)"
|
@input="$updateText('/admin/settings', 'allowed_registration_bonus', allowedRegistrationBonus)"
|
||||||
@@ -38,21 +38,21 @@
|
|||||||
|
|
||||||
<AppInputText
|
<AppInputText
|
||||||
v-if="allowedRegistrationBonus"
|
v-if="allowedRegistrationBonus"
|
||||||
:title="$t('The Amount of Registration Bonus')"
|
:title="$t('registration_bonus_amount')"
|
||||||
:description="$t('This bonus will be automatically added when user successfully register his account.')"
|
:description="$t('registration_bonus_amount_description')"
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
@input="$updateText('/admin/settings', 'registration_bonus_amount', registrationBonusAmount)"
|
@input="$updateText('/admin/settings', 'registration_bonus_amount', registrationBonusAmount)"
|
||||||
v-model="registrationBonusAmount"
|
v-model="registrationBonusAmount"
|
||||||
:placeholder="$t('Type registration bonus amount...')"
|
:placeholder="$t('registration_bonus_amount_')"
|
||||||
type="number"
|
type="number"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
|
|
||||||
<AppInputButton
|
<AppInputButton
|
||||||
:title="$t('Metered Plan')"
|
:title="$t('metered_plan')"
|
||||||
:description="$t('Your price set up for billing multiple features by user usage.')"
|
:description="$t('metered_plan_description')"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
<router-link
|
<router-link
|
||||||
@@ -63,13 +63,13 @@
|
|||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
<ButtonBase v-if="config.isCreatedMeteredPlan" class="w-full sm:w-auto" button-style="theme">
|
<ButtonBase v-if="config.isCreatedMeteredPlan" class="w-full sm:w-auto" button-style="theme">
|
||||||
{{ $t('Plan Details') }}
|
{{ $t('plan_details') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<router-link v-if="!config.isCreatedMeteredPlan" :to="{ name: 'CreateMeteredPlan' }">
|
<router-link v-if="!config.isCreatedMeteredPlan" :to="{ name: 'CreateMeteredPlan' }">
|
||||||
<ButtonBase class="w-full sm:w-auto" button-style="theme-solid">
|
<ButtonBase class="w-full sm:w-auto" button-style="theme-solid">
|
||||||
{{ $t('Create Plan') }}
|
{{ $t('create_plan') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</router-link>
|
</router-link>
|
||||||
</AppInputButton>
|
</AppInputButton>
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Allow Stripe Service')"
|
:title="$t('Allow Stripe Service')"
|
||||||
:description="$t('Allow your users pay by their credit card')"
|
:description="$t('allow_pay_by_card')"
|
||||||
:is-last="!stripe.allowedService"
|
:is-last="!stripe.allowedService"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
@@ -94,8 +94,8 @@
|
|||||||
<!--Stripe credentials are set up-->
|
<!--Stripe credentials are set up-->
|
||||||
<div v-if="stripe.allowedService">
|
<div v-if="stripe.allowedService">
|
||||||
<AppInputText
|
<AppInputText
|
||||||
:title="$t('Your Webhook URL')"
|
:title="$t('webhook_url')"
|
||||||
:description="$t('Please copy your url and paste it to the service webhook setup.')"
|
:description="$t('copy_webhook_note')"
|
||||||
>
|
>
|
||||||
<CopyInput size="small" :str="getWebhookEndpoint('stripe')" />
|
<CopyInput size="small" :str="getWebhookEndpoint('stripe')" />
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -103,8 +103,8 @@
|
|||||||
<div v-if="stripe.isConfigured">
|
<div v-if="stripe.isConfigured">
|
||||||
<AppInputText
|
<AppInputText
|
||||||
@input="$updateText('/admin/settings', 'stripe_payment_description', stripe.paymentDescription)"
|
@input="$updateText('/admin/settings', 'stripe_payment_description', stripe.paymentDescription)"
|
||||||
:title="$t('Payment Description')"
|
:title="$t('payment_description')"
|
||||||
:description="$t('The description showed below user payment method selection.')"
|
:description="$t('payment_description_note')"
|
||||||
>
|
>
|
||||||
<textarea
|
<textarea
|
||||||
rows="2"
|
rows="2"
|
||||||
@@ -118,7 +118,7 @@
|
|||||||
"
|
"
|
||||||
v-model="stripe.paymentDescription"
|
v-model="stripe.paymentDescription"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
$t('Describe in short which methods user can pay with this payment method...')
|
$t('additional_info_about_payment_method_')
|
||||||
"
|
"
|
||||||
type="text"
|
type="text"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
@@ -131,7 +131,7 @@
|
|||||||
:class="{ 'mb-4': stripe.isVisibleCredentialsForm }"
|
:class="{ 'mb-4': stripe.isVisibleCredentialsForm }"
|
||||||
>
|
>
|
||||||
<edit2-icon size="14" class="vue-feather text-theme mr-2.5" />
|
<edit2-icon size="14" class="vue-feather text-theme mr-2.5" />
|
||||||
<b class="text-sm">{{ $t('Update Your Credentials') }}</b>
|
<b class="text-sm">{{ $t('update_your_credentials') }}</b>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -145,7 +145,7 @@
|
|||||||
class="rounded-xl p-5 shadow-lg"
|
class="rounded-xl p-5 shadow-lg"
|
||||||
>
|
>
|
||||||
<FormLabel v-if="!stripe.isConfigured" icon="shield">
|
<FormLabel v-if="!stripe.isConfigured" icon="shield">
|
||||||
{{ $t('Configure Your Credentials') }}
|
{{ $t('configure_your_credentials') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
<ValidationProvider
|
<ValidationProvider
|
||||||
tag="div"
|
tag="div"
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
<AppInputText :title="$t('Webhook Secret')" :error="errors[0]">
|
<AppInputText :title="$t('Webhook Secret')" :error="errors[0]">
|
||||||
<input
|
<input
|
||||||
v-model="stripe.credentials.webhook"
|
v-model="stripe.credentials.webhook"
|
||||||
:placeholder="$t('Paste your webhook secret')"
|
:placeholder="$t('paste_webhook_secret')"
|
||||||
type="text"
|
type="text"
|
||||||
:class="{ '!border-rose-600': errors[0] }"
|
:class="{ '!border-rose-600': errors[0] }"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
@@ -200,7 +200,7 @@
|
|||||||
type="submit"
|
type="submit"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Store Credentials') }}
|
{{ $t('store_credentials') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
</div>
|
</div>
|
||||||
@@ -212,7 +212,7 @@
|
|||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Allow Paystack Service')"
|
:title="$t('Allow Paystack Service')"
|
||||||
:description="$t('Allow your users pay by their credit card')"
|
:description="$t('allow_pay_by_card')"
|
||||||
:is-last="!paystack.allowedService"
|
:is-last="!paystack.allowedService"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
@@ -225,8 +225,8 @@
|
|||||||
<!--Paystack credentials are set up-->
|
<!--Paystack credentials are set up-->
|
||||||
<div v-if="paystack.allowedService">
|
<div v-if="paystack.allowedService">
|
||||||
<AppInputText
|
<AppInputText
|
||||||
:title="$t('Your Webhook URL')"
|
:title="$t('webhook_url')"
|
||||||
:description="$t('Please copy your url and paste it to the service webhook setup.')"
|
:description="$t('copy_webhook_note')"
|
||||||
>
|
>
|
||||||
<CopyInput size="small" :str="getWebhookEndpoint('paystack')" />
|
<CopyInput size="small" :str="getWebhookEndpoint('paystack')" />
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -236,8 +236,8 @@
|
|||||||
@input="
|
@input="
|
||||||
$updateText('/admin/settings', 'paystack_payment_description', paystack.paymentDescription)
|
$updateText('/admin/settings', 'paystack_payment_description', paystack.paymentDescription)
|
||||||
"
|
"
|
||||||
:title="$t('Payment Description')"
|
:title="$t('payment_description')"
|
||||||
:description="$t('The description showed below user payment method selection.')"
|
:description="$t('payment_description_note')"
|
||||||
>
|
>
|
||||||
<textarea
|
<textarea
|
||||||
rows="2"
|
rows="2"
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
"
|
"
|
||||||
v-model="paystack.paymentDescription"
|
v-model="paystack.paymentDescription"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
$t('Describe in short which methods user can pay with this payment method...')
|
$t('additional_info_about_payment_method_')
|
||||||
"
|
"
|
||||||
type="text"
|
type="text"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
@@ -264,7 +264,7 @@
|
|||||||
:class="{ 'mb-4': paystack.isVisibleCredentialsForm }"
|
:class="{ 'mb-4': paystack.isVisibleCredentialsForm }"
|
||||||
>
|
>
|
||||||
<edit2-icon size="14" class="vue-feather text-theme mr-2.5" />
|
<edit2-icon size="14" class="vue-feather text-theme mr-2.5" />
|
||||||
<b class="text-sm">{{ $t('Update Your Credentials') }}</b>
|
<b class="text-sm">{{ $t('update_your_credentials') }}</b>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -278,7 +278,7 @@
|
|||||||
class="rounded-xl p-5 shadow-lg"
|
class="rounded-xl p-5 shadow-lg"
|
||||||
>
|
>
|
||||||
<FormLabel v-if="!paystack.isConfigured" icon="shield">
|
<FormLabel v-if="!paystack.isConfigured" icon="shield">
|
||||||
{{ $t('Configure Your Credentials') }}
|
{{ $t('configure_your_credentials') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
<ValidationProvider
|
<ValidationProvider
|
||||||
tag="div"
|
tag="div"
|
||||||
@@ -316,7 +316,7 @@
|
|||||||
type="submit"
|
type="submit"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Store Credentials') }}
|
{{ $t('store_credentials') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
</div>
|
</div>
|
||||||
@@ -328,7 +328,7 @@
|
|||||||
|
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Allow PayPal Service')"
|
:title="$t('Allow PayPal Service')"
|
||||||
:description="$t('Allow your users pay by their credit card')"
|
:description="$t('allow_pay_by_card')"
|
||||||
:is-last="!paypal.allowedService"
|
:is-last="!paypal.allowedService"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
@@ -341,8 +341,8 @@
|
|||||||
<!--Stripe credentials are set up-->
|
<!--Stripe credentials are set up-->
|
||||||
<div v-if="paypal.allowedService">
|
<div v-if="paypal.allowedService">
|
||||||
<AppInputText
|
<AppInputText
|
||||||
:title="$t('Your Webhook URL')"
|
:title="$t('webhook_url')"
|
||||||
:description="$t('Please copy your url and paste it to the service webhook setup.')"
|
:description="$t('copy_webhook_note')"
|
||||||
>
|
>
|
||||||
<CopyInput size="small" :str="getWebhookEndpoint('paypal')" />
|
<CopyInput size="small" :str="getWebhookEndpoint('paypal')" />
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -358,8 +358,8 @@
|
|||||||
|
|
||||||
<AppInputText
|
<AppInputText
|
||||||
@input="$updateText('/admin/settings', 'paypal_payment_description', paypal.paymentDescription)"
|
@input="$updateText('/admin/settings', 'paypal_payment_description', paypal.paymentDescription)"
|
||||||
:title="$t('Payment Description')"
|
:title="$t('payment_description')"
|
||||||
:description="$t('The description showed below user payment method selection.')"
|
:description="$t('payment_description_note')"
|
||||||
>
|
>
|
||||||
<textarea
|
<textarea
|
||||||
rows="2"
|
rows="2"
|
||||||
@@ -373,7 +373,7 @@
|
|||||||
"
|
"
|
||||||
v-model="paypal.paymentDescription"
|
v-model="paypal.paymentDescription"
|
||||||
:placeholder="
|
:placeholder="
|
||||||
$t('Describe in short which methods user can pay with this payment method...')
|
$t('additional_info_about_payment_method_')
|
||||||
"
|
"
|
||||||
type="text"
|
type="text"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
@@ -386,7 +386,7 @@
|
|||||||
:class="{ 'mb-4': paypal.isVisibleCredentialsForm }"
|
:class="{ 'mb-4': paypal.isVisibleCredentialsForm }"
|
||||||
>
|
>
|
||||||
<edit2-icon size="14" class="vue-feather text-theme mr-2.5" />
|
<edit2-icon size="14" class="vue-feather text-theme mr-2.5" />
|
||||||
<b class="text-sm">{{ $t('Update Your Credentials') }}</b>
|
<b class="text-sm">{{ $t('update_your_credentials') }}</b>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -400,7 +400,7 @@
|
|||||||
class="rounded-xl p-5 shadow-lg"
|
class="rounded-xl p-5 shadow-lg"
|
||||||
>
|
>
|
||||||
<FormLabel v-if="!paypal.isConfigured" icon="shield">
|
<FormLabel v-if="!paypal.isConfigured" icon="shield">
|
||||||
{{ $t('Configure Your Credentials') }}
|
{{ $t('configure_your_credentials') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
<ValidationProvider
|
<ValidationProvider
|
||||||
tag="div"
|
tag="div"
|
||||||
@@ -449,7 +449,7 @@
|
|||||||
type="submit"
|
type="submit"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
{{ $t('Store Credentials') }}
|
{{ $t('store_credentials') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</ValidationObserver>
|
</ValidationObserver>
|
||||||
</div>
|
</div>
|
||||||
@@ -549,17 +549,17 @@ export default {
|
|||||||
},
|
},
|
||||||
columns: [
|
columns: [
|
||||||
{
|
{
|
||||||
label: this.$t('Name'),
|
label: this.$t('name'),
|
||||||
field: 'name',
|
field: 'name',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Currency'),
|
label: this.$t('currency'),
|
||||||
field: 'currency',
|
field: 'currency',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Interval'),
|
label: this.$t('interval'),
|
||||||
field: 'interval',
|
field: 'interval',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getPlanStatusColor(row.data.attributes.status)">
|
<ColorLabel :color="$getPlanStatusColor(row.data.attributes.status)">
|
||||||
{{ row.data.attributes.status }}
|
{{ $t(row.data.attributes.status) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -49,7 +49,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<span class="text-sm font-bold capitalize">
|
<span class="text-sm font-bold capitalize">
|
||||||
{{ row.data.attributes.interval }}
|
{{ $t(row.data.attributes.interval) }}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<span class="text-sm font-bold capitalize">
|
<span class="text-sm font-bold capitalize">
|
||||||
{{ row.data.attributes.interval }}
|
{{ $t(row.data.attributes.interval) }}
|
||||||
</span>
|
</span>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -170,16 +170,16 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<h1 class="mb-1 text-2xl font-bold">
|
<h1 class="mb-1 text-2xl font-bold">
|
||||||
{{ $t('There is Nothing') }}
|
{{ $t('there_is_nothing') }}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p class="text-sm text-gray-600">
|
<p class="text-sm text-gray-600">
|
||||||
{{ $t('All your plans will be visible here') }}
|
{{ $t('all_visible_plans_here') }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<router-link :to="{ name: createPlanRoute }" class="mt-6 inline-block">
|
<router-link :to="{ name: createPlanRoute }" class="mt-6 inline-block">
|
||||||
<ButtonBase class="action-confirm" button-style="theme">
|
<ButtonBase class="action-confirm" button-style="theme">
|
||||||
{{ $t('Create First Plan') }}
|
{{ $t('create_first_plan') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</router-link>
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
@@ -219,22 +219,22 @@ export default {
|
|||||||
return {
|
return {
|
||||||
metered: [
|
metered: [
|
||||||
{
|
{
|
||||||
label: this.$t('Name'),
|
label: this.$t('name'),
|
||||||
field: 'name',
|
field: 'name',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Status'),
|
label: this.$t('status'),
|
||||||
field: 'status',
|
field: 'status',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Currency'),
|
label: this.$t('currency'),
|
||||||
field: 'currency',
|
field: 'currency',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Interval'),
|
label: this.$t('interval'),
|
||||||
field: 'interval',
|
field: 'interval',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
@@ -249,22 +249,22 @@ export default {
|
|||||||
],
|
],
|
||||||
fixed: [
|
fixed: [
|
||||||
{
|
{
|
||||||
label: this.$t('Visibility'),
|
label: this.$t('visibility'),
|
||||||
field: 'visible',
|
field: 'visible',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Name'),
|
label: this.$t('name'),
|
||||||
field: 'name',
|
field: 'name',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Price'),
|
label: this.$t('price'),
|
||||||
field: 'amount',
|
field: 'amount',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Interval'),
|
label: this.$t('interval'),
|
||||||
field: 'interval',
|
field: 'interval',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
@@ -273,7 +273,7 @@ export default {
|
|||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Storage'),
|
label: this.$t('storage'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<ValidationObserver @submit.prevent="createPlan" ref="createPlan" v-slot="{ invalid }" tag="form">
|
<ValidationObserver @submit.prevent="createPlan" ref="createPlan" v-slot="{ invalid }" tag="form">
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Details') }}
|
{{ $t('details') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Name-->
|
<!--Name-->
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
|
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Pricing') }}
|
{{ $t('pricing') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<div class="justify-items md:flex md:space-x-4">
|
<div class="justify-items md:flex md:space-x-4">
|
||||||
@@ -47,10 +47,10 @@
|
|||||||
v-slot="{ errors }"
|
v-slot="{ errors }"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
<AppInputText :title="$t('admin_page_plans.form.price')" class="w-full">
|
<AppInputText :title="$t('plan_price')" class="w-full">
|
||||||
<input
|
<input
|
||||||
v-model="plan.amount"
|
v-model="plan.amount"
|
||||||
:placeholder="$t('admin_page_plans.form.price_plac')"
|
:placeholder="$t('plan_price')"
|
||||||
type="number"
|
type="number"
|
||||||
step="0.01"
|
step="0.01"
|
||||||
min="1"
|
min="1"
|
||||||
@@ -70,11 +70,11 @@
|
|||||||
v-slot="{ errors }"
|
v-slot="{ errors }"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
<AppInputText :title="$t('Currency')" class="w-full">
|
<AppInputText :title="$t('currency')" class="w-full">
|
||||||
<SelectInput
|
<SelectInput
|
||||||
v-model="plan.currency"
|
v-model="plan.currency"
|
||||||
:options="currencyList"
|
:options="currencyList"
|
||||||
:placeholder="$t('Select plan currency')"
|
:placeholder="$t('select_plan_currency')"
|
||||||
:isError="errors[0]"
|
:isError="errors[0]"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -83,11 +83,11 @@
|
|||||||
|
|
||||||
<!--Interval-->
|
<!--Interval-->
|
||||||
<ValidationProvider tag="div" mode="passive" name="Interval" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Interval" rules="required" v-slot="{ errors }">
|
||||||
<AppInputText :title="$t('Interval')" :is-last="true">
|
<AppInputText :title="$t('interval')" :is-last="true">
|
||||||
<SelectInput
|
<SelectInput
|
||||||
v-model="plan.interval"
|
v-model="plan.interval"
|
||||||
:options="intervalList"
|
:options="intervalList"
|
||||||
:placeholder="$t('Select billing interval')"
|
:placeholder="$t('select_billing_interval')"
|
||||||
:isError="errors[0]"
|
:isError="errors[0]"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Features') }}
|
{{ $t('features') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Storage Capacity-->
|
<!--Storage Capacity-->
|
||||||
@@ -126,13 +126,13 @@
|
|||||||
<!--Team Members-->
|
<!--Team Members-->
|
||||||
<ValidationProvider tag="div" mode="passive" name="Max Team Members" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Max Team Members" rules="required" v-slot="{ errors }">
|
||||||
<AppInputText
|
<AppInputText
|
||||||
:title="$t('Team Members')"
|
:title="$t('team_members')"
|
||||||
:description="$t('Type -1 to set unlimited team members.')"
|
:description="$t('zero_for_unlimited_members')"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
v-model="plan.features.max_team_members"
|
v-model="plan.features.max_team_members"
|
||||||
:placeholder="$t('Add max team members in number')"
|
:placeholder="$t('add_max_team_members')"
|
||||||
type="number"
|
type="number"
|
||||||
min="1"
|
min="1"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<ValidationObserver @submit.prevent="createPlan" ref="createPlan" v-slot="{ invalid }" tag="form">
|
<ValidationObserver @submit.prevent="createPlan" ref="createPlan" v-slot="{ invalid }" tag="form">
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Details') }}
|
{{ $t('details') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Name-->
|
<!--Name-->
|
||||||
@@ -32,11 +32,11 @@
|
|||||||
|
|
||||||
<!--Currency-->
|
<!--Currency-->
|
||||||
<ValidationProvider tag="div" mode="passive" name="Currency" rules="required" v-slot="{ errors }">
|
<ValidationProvider tag="div" mode="passive" name="Currency" rules="required" v-slot="{ errors }">
|
||||||
<AppInputText :title="$t('Currency')" class="w-full" :is-last="true">
|
<AppInputText :title="$t('currency')" class="w-full" :is-last="true">
|
||||||
<SelectInput
|
<SelectInput
|
||||||
v-model="plan.currency"
|
v-model="plan.currency"
|
||||||
:options="currencyList"
|
:options="currencyList"
|
||||||
:placeholder="$t('Select plan currency')"
|
:placeholder="$t('select_plan_currency')"
|
||||||
:isError="errors[0]"
|
:isError="errors[0]"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -45,14 +45,14 @@
|
|||||||
|
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Charged Features') }}
|
{{ $t('charged_features') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Bandwidth-->
|
<!--Bandwidth-->
|
||||||
<div>
|
<div>
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Bandwidth Price per 1GB')"
|
:title="$t('bandwidth_per_gb')"
|
||||||
:description="$t('Charge your user by the amount of data he upload or download.')"
|
:description="$t('bandwidth_per_gb_note')"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
v-model="plan.features.bandwidth.active"
|
v-model="plan.features.bandwidth.active"
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
<AppInputText class="w-full">
|
<AppInputText class="w-full">
|
||||||
<input
|
<input
|
||||||
v-model="plan.features.bandwidth.per_unit"
|
v-model="plan.features.bandwidth.per_unit"
|
||||||
:placeholder="$t('Type the price per 1GB...')"
|
:placeholder="$t('type_bandwidth_price')"
|
||||||
type="number"
|
type="number"
|
||||||
step="0.01"
|
step="0.01"
|
||||||
min="0.01"
|
min="0.01"
|
||||||
@@ -88,8 +88,8 @@
|
|||||||
<!--Storage-->
|
<!--Storage-->
|
||||||
<div>
|
<div>
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Storage Price per 1GB')"
|
:title="$t('storage_per_gb')"
|
||||||
:description="$t('Charge your user by the amount of data he has stored on the disk per 1GB.')"
|
:description="$t('storage_per_gb_note')"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
v-model="plan.features.storage.active"
|
v-model="plan.features.storage.active"
|
||||||
@@ -111,7 +111,7 @@
|
|||||||
<AppInputText class="w-full">
|
<AppInputText class="w-full">
|
||||||
<input
|
<input
|
||||||
v-model="plan.features.storage.per_unit"
|
v-model="plan.features.storage.per_unit"
|
||||||
:placeholder="$t('Type the price per 1GB...')"
|
:placeholder="$t('type_storage_price')"
|
||||||
type="number"
|
type="number"
|
||||||
step="0.01"
|
step="0.01"
|
||||||
min="0.01"
|
min="0.01"
|
||||||
@@ -125,8 +125,8 @@
|
|||||||
<!--Member-->
|
<!--Member-->
|
||||||
<div>
|
<div>
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Price per 1 Member')"
|
:title="$t('member_per_unit')"
|
||||||
:description="$t('Charge your user by the total members he use in his Team Folders.')"
|
:description="$t('member_per_unit_note')"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
v-model="plan.features.member.active"
|
v-model="plan.features.member.active"
|
||||||
@@ -148,7 +148,7 @@
|
|||||||
<AppInputText class="w-full">
|
<AppInputText class="w-full">
|
||||||
<input
|
<input
|
||||||
v-model="plan.features.member.per_unit"
|
v-model="plan.features.member.per_unit"
|
||||||
:placeholder="$t('Type the price per 1 member...')"
|
:placeholder="$t('type_member_price')"
|
||||||
type="number"
|
type="number"
|
||||||
step="0.01"
|
step="0.01"
|
||||||
min="0.01"
|
min="0.01"
|
||||||
@@ -162,8 +162,8 @@
|
|||||||
<!--Flat Fee-->
|
<!--Flat Fee-->
|
||||||
<div>
|
<div>
|
||||||
<AppInputSwitch
|
<AppInputSwitch
|
||||||
:title="$t('Flat Fee per Cycle')"
|
:title="$t('flat_fee_unit_gb')"
|
||||||
:description="$t('Charge monthly flat fee.')"
|
:description="$t('flat_fee_unit_gb_note')"
|
||||||
:is-last="!plan.features.flatFee.active"
|
:is-last="!plan.features.flatFee.active"
|
||||||
>
|
>
|
||||||
<SwitchInput
|
<SwitchInput
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
<AppInputText class="w-full" :is-last="true">
|
<AppInputText class="w-full" :is-last="true">
|
||||||
<input
|
<input
|
||||||
v-model="plan.features.flatFee.per_unit"
|
v-model="plan.features.flatFee.per_unit"
|
||||||
:placeholder="$t('Type the price...')"
|
:placeholder="$t('type_flat_fee_price')"
|
||||||
type="number"
|
type="number"
|
||||||
step="0.01"
|
step="0.01"
|
||||||
min="0.01"
|
min="0.01"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
<router-view v-if="!isLoading" :plan="plan" />
|
<router-view v-if="!isLoading" :plan="plan" />
|
||||||
|
|
||||||
<div id="loader" v-if="isLoading">
|
<div id="loader" v-if="isLoading">
|
||||||
<Spinner></Spinner>
|
<Spinner />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{{ plan.attributes.name }}
|
{{ plan.attributes.name }}
|
||||||
</h1>
|
</h1>
|
||||||
<small class="text-xs font-bold dark:text-gray-500 text-gray-500 sm:text-sm">
|
<small class="text-xs font-bold dark:text-gray-500 text-gray-500 sm:text-sm">
|
||||||
{{ $t('30 Days intervals') }}
|
{{ $t('x_days_intervals') }}
|
||||||
</small>
|
</small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Details') }}
|
{{ $t('details') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Visible-->
|
<!--Visible-->
|
||||||
@@ -57,7 +57,7 @@
|
|||||||
<p>
|
<p>
|
||||||
{{
|
{{
|
||||||
$t(
|
$t(
|
||||||
'Price change is not possible. If you would like to change your price or currency, please feel free to create a new plan.'
|
'price_change_not_possible_create_new'
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</p>
|
</p>
|
||||||
@@ -65,7 +65,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Features') }}
|
{{ $t('features') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Storage Capacity-->
|
<!--Storage Capacity-->
|
||||||
@@ -91,7 +91,7 @@
|
|||||||
</AppInputText>
|
</AppInputText>
|
||||||
|
|
||||||
<!--Team Members-->
|
<!--Team Members-->
|
||||||
<AppInputText :title="$t('Max Team Members')" :description="$t('Type -1 to set unlimited team members.')" is-last="true">
|
<AppInputText :title="$t('max_team_members')" :description="$t('zero_for_unlimited_members')" is-last="true">
|
||||||
<input
|
<input
|
||||||
@input="
|
@input="
|
||||||
$updateInput(
|
$updateInput(
|
||||||
@@ -101,7 +101,7 @@
|
|||||||
)
|
)
|
||||||
"
|
"
|
||||||
v-model="plan.attributes.features.max_team_members"
|
v-model="plan.attributes.features.max_team_members"
|
||||||
:placeholder="$t('Add max team members in number')"
|
:placeholder="$t('add_max_team_members')"
|
||||||
type="number"
|
type="number"
|
||||||
min="1"
|
min="1"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div>
|
<div>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Details') }}
|
{{ $t('details') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Name-->
|
<!--Name-->
|
||||||
@@ -36,14 +36,14 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Charged Features') }}
|
{{ $t('charged_features') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<!--Bandwidth-->
|
<!--Bandwidth-->
|
||||||
<AppInputText
|
<AppInputText
|
||||||
v-if="plan.attributes.features.bandwidth"
|
v-if="plan.attributes.features.bandwidth"
|
||||||
:title="$t('Bandwidth Price per 1GB')"
|
:title="$t('bandwidth_per_gb')"
|
||||||
:description="$t('Charge your user by the amount of data he upload or download.')"
|
:description="$t('bandwidth_per_gb_note')"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
@@ -59,8 +59,8 @@
|
|||||||
<!--Storage-->
|
<!--Storage-->
|
||||||
<AppInputText
|
<AppInputText
|
||||||
v-if="plan.attributes.features.storage"
|
v-if="plan.attributes.features.storage"
|
||||||
:title="$t('Storage Price per 1GB')"
|
:title="$t('storage_per_gb')"
|
||||||
:description="$t('Charge your user by the amount of data he has stored on the disk per 1GB.')"
|
:description="$t('storage_per_gb_note')"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
@@ -76,8 +76,8 @@
|
|||||||
<!--Member-->
|
<!--Member-->
|
||||||
<AppInputText
|
<AppInputText
|
||||||
v-if="plan.attributes.features.member"
|
v-if="plan.attributes.features.member"
|
||||||
:title="$t('Price per 1 Member')"
|
:title="$t('member_per_unit')"
|
||||||
:description="$t('Charge your user by the total members he use in his Team Folders.')"
|
:description="$t('member_per_unit_note')"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
@@ -91,8 +91,8 @@
|
|||||||
<!--Flat Fee-->
|
<!--Flat Fee-->
|
||||||
<AppInputText
|
<AppInputText
|
||||||
v-if="plan.attributes.features.flatFee"
|
v-if="plan.attributes.features.flatFee"
|
||||||
:title="$t('Flat Fee per Cycle')"
|
:title="$t('flat_fee_unit_gb')"
|
||||||
:description="$t('Charge monthly flat fee.')"
|
:description="$t('flat_fee_unit_gb_note')"
|
||||||
class="w-full"
|
class="w-full"
|
||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
@@ -109,7 +109,7 @@
|
|||||||
<p>
|
<p>
|
||||||
{{
|
{{
|
||||||
$t(
|
$t(
|
||||||
'Price change is not possible. If you would like to change your price or currency, please feel free to create a new plan.'
|
'price_change_not_possible_create_new'
|
||||||
)
|
)
|
||||||
}}
|
}}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getSubscriptionStatusColor(row.data.attributes.status)">
|
<ColorLabel :color="$getSubscriptionStatusColor(row.data.attributes.status)">
|
||||||
{{ row.data.attributes.status }}
|
{{ $t(row.data.attributes.status) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -160,12 +160,12 @@ export default {
|
|||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Renews At'),
|
label: this.$t('renews_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Service'),
|
label: this.$t('service'),
|
||||||
field: 'driver',
|
field: 'driver',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
@@ -177,27 +177,27 @@ export default {
|
|||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Status'),
|
label: this.$t('status'),
|
||||||
field: 'status',
|
field: 'status',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Note'),
|
label: this.$t('note'),
|
||||||
field: 'plan.name',
|
field: 'plan.name',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Renews At'),
|
label: this.$t('renews_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Ends At'),
|
label: this.$t('ends_at'),
|
||||||
field: 'ends_at',
|
field: 'ends_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Service'),
|
label: this.$t('service'),
|
||||||
field: 'driver',
|
field: 'driver',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -38,7 +38,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getSubscriptionStatusColor(row.data.attributes.status)">
|
<ColorLabel :color="$getSubscriptionStatusColor(row.data.attributes.status)">
|
||||||
{{ row.data.attributes.status }}
|
{{ $t(row.data.attributes.status) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -87,11 +87,11 @@
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<h1 class="mb-1 text-2xl font-bold">
|
<h1 class="mb-1 text-2xl font-bold">
|
||||||
{{ $t('There is Nothing') }}
|
{{ $t('there_is_nothing') }}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
<p class="text-sm text-gray-600">
|
<p class="text-sm text-gray-600">
|
||||||
{{ $t('All your subscriptions will be visible here') }}
|
{{ $t('all_visible_subscriptions_here') }}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -124,27 +124,27 @@ export default {
|
|||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Status'),
|
label: this.$t('status'),
|
||||||
field: 'status',
|
field: 'status',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Note'),
|
label: this.$t('note'),
|
||||||
field: 'plan.name',
|
field: 'plan.name',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Renews At'),
|
label: this.$t('renews_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Ends At'),
|
label: this.$t('ends_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Service'),
|
label: this.$t('service'),
|
||||||
field: 'driver.driver',
|
field: 'driver.driver',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<MobileActionButton @click.native="$openSpotlight('users')" icon="search">
|
<MobileActionButton @click.native="$openSpotlight('users')" icon="search">
|
||||||
{{ $t('Search') }}
|
{{ $t('search') }}
|
||||||
</MobileActionButton>
|
</MobileActionButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||||
{{ row.data.attributes.role }}
|
{{ $t(row.data.attributes.role) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||||
{{ row.data.attributes.role }}
|
{{ $t(row.data.attributes.role) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -217,7 +217,7 @@
|
|||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
<ColorLabel :color="$getUserRoleColor(row.data.attributes.role)">
|
||||||
{{ row.data.attributes.role }}
|
{{ $t(row.data.attributes.role) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</td>
|
</td>
|
||||||
<td class="px-3 md:px-1">
|
<td class="px-3 md:px-1">
|
||||||
@@ -318,11 +318,11 @@ export default {
|
|||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Billing Est.'),
|
label: this.$t('billing_est.'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('admin_page_user.table.created_at'),
|
label: this.$t('created_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
@@ -343,7 +343,7 @@ export default {
|
|||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Account'),
|
label: this.$t('account'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -351,12 +351,12 @@ export default {
|
|||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Max Storage'),
|
label: this.$t('max_storage'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
hidden: !this.config.storageLimit,
|
hidden: !this.config.storageLimit,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('admin_page_user.table.created_at'),
|
label: this.$t('created_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
@@ -381,12 +381,12 @@ export default {
|
|||||||
sortable: false,
|
sortable: false,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('Max Storage'),
|
label: this.$t('max_storage'),
|
||||||
sortable: false,
|
sortable: false,
|
||||||
hidden: !this.config.storageLimit,
|
hidden: !this.config.storageLimit,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: this.$t('admin_page_user.table.created_at'),
|
label: this.$t('created_at'),
|
||||||
field: 'created_at',
|
field: 'created_at',
|
||||||
sortable: true,
|
sortable: true,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
{{ user.data.relationships.settings.data.attributes.last_name }}
|
{{ user.data.relationships.settings.data.attributes.last_name }}
|
||||||
|
|
||||||
<ColorLabel color="purple">
|
<ColorLabel color="purple">
|
||||||
{{ user.data.attributes.role }}
|
{{ $t(user.data.attributes.role) }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</b>
|
</b>
|
||||||
<small class="block text-xs text-gray-600 sm:text-sm">
|
<small class="block text-xs text-gray-600 sm:text-sm">
|
||||||
@@ -84,7 +84,7 @@ export default {
|
|||||||
route: 'UserDetail',
|
route: 'UserDetail',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Storage'),
|
title: this.$t('storage'),
|
||||||
route: 'UserStorage',
|
route: 'UserStorage',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -92,7 +92,7 @@ export default {
|
|||||||
route: 'UserPassword',
|
route: 'UserPassword',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Delete Account'),
|
title: this.$t('delete_account'),
|
||||||
route: 'UserDelete',
|
route: 'UserDelete',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
@@ -104,11 +104,11 @@ export default {
|
|||||||
route: 'UserDetail',
|
route: 'UserDetail',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Storage'),
|
title: this.$t('storage'),
|
||||||
route: 'UserStorage',
|
route: 'UserStorage',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Billing'),
|
title: this.$t('billing'),
|
||||||
route: 'UserSubscription',
|
route: 'UserSubscription',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -116,7 +116,7 @@ export default {
|
|||||||
route: 'UserPassword',
|
route: 'UserPassword',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: this.$t('Delete Account'),
|
title: this.$t('delete_account'),
|
||||||
route: 'UserDelete',
|
route: 'UserDelete',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -83,7 +83,7 @@
|
|||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
v-model="user.password_confirmation"
|
v-model="user.password_confirmation"
|
||||||
:placeholder="$t('admin_page_user.create_user.label_conf_pass')"
|
:placeholder="$t('confirm_password')"
|
||||||
type="password"
|
type="password"
|
||||||
class="focus-border-theme input-dark"
|
class="focus-border-theme input-dark"
|
||||||
:class="{ '!border-rose-600': errors[0] }"
|
:class="{ '!border-rose-600': errors[0] }"
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
<!--Name-->
|
<!--Name-->
|
||||||
<div class="justify-items md:flex md:space-x-4">
|
<div class="justify-items md:flex md:space-x-4">
|
||||||
<AppInputText :title="$t('First Name')" class="w-full">
|
<AppInputText :title="$t('first_name')" class="w-full">
|
||||||
<input
|
<input
|
||||||
disabled
|
disabled
|
||||||
:value="user.data.relationships.settings.data.attributes.first_name"
|
:value="user.data.relationships.settings.data.attributes.first_name"
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
class="focus-border-theme input-dark disabled:text-gray-900 disabled:opacity-100"
|
class="focus-border-theme input-dark disabled:text-gray-900 disabled:opacity-100"
|
||||||
/>
|
/>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
<AppInputText :title="$t('Last Name')" class="w-full">
|
<AppInputText :title="$t('last_name')" class="w-full">
|
||||||
<input
|
<input
|
||||||
disabled
|
disabled
|
||||||
:value="user.data.relationships.settings.data.attributes.last_name"
|
:value="user.data.relationships.settings.data.attributes.last_name"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Subscription') }}
|
{{ $t('subscription') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-xl font-extrabold sm:text-3xl">
|
||||||
@@ -36,14 +36,14 @@ export default {
|
|||||||
computed: {
|
computed: {
|
||||||
status() {
|
status() {
|
||||||
return {
|
return {
|
||||||
active: `Active until ${this.subscription.attributes.renews_at}`,
|
active: this.$t('active_until', {date: this.subscription.attributes.renews_at}),
|
||||||
cancelled: `Active until ${this.subscription.attributes.ends_at}`,
|
cancelled: this.$t('ends_at_date', {date: this.subscription.attributes.ends_at}),
|
||||||
}[this.subscription.attributes.status]
|
}[this.subscription.attributes.status]
|
||||||
},
|
},
|
||||||
price() {
|
price() {
|
||||||
return {
|
return {
|
||||||
month: `${this.subscription.relationships.plan.data.attributes.price} Per Month`,
|
month: this.$t('price_per_month', {price: this.subscription.relationships.plan.data.attributes.price}),
|
||||||
year: `${this.subscription.relationships.plan.data.attributes.price} Per Year`,
|
year: this.$t('price_per_year', {price: this.subscription.relationships.plan.data.attributes.price}),
|
||||||
}[this.subscription.relationships.plan.data.attributes.interval]
|
}[this.subscription.relationships.plan.data.attributes.interval]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -60,12 +60,12 @@ export default {
|
|||||||
max_team_members: 'purple',
|
max_team_members: 'purple',
|
||||||
},
|
},
|
||||||
message: {
|
message: {
|
||||||
max_storage_amount: `Total ${item.use} of ${item.total} Used`,
|
max_storage_amount: this.$t('total_x_of_x_used', {use: item.use, total:item.total }),
|
||||||
max_team_members: `Total ${item.use} of ${item.total} Members`,
|
max_team_members: this.$t('total_x_of_x_members', {use: item.use, total:item.total }),
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
max_storage_amount: `Storage`,
|
max_storage_amount: this.$t('storage'),
|
||||||
max_team_members: `Team Members`,
|
max_team_members: this.$t('team_members'),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!--Balance-->
|
<!--Balance-->
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Balance') }}
|
{{ $t('balance') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -19,14 +19,14 @@
|
|||||||
>
|
>
|
||||||
<ValidationProvider tag="div" v-slot="{ errors }" mode="passive" name="Balance Amount" rules="required">
|
<ValidationProvider tag="div" v-slot="{ errors }" mode="passive" name="Balance Amount" rules="required">
|
||||||
<AppInputText
|
<AppInputText
|
||||||
:description="$t('User balance will be increased for the amount above.')"
|
:description="$t('balance_will_be_increased')"
|
||||||
:error="errors[0]"
|
:error="errors[0]"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
<div class="space-y-4 sm:flex sm:space-x-4 sm:space-y-0">
|
||||||
<input
|
<input
|
||||||
v-model="balanceAmount"
|
v-model="balanceAmount"
|
||||||
:placeholder="$t('Increase user balance for...')"
|
:placeholder="$t('increase_for')"
|
||||||
type="number"
|
type="number"
|
||||||
min="1"
|
min="1"
|
||||||
max="999999999"
|
max="999999999"
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
:loading="isUpdatingBalanceAmount"
|
:loading="isUpdatingBalanceAmount"
|
||||||
:disabled="isUpdatingBalanceAmount"
|
:disabled="isUpdatingBalanceAmount"
|
||||||
>
|
>
|
||||||
{{ $t('Increase Balance') }}
|
{{ $t('increase_balance') }}
|
||||||
</ButtonBase>
|
</ButtonBase>
|
||||||
</div>
|
</div>
|
||||||
</AppInputText>
|
</AppInputText>
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
<!--Usage Estimates-->
|
<!--Usage Estimates-->
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Usage Estimates') }}
|
{{ $t('usage_estimates') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
|
|
||||||
<b class="mb-3 mb-5 block text-sm text-gray-400">
|
<b class="mb-3 mb-5 block text-sm text-gray-400">
|
||||||
{{ user.data.relationships.subscription.data.attributes.updated_at }}
|
{{ user.data.relationships.subscription.data.attributes.updated_at }}
|
||||||
{{ $t('till now') }}
|
{{ $t('till_now') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@@ -142,7 +142,7 @@ export default {
|
|||||||
|
|
||||||
events.$emit('toaster', {
|
events.$emit('toaster', {
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: this.$t('User balance was successfully increased'),
|
message: this.$t('balance_was_increased'),
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<AppInputText
|
<AppInputText
|
||||||
:title="$t('Reset User Password')"
|
:title="$t('reset_user_password')"
|
||||||
:description="$t('user_box_password.description')"
|
:description="$t('user_box_password.description')"
|
||||||
:is-last="true"
|
:is-last="true"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
<!--Storage Usage-->
|
<!--Storage Usage-->
|
||||||
<div v-if="distribution" class="card shadow-card">
|
<div v-if="distribution" class="card shadow-card">
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Storage Usage') }}
|
{{ $t('storage_usage') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -16,8 +16,8 @@
|
|||||||
"
|
"
|
||||||
class="mt-0.5 block text-sm dark:text-gray-500 text-gray-400"
|
class="mt-0.5 block text-sm dark:text-gray-500 text-gray-400"
|
||||||
>
|
>
|
||||||
{{ $t('Total of') }} {{ storage.data.attributes.capacity }}
|
{{ $t('total_of', {capacity: storage.data.attributes.capacity}) }}
|
||||||
{{ $t('Used') }}
|
{{ $t('used') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<ProgressLine v-if="storage.data.attributes.used !== '0B'" :data="distribution" class="mt-5" />
|
<ProgressLine v-if="storage.data.attributes.used !== '0B'" :data="distribution" class="mt-5" />
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
<!--Upload-->
|
<!--Upload-->
|
||||||
<div v-if="distribution" class="card shadow-card">
|
<div v-if="distribution" class="card shadow-card">
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Upload') }}
|
{{ $t('upload') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -34,7 +34,7 @@
|
|||||||
</b>
|
</b>
|
||||||
|
|
||||||
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
||||||
{{ $t('In last 45 days') }}
|
{{ $t('in_last_x_days') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<BarChart :data="storage.data.meta.traffic.chart.upload" color="#FFBD2D" />
|
<BarChart :data="storage.data.meta.traffic.chart.upload" color="#FFBD2D" />
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<!--Download-->
|
<!--Download-->
|
||||||
<div v-if="distribution" class="card shadow-card">
|
<div v-if="distribution" class="card shadow-card">
|
||||||
<FormLabel icon="hard-drive">
|
<FormLabel icon="hard-drive">
|
||||||
{{ $t('Download') }}
|
{{ $t('download') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
@@ -51,7 +51,7 @@
|
|||||||
</b>
|
</b>
|
||||||
|
|
||||||
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
<b class="mb-3 mb-5 block text-sm dark:text-gray-500 text-gray-400">
|
||||||
{{ $t('In last 45 days') }}
|
{{ $t('in_last_x_days') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<BarChart :data="storage.data.meta.traffic.chart.download" color="#9d66fe" />
|
<BarChart :data="storage.data.meta.traffic.chart.download" color="#9d66fe" />
|
||||||
|
|||||||
@@ -15,22 +15,22 @@
|
|||||||
<!--Free Plan-->
|
<!--Free Plan-->
|
||||||
<div v-if="!subscription && config.subscriptionType === 'fixed'" class="card shadow-card">
|
<div v-if="!subscription && config.subscriptionType === 'fixed'" class="card shadow-card">
|
||||||
<FormLabel>
|
<FormLabel>
|
||||||
{{ $t('Subscription') }}
|
{{ $t('subscription') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
<b class="-mt-3 mb-0.5 block text-2xl font-extrabold sm:text-3xl">
|
||||||
{{ $t('Free Plan') }}
|
{{ $t('free_plan') }}
|
||||||
</b>
|
</b>
|
||||||
|
|
||||||
<b class="block text-sm text-gray-400">
|
<b class="block text-sm text-gray-400">
|
||||||
{{ $t('1GB Free storage space with 5 Team members') }}
|
{{ $t('free_plan_parameters', {storage: config.storageDefaultSpaceFormatted, members: config.teamsDefaultMembers}) }}
|
||||||
</b>
|
</b>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Transactions-->
|
<!--Transactions-->
|
||||||
<div class="card shadow-card">
|
<div class="card shadow-card">
|
||||||
<FormLabel icon="file-text">
|
<FormLabel icon="file-text">
|
||||||
{{ $t('Transactions') }}
|
{{ $t('transactions') }}
|
||||||
</FormLabel>
|
</FormLabel>
|
||||||
|
|
||||||
<DatatableWrapper
|
<DatatableWrapper
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
<template v-slot:empty-page>
|
<template v-slot:empty-page>
|
||||||
<InfoBox style="margin-bottom: 0">
|
<InfoBox style="margin-bottom: 0">
|
||||||
<p>
|
<p>
|
||||||
{{ $t("User doesn't have any transactions yet.") }}
|
{{ $t("user_dont_have_transactions") }}
|
||||||
</p>
|
</p>
|
||||||
</InfoBox>
|
</InfoBox>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
<div class="mb-auto">
|
<div class="mb-auto">
|
||||||
<!--Locations-->
|
<!--Locations-->
|
||||||
<ContentGroup :title="$t('Base')">
|
<ContentGroup :title="$t('base')">
|
||||||
<b
|
<b
|
||||||
@click="goHome"
|
@click="goHome"
|
||||||
class="flex cursor-pointer items-center py-2.5"
|
class="flex cursor-pointer items-center py-2.5"
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
>
|
>
|
||||||
<home-icon size="17" class="vue-feather icon-active mr-2.5" />
|
<home-icon size="17" class="vue-feather icon-active mr-2.5" />
|
||||||
<small class="text-active text-xs font-bold">
|
<small class="text-active text-xs font-bold">
|
||||||
{{ $t('Home') }}
|
{{ $t('home') }}
|
||||||
</small>
|
</small>
|
||||||
</b>
|
</b>
|
||||||
</ContentGroup>
|
</ContentGroup>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user