mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-05-13 08:45:01 +00:00
- upgrade service to 1.8.1 from 1.8
- Landing page for Regular Licenses - Legal pages for Regular Licenses
This commit is contained in:
@@ -466,10 +466,8 @@ class SetupWizardController extends Controller
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
// Create legal pages and index content
|
// Create legal pages and index content
|
||||||
if ($request->license === 'Extended') {
|
|
||||||
|
|
||||||
$pages = collect(config('content.pages'));
|
$pages = collect(config('content.pages'));
|
||||||
$content = collect(config('content.content'));
|
$content = $request->license === 'Extended' ? collect(config('content.content_extended')) : collect(config('content.content_regular'));
|
||||||
|
|
||||||
$content->each(function ($content) {
|
$content->each(function ($content) {
|
||||||
Setting::updateOrCreate($content);
|
Setting::updateOrCreate($content);
|
||||||
@@ -478,7 +476,6 @@ class SetupWizardController extends Controller
|
|||||||
$pages->each(function ($page) {
|
$pages->each(function ($page) {
|
||||||
Page::updateOrCreate($page);
|
Page::updateOrCreate($page);
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
// Retrieve access token
|
// Retrieve access token
|
||||||
$response = Route::dispatch(self::make_login_request($request));
|
$response = Route::dispatch(self::make_login_request($request));
|
||||||
|
|||||||
@@ -11,119 +11,6 @@ use Schema;
|
|||||||
|
|
||||||
class UpgradeAppController extends Controller
|
class UpgradeAppController extends Controller
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Upgrade account from 1.6 to 1.7
|
|
||||||
*
|
|
||||||
* @param Request $request
|
|
||||||
* @return \Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response
|
|
||||||
*/
|
|
||||||
public function upgrade(Request $request)
|
|
||||||
{
|
|
||||||
$upgraded = Setting::where('name', 'latest_upgrade')->first();
|
|
||||||
|
|
||||||
if ($upgraded && $upgraded->value === '1.7') abort(401);
|
|
||||||
|
|
||||||
// Create legal pages and index content
|
|
||||||
if ($request->license === 'Extended') {
|
|
||||||
|
|
||||||
$pages = collect(config('content.pages'));
|
|
||||||
$content = collect(config('content.content'));
|
|
||||||
|
|
||||||
$content->each(function ($content) {
|
|
||||||
Setting::updateOrCreate($content);
|
|
||||||
});
|
|
||||||
|
|
||||||
$pages->each(function ($page) {
|
|
||||||
Page::updateOrCreate($page);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store Logo
|
|
||||||
if ($request->hasFile('logo')) {
|
|
||||||
$logo = store_system_image($request->file('logo'), 'system');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store Logo horizontal
|
|
||||||
if ($request->hasFile('logo_horizontal')) {
|
|
||||||
$logo_horizontal = store_system_image($request->file('logo_horizontal'), 'system');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Store favicon
|
|
||||||
if ($request->hasFile('favicon')) {
|
|
||||||
$favicon = store_system_image($request->file('favicon'), 'system');
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get options
|
|
||||||
$settings = collect([
|
|
||||||
[
|
|
||||||
'name' => 'setup_wizard_database',
|
|
||||||
'value' => 1,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'setup_wizard_success',
|
|
||||||
'value' => 1,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'license',
|
|
||||||
'value' => $request->license,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'purchase_code',
|
|
||||||
'value' => $request->purchase_code,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'app_title',
|
|
||||||
'value' => $request->title,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'app_description',
|
|
||||||
'value' => $request->description,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'app_logo',
|
|
||||||
'value' => $request->hasFile('logo') ? $logo : null,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'app_logo_horizontal',
|
|
||||||
'value' => $request->hasFile('logo_horizontal') ? $logo_horizontal : null,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'app_favicon',
|
|
||||||
'value' => $request->hasFile('favicon') ? $favicon : null,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'google_analytics',
|
|
||||||
'value' => $request->googleAnalytics,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'contact_email',
|
|
||||||
'value' => $request->contactMail,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'registration',
|
|
||||||
'value' => $request->userRegistration,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'storage_limitation',
|
|
||||||
'value' => $request->storageLimitation,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'storage_default',
|
|
||||||
'value' => $request->defaultStorage ? $request->defaultStorage : 5,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'name' => 'latest_upgrade',
|
|
||||||
'value' => '1.7',
|
|
||||||
],
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Store options
|
|
||||||
$settings->each(function ($col) {
|
|
||||||
Setting::updateOrCreate(['name' => $col['name']], $col);
|
|
||||||
});
|
|
||||||
|
|
||||||
return response('Done', 200);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start maintenance mode
|
* Start maintenance mode
|
||||||
@@ -150,8 +37,33 @@ class UpgradeAppController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Upgrade database
|
* Upgrade database
|
||||||
*/
|
*/
|
||||||
public function upgrade_database()
|
public function upgrade()
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* Upgrade user_settings & file_manager_folders table
|
||||||
|
*
|
||||||
|
* @since v1.8.1
|
||||||
|
*/
|
||||||
|
if (! Schema::hasColumn('user_settings', 'timezone') && ! Schema::hasColumn('file_manager_folders', 'icon_color')) {
|
||||||
|
|
||||||
|
$this->upgrade_database();
|
||||||
|
|
||||||
|
// Create legal pages and index content for regular license
|
||||||
|
if (get_setting('license') === 'Regular') {
|
||||||
|
|
||||||
|
$pages = collect(config('content.pages'));
|
||||||
|
$content = collect(config('content.content_regular'));
|
||||||
|
|
||||||
|
$content->each(function ($content) {
|
||||||
|
Setting::updateOrCreate($content);
|
||||||
|
});
|
||||||
|
|
||||||
|
$pages->each(function ($page) {
|
||||||
|
Page::updateOrCreate($page);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Upgrade expire_in in shares table
|
* Upgrade expire_in in shares table
|
||||||
*
|
*
|
||||||
@@ -159,17 +71,16 @@ class UpgradeAppController extends Controller
|
|||||||
*/
|
*/
|
||||||
if (! Schema::hasTable('traffic') && ! Schema::hasTable('zips') && ! Schema::hasTable('jobs')) {
|
if (! Schema::hasTable('traffic') && ! Schema::hasTable('zips') && ! Schema::hasTable('jobs')) {
|
||||||
|
|
||||||
$command = Artisan::call('migrate', [
|
$this->upgrade_database();
|
||||||
'--force' => true
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($command === 0) {
|
|
||||||
echo 'Operation was successful.';
|
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* Upgrade expire_in in shares table
|
||||||
|
*
|
||||||
|
* @since v1.8
|
||||||
|
*/
|
||||||
|
if (! Schema::hasTable('traffic') && ! Schema::hasTable('zips') && ! Schema::hasTable('jobs')) {
|
||||||
|
|
||||||
if ($command === 1) {
|
$this->upgrade_database();
|
||||||
echo 'Operation failed.';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -179,17 +90,7 @@ class UpgradeAppController extends Controller
|
|||||||
*/
|
*/
|
||||||
if (! Schema::hasColumn('shares', 'expire_in')) {
|
if (! Schema::hasColumn('shares', 'expire_in')) {
|
||||||
|
|
||||||
$command = Artisan::call('migrate', [
|
$this->upgrade_database();
|
||||||
'--force' => true
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($command === 0) {
|
|
||||||
echo 'Operation was successful.';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($command === 1) {
|
|
||||||
echo 'Operation failed.';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -199,6 +100,15 @@ class UpgradeAppController extends Controller
|
|||||||
*/
|
*/
|
||||||
if (! Schema::hasColumn('file_manager_files', 'metadata')) {
|
if (! Schema::hasColumn('file_manager_files', 'metadata')) {
|
||||||
|
|
||||||
|
$this->upgrade_database();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int|mixed
|
||||||
|
*/
|
||||||
|
private function upgrade_database()
|
||||||
|
{
|
||||||
$command = Artisan::call('migrate', [
|
$command = Artisan::call('migrate', [
|
||||||
'--force' => true
|
'--force' => true
|
||||||
]);
|
]);
|
||||||
@@ -210,6 +120,6 @@ class UpgradeAppController extends Controller
|
|||||||
if ($command === 1) {
|
if ($command === 1) {
|
||||||
echo 'Operation failed.';
|
echo 'Operation failed.';
|
||||||
}
|
}
|
||||||
}
|
return $command;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,14 +44,14 @@ class Editor
|
|||||||
|
|
||||||
// If request have emoji set folder icon emoji
|
// If request have emoji set folder icon emoji
|
||||||
if(isset($folder_icon['emoji'])) {
|
if(isset($folder_icon['emoji'])) {
|
||||||
$folder->folder_icon_emoji = $folder_icon['emoji'];
|
$folder->icon_emoji = $folder_icon['emoji'];
|
||||||
$folder->folder_icon_color = null;
|
$folder->icon_color = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If request have color set folder icon color
|
// If request have color set folder icon color
|
||||||
if(isset($folder_icon['color'])) {
|
if(isset($folder_icon['color'])) {
|
||||||
$folder->folder_icon_emoji = null;
|
$folder->icon_emoji = null;
|
||||||
$folder->folder_icon_color = $folder_icon['color'];
|
$folder->icon_color = $folder_icon['color'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save changes
|
// Save changes
|
||||||
|
|||||||
+68
-2
@@ -21,7 +21,73 @@ return [
|
|||||||
'content' => 'Metus penatibus ligula dolor natoque non habitasse laoreet facilisis, libero vivamus eget semper vulputate interdum integer, phasellus lorem enim blandit consectetur nullam sollicitudin. Hendrerit interdum luctus ut in molestie himenaeos eros cum laoreet parturient est, eu lectus hac et netus viverra dictumst congue elit sem senectus litora, fames scelerisque adipiscing inceptos fringilla montes sociosqu suscipit auctor potenti. Elementum lacus vulputate viverra ac morbi ligula ipsum facilisi, sit eu imperdiet lacinia congue dis vitae.',
|
'content' => 'Metus penatibus ligula dolor natoque non habitasse laoreet facilisis, libero vivamus eget semper vulputate interdum integer, phasellus lorem enim blandit consectetur nullam sollicitudin. Hendrerit interdum luctus ut in molestie himenaeos eros cum laoreet parturient est, eu lectus hac et netus viverra dictumst congue elit sem senectus litora, fames scelerisque adipiscing inceptos fringilla montes sociosqu suscipit auctor potenti. Elementum lacus vulputate viverra ac morbi ligula ipsum facilisi, sit eu imperdiet lacinia congue dis vitae.',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
'content' => [
|
'content_regular' => [
|
||||||
|
[
|
||||||
|
'name' => 'section_features',
|
||||||
|
'value' => '1',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'section_feature_boxes',
|
||||||
|
'value' => '1',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'section_get_started',
|
||||||
|
'value' => '1',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'header_title',
|
||||||
|
'value' => 'Simple <span style="color: #41B883">&</span> Powerful Personal Cloud Storage',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'header_description',
|
||||||
|
'value' => 'Your private cloud storage software build on Laravel & Vue.js. No limits & no monthly fees. Truly freedom.',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'features_title',
|
||||||
|
'value' => 'The Fastest Growing <span style="color: #41B883">File Manager</span> on the CodeCanyon Market',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'features_description',
|
||||||
|
'value' => 'Your private cloud storage software build on Laravel & Vue.js. No limits & no monthly fees. Truly freedom.',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'feature_title_1',
|
||||||
|
'value' => 'Truly Freedom',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'feature_description_1',
|
||||||
|
'value' => 'You have full control over VueFileManager, no third authorities will control your service or usage, only you.',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'feature_title_2',
|
||||||
|
'value' => 'The Sky is the Limit',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'feature_description_2',
|
||||||
|
'value' => 'VueFileManager is cloud storage software. You have to install and running application on your own server hosting.',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'feature_title_3',
|
||||||
|
'value' => 'No Monthly Fees',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'feature_description_3',
|
||||||
|
'value' => 'When you running VueFileManager on your own server hosting, anybody can\'t control your content or resell your user data. Your data is safe.',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'get_started_title',
|
||||||
|
'value' => 'Ready to Get <span style="color: #41B883">Started</span><br> With Us?',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'get_started_description',
|
||||||
|
'value' => 'Your private cloud storage software build on Laravel & Vue.js. No limits & no monthly fees. Truly freedom.',
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'name' => 'footer_content',
|
||||||
|
'value' => '© 2021 Simple & Powerful Personal Cloud Storage. Developed by <a href="https://hi5ve.digital" target="_blank">Hi5Ve.Digital</a>',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'content_extended' => [
|
||||||
[
|
[
|
||||||
'name' => 'section_features',
|
'name' => 'section_features',
|
||||||
'value' => '1',
|
'value' => '1',
|
||||||
@@ -96,7 +162,7 @@ return [
|
|||||||
],
|
],
|
||||||
[
|
[
|
||||||
'name' => 'footer_content',
|
'name' => 'footer_content',
|
||||||
'value' => '© 2020 Simple & Powerful Personal Cloud Storage. Developed by <a href="https://hi5ve.digital" target="_blank">Hi5Ve.Digital</a>',
|
'value' => '© 2021 Simple & Powerful Personal Cloud Storage. Developed by <a href="https://hi5ve.digital" target="_blank">Hi5Ve.Digital</a>',
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
+2
-2
@@ -14,8 +14,8 @@ class AddFolderIconOptionsToFileManagerFoldersTable extends Migration
|
|||||||
public function up()
|
public function up()
|
||||||
{
|
{
|
||||||
Schema::table('file_manager_folders', function (Blueprint $table) {
|
Schema::table('file_manager_folders', function (Blueprint $table) {
|
||||||
$table->string('folder_icon_color')->after('user_scope')->nullable();
|
$table->string('icon_color')->after('user_scope')->nullable();
|
||||||
$table->string('folder_icon_emoji')->after('folder_icon_color')->nullable();
|
$table->string('icon_emoji')->after('icon_color')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -89,16 +89,16 @@ export default {
|
|||||||
folderIconHandle(){
|
folderIconHandle(){
|
||||||
|
|
||||||
// If folder have set some color
|
// If folder have set some color
|
||||||
if(this.data.folder_icon_color) {
|
if(this.data.icon_color) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs[`folder${this.data.unique_id}`].firstElementChild.style.fill = `${this.data.folder_icon_color}`
|
this.$refs[`folder${this.data.unique_id}`].firstElementChild.style.fill = `${this.data.icon_color}`
|
||||||
})
|
})
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// If folder have set some emoji
|
// If folder have set some emoji
|
||||||
if(this.data.folder_icon_emoji)
|
if(this.data.icon_emoji)
|
||||||
return JSON.parse(this.data.folder_icon_emoji).char
|
return JSON.parse(this.data.icon_emoji).char
|
||||||
|
|
||||||
},
|
},
|
||||||
...mapGetters({ allData: 'data' }),
|
...mapGetters({ allData: 'data' }),
|
||||||
|
|||||||
@@ -91,16 +91,16 @@ export default {
|
|||||||
folderIconHandle(){
|
folderIconHandle(){
|
||||||
|
|
||||||
// If folder have set some icon color
|
// If folder have set some icon color
|
||||||
if(this.data.folder_icon_color) {
|
if(this.data.icon_color) {
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs[`folder${this.data.unique_id}`].firstElementChild.style.fill = `${this.data.folder_icon_color}`
|
this.$refs[`folder${this.data.unique_id}`].firstElementChild.style.fill = `${this.data.icon_color}`
|
||||||
})
|
})
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// If folder have set some emoji
|
// If folder have set some emoji
|
||||||
if(this.data.folder_icon_emoji)
|
if(this.data.icon_emoji)
|
||||||
return JSON.parse(this.data.folder_icon_emoji).char
|
return JSON.parse(this.data.icon_emoji).char
|
||||||
|
|
||||||
},
|
},
|
||||||
isClicked() {
|
isClicked() {
|
||||||
|
|||||||
@@ -5,11 +5,17 @@
|
|||||||
:description="index.header_description"
|
:description="index.header_description"
|
||||||
></PageTitle>
|
></PageTitle>
|
||||||
|
|
||||||
<router-link class="sign-up-button" :to="{name: 'SignUp'}">
|
<!--User registration button-->
|
||||||
|
<router-link v-if="config.userRegistration" class="sign-up-button" :to="{name: 'SignUp'}">
|
||||||
<AuthButton class="button" icon="chevron-right" :text="$t('page_index.sign_up_button')" />
|
<AuthButton class="button" icon="chevron-right" :text="$t('page_index.sign_up_button')" />
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<div class="features">
|
<!--User login button-->
|
||||||
|
<router-link v-if="! config.userRegistration" class="sign-up-button" :to="{name: 'SignIn'}">
|
||||||
|
<AuthButton class="button" icon="chevron-right" :text="$t('page_index.menu.log_in')" />
|
||||||
|
</router-link>
|
||||||
|
|
||||||
|
<div class="features" v-if="config.isSaaS">
|
||||||
<div class="feature">
|
<div class="feature">
|
||||||
<credit-card-icon size="19" class="feature-icon"></credit-card-icon>
|
<credit-card-icon size="19" class="feature-icon"></credit-card-icon>
|
||||||
<b class="feature-title">{{ $t('page_index.sign_feature_1') }}</b>
|
<b class="feature-title">{{ $t('page_index.sign_feature_1') }}</b>
|
||||||
|
|||||||
@@ -50,6 +50,7 @@
|
|||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['currentFolder']),
|
...mapGetters(['currentFolder']),
|
||||||
|
|
||||||
|
// TODO: revision
|
||||||
folderIconHandle(){
|
folderIconHandle(){
|
||||||
let icon = undefined
|
let icon = undefined
|
||||||
|
|
||||||
@@ -67,14 +68,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If folder have already set some icon
|
// If folder have already set some icon
|
||||||
if(!this.setFolderIcon && (this.item.folder_icon_emoji || this.item.folder_icon_color)){
|
if(!this.setFolderIcon && (this.item.icon_emoji || this.item.icon_color)){
|
||||||
|
|
||||||
if(this.item.folder_icon_emoji !== null)
|
if(this.item.icon_emoji !== null)
|
||||||
icon = JSON.parse(this.item.folder_icon_emoji).char
|
icon = JSON.parse(this.item.icon_emoji).char
|
||||||
|
|
||||||
if(this.item.folder_icon_color !== null){
|
if(this.item.icon_color !== null){
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.folderIcon.firstElementChild.style.fill = `${this.item.folder_icon_color}`
|
this.$refs.folderIcon.firstElementChild.style.fill = `${this.item.icon_color}`
|
||||||
})
|
})
|
||||||
icon = false
|
icon = false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
"users": "Users"
|
"users": "Users"
|
||||||
},
|
},
|
||||||
"admin_page_dashboard": {
|
"admin_page_dashboard": {
|
||||||
"backer_button": "成为支持者",
|
"backer_button": "Help Us Improve",
|
||||||
"license": "执照",
|
"license": "执照",
|
||||||
"version": "版",
|
"version": "版",
|
||||||
"w_latest_users": {
|
"w_latest_users": {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
"users": "Users"
|
"users": "Users"
|
||||||
},
|
},
|
||||||
"admin_page_dashboard": {
|
"admin_page_dashboard": {
|
||||||
"backer_button": "Become a Backer",
|
"backer_button": "Help Us Improve",
|
||||||
"license": "License",
|
"license": "License",
|
||||||
"version": "Version",
|
"version": "Version",
|
||||||
"w_latest_users": {
|
"w_latest_users": {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
"users": "Uživatelia"
|
"users": "Uživatelia"
|
||||||
},
|
},
|
||||||
"admin_page_dashboard": {
|
"admin_page_dashboard": {
|
||||||
"backer_button": "Staňte sa podporovateľom",
|
"backer_button": "Pomôžte nám zlepšiť sa",
|
||||||
"license": "Licencia",
|
"license": "Licencia",
|
||||||
"version": "Verzia",
|
"version": "Verzia",
|
||||||
"w_latest_users": {
|
"w_latest_users": {
|
||||||
|
|||||||
+2
-2
@@ -236,8 +236,8 @@ const mutations = {
|
|||||||
state.data.find(item => {
|
state.data.find(item => {
|
||||||
if (item.unique_id == updatedFile.unique_id) {
|
if (item.unique_id == updatedFile.unique_id) {
|
||||||
item.name = updatedFile.name
|
item.name = updatedFile.name
|
||||||
item.folder_icon_color = updatedFile.folder_icon_color ? updatedFile.folder_icon_color : null
|
item.icon_color = updatedFile.icon_color ? updatedFile.icon_color : null
|
||||||
item.folder_icon_emoji = updatedFile.folder_icon_emoji ? updatedFile.folder_icon_emoji : null
|
item.icon_emoji = updatedFile.icon_emoji ? updatedFile.icon_emoji : null
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -30,6 +30,14 @@
|
|||||||
{{ $t('admin_menu.settings') }}
|
{{ $t('admin_menu.settings') }}
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
<router-link :to="{name: 'Pages'}" class="menu-list-item link">
|
||||||
|
<div class="icon">
|
||||||
|
<monitor-icon size="17"></monitor-icon>
|
||||||
|
</div>
|
||||||
|
<div class="label">
|
||||||
|
{{ $t('admin_menu.pages') }}
|
||||||
|
</div>
|
||||||
|
</router-link>
|
||||||
</div>
|
</div>
|
||||||
</ContentGroup>
|
</ContentGroup>
|
||||||
|
|
||||||
@@ -52,14 +60,6 @@
|
|||||||
{{ $t('admin_menu.invoices') }}
|
{{ $t('admin_menu.invoices') }}
|
||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
<router-link :to="{name: 'Pages'}" class="menu-list-item link">
|
|
||||||
<div class="icon">
|
|
||||||
<monitor-icon size="17"></monitor-icon>
|
|
||||||
</div>
|
|
||||||
<div class="label">
|
|
||||||
{{ $t('admin_menu.pages') }}
|
|
||||||
</div>
|
|
||||||
</router-link>
|
|
||||||
</div>
|
</div>
|
||||||
</ContentGroup>
|
</ContentGroup>
|
||||||
</ContentSidebar>
|
</ContentSidebar>
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<router-link v-if="config.isSaaS" replace :to="{name: 'AppIndex'}" class="menu-list-item link">
|
<router-link replace :to="{name: 'AppIndex'}" class="menu-list-item link">
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<home-icon size="17"></home-icon>
|
<home-icon size="17"></home-icon>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -162,7 +162,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--Pricing Content-->
|
<!--Pricing Content-->
|
||||||
<div>
|
<div v-if="config.isSaaS">
|
||||||
<FormLabel class="mt-70">Pricing Content</FormLabel>
|
<FormLabel class="mt-70">Pricing Content</FormLabel>
|
||||||
|
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
@@ -183,7 +183,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div v-if="section_pricing_content">
|
<div v-if="section_pricing_content">
|
||||||
<div class="block-wrapper">
|
<div class="block-wrapper">
|
||||||
<img src="/assets/images/admin/pricing-content.jpg" alt="Main Features" class="page-image">
|
<img src="/assets/images/admin/pricing-content.jpg" alt="Main Features" class="page-image">
|
||||||
@@ -290,6 +289,7 @@
|
|||||||
import InfoBox from '@/components/Others/Forms/InfoBox'
|
import InfoBox from '@/components/Others/Forms/InfoBox'
|
||||||
import {required} from 'vee-validate/dist/rules'
|
import {required} from 'vee-validate/dist/rules'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AppIndex',
|
name: 'AppIndex',
|
||||||
@@ -308,6 +308,9 @@
|
|||||||
PageTab,
|
PageTab,
|
||||||
InfoBox,
|
InfoBox,
|
||||||
},
|
},
|
||||||
|
computed: {
|
||||||
|
...mapGetters(['config']),
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isLoading: true,
|
isLoading: true,
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
{{ data.license }}
|
{{ data.license }}
|
||||||
</ColorLabel>
|
</ColorLabel>
|
||||||
</a>
|
</a>
|
||||||
<a v-if="! config.isDemo" href="https://vuefilemanager.com/become-a-backer" target="_blank" class="became-backer">
|
<a href="https://bit.ly/VueFileManager-survey" target="_blank" class="became-backer">
|
||||||
<div class="icon">
|
<div class="icon">
|
||||||
<credit-card-icon size="15"></credit-card-icon>
|
<credit-card-icon size="15"></credit-card-icon>
|
||||||
</div>
|
</div>
|
||||||
@@ -177,7 +177,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.became-backer {
|
.became-backer {
|
||||||
background: rgba($yellow, 0.1);
|
background: rgba($theme, 0.1);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
@@ -194,12 +194,12 @@
|
|||||||
line-height: 0;
|
line-height: 0;
|
||||||
|
|
||||||
rect, line {
|
rect, line {
|
||||||
stroke: $yellow;
|
stroke: $theme;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
color: $yellow;
|
color: $theme;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
@include font-size(14);
|
@include font-size(14);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -53,7 +53,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<i18n v-if="config.isSaaS" path="page_registration.agreement" tag="p" class="legal-agreement">
|
<i18n path="page_registration.agreement" tag="p" class="legal-agreement">
|
||||||
<router-link :to="{name: 'DynamicPage', params: {slug: 'terms-of-service'}}" target="_blank">{{ termsOfService.title }}</router-link>
|
<router-link :to="{name: 'DynamicPage', params: {slug: 'terms-of-service'}}" target="_blank">{{ termsOfService.title }}</router-link>
|
||||||
<router-link :to="{name: 'DynamicPage', params: {slug: 'privacy-policy'}}" target="_blank">{{ privacyPolicy.title }}</router-link>
|
<router-link :to="{name: 'DynamicPage', params: {slug: 'privacy-policy'}}" target="_blank">{{ privacyPolicy.title }}</router-link>
|
||||||
</i18n>
|
</i18n>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
<MainFeatures />
|
<MainFeatures />
|
||||||
|
|
||||||
<!--Pricing Tables-->
|
<!--Pricing Tables-->
|
||||||
<PricingTables />
|
<PricingTables v-if="config.isSaaS" />
|
||||||
|
|
||||||
<!--Get Started Call To Action-->
|
<!--Get Started Call To Action-->
|
||||||
<GetStarted />
|
<GetStarted />
|
||||||
@@ -60,13 +60,7 @@
|
|||||||
isLoading: true,
|
isLoading: true,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeMount() {
|
|
||||||
if (! this.config.isSaaS) {
|
|
||||||
this.$router.push({name: 'SignIn'})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {
|
mounted() {
|
||||||
if (! this.config.isSaaS) return
|
|
||||||
|
|
||||||
// Get page content
|
// Get page content
|
||||||
axios.get('/api/content', {
|
axios.get('/api/content', {
|
||||||
|
|||||||
+1
-1
@@ -40,7 +40,7 @@ Route::group(['middleware' => ['auth:api', 'auth.master', 'scope:master']], func
|
|||||||
|
|
||||||
// Admin system tools
|
// Admin system tools
|
||||||
Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:master'], 'prefix' => 'service'], function () {
|
Route::group(['middleware' => ['auth:api', 'auth.master', 'auth.admin', 'scope:master'], 'prefix' => 'service'], function () {
|
||||||
Route::get('/upgrade-database', 'General\UpgradeAppController@upgrade_database');
|
Route::get('/upgrade', 'General\UpgradeAppController@upgrade');
|
||||||
Route::get('/down', 'General\UpgradeAppController@down');
|
Route::get('/down', 'General\UpgradeAppController@down');
|
||||||
Route::get('/up', 'General\UpgradeAppController@up');
|
Route::get('/up', 'General\UpgradeAppController@up');
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user