first commit

This commit is contained in:
2024-07-15 11:28:08 +02:00
commit f52d538ea5
21891 changed files with 6161164 additions and 0 deletions

View File

@@ -0,0 +1,406 @@
var eventBus = new Vue();
( function( $, dashboardPageConfig ) {
'use strict';
Vue.config.devtools = true;
if ( ! $('#jet-dashboard-page')[0] ) {
return false;
}
/**
* [template description]
* @type {String}
*/
Vue.component( 'license-item', {
template: '#jet-dashboard-license-item',
props: {
licenseData: Object,
type: String
},
data: function() {
return {
licenseKey: this.licenseData.licenseKey,
licenseStatus: this.licenseData.licenseStatus,
licenseDetails: this.licenseData.licenseDetails,
activationStatus: false,
ajaxLicenseAction: null,
}
},
computed: {
isLicenseActive: function() {
return 'active' === this.licenseStatus ? true : false;
},
licenseActionType: function() {
return ! this.isLicenseActive ? 'activate' : 'deactivate';
},
maskedLicenseKey: function() {
let licenseKey = this.licenseKey,
licenseKeyArray = licenseKey.split(''),
maskerLicenseArray = [];
maskerLicenseArray = licenseKeyArray.map( ( item, index ) => {
if ( index > 4 && index < licenseKeyArray.length - 4 ) {
return '*';
}
return item;
} );
return maskerLicenseArray.join('');
},
licenseStatus: function() {
return this.isLicenseActive ? 'activated' : 'not-activated';
},
licenseType: function() {
return this.licenseDetails.type ? this.licenseDetails.type : '';
},
productName: function() {
return this.licenseDetails.product_name ? this.licenseDetails.product_name : '';
},
isLicenseExpired: function() {
return 'expired' === this.licenseStatus ? true : false;
},
expireDate: function() {
let expireCases = [
'0000-00-00 00:00:00',
'lifetime'
];
if ( expireCases.includes( this.licenseDetails.expire ) ) {
return 'Lifetime';
}
return this.licenseDetails.expire;
},
licensePlugins: function() {
return this.licenseDetails.plugins ? this.licenseDetails.plugins : [];
},
},
methods: {
showLicenseManager: function() {
eventBus.$emit( 'showLicenseManager' );
},
licenseAction: function() {
var self = this,
actionType = self.licenseActionType;
self.activationStatus = true;
self.ajaxLicenseAction = $.ajax( {
type: 'POST',
url: dashboardPageConfig.ajaxUrl,
dataType: 'json',
data: {
action: 'jet_license_action',
data: {
license: self.licenseKey,
action: actionType
}
},
beforeSend: function( jqXHR, ajaxSettings ) {
if ( null !== self.ajaxLicenseAction ) {
self.ajaxLicenseAction.abort();
}
},
success: function( responce, textStatus, jqXHR ) {
self.activationStatus = false;
self.$CXNotice.add( {
message: responce.message,
type: responce.status,
duration: 3000,
} );
if ( 'success' === responce.status ) {
if ( 'activate' === actionType ) {
self.licenseStatus = 'active';
self.licenseDetails = responce.data;
eventBus.$emit( 'addLicenseItem', {
'licenseKey': self.licenseKey,
'licenseStatus': 'active',
'licenseDetails': responce.data,
} );
}
if ( 'deactivate' === actionType ) {
eventBus.$emit( 'removeLicenseItem', self.licenseKey );
}
}
}
} );
}
}
});
/**
* [template description]
* @type {String}
*/
Vue.component( 'plugin-item-installed', {
template: '#jet-dashboard-plugin-item-installed',
props: {
pluginData: Object
},
data: function() {
return {
actionPlugin: false,
actionPluginRequest: null,
actionPluginProcessed: false,
licenseActionProcessed: false,
licenseKey: '',
ajaxLicenseAction: null
}
},
computed: {
deactivateAvaliable: function() {
return ( ! this.pluginData['licenseControl'] && this.pluginData['isInstalled'] && this.pluginData['isActivated'] ) ? true : false;
},
activateAvaliable: function() {
return ( this.pluginData['isInstalled'] && !this.pluginData['isActivated'] ) ? true : false;
},
updateAvaliable: function() {
return ( this.pluginData['updateAvaliable'] ) ? true : false;
},
updateActionAvaliable: function() {
return ( this.pluginData['licenseActivated'] && this.pluginData['updateAvaliable'] ) ? true : false;
},
activateLicenseVisible: function() {
return ( this.pluginData['licenseControl'] && !this.pluginData['licenseActivated'] ) ? true : false;
},
deactivateLicenseVisible: function() {
return ( this.pluginData['licenseActivated'] ) ? true : false;
},
},
methods: {
deactivatePlugin: function() {
this.actionPlugin = 'deactivate';
this.pluginAction();
},
activatePlugin: function() {
this.actionPlugin = 'activate';
this.pluginAction();
},
updatePlugin: function() {
console.log(this.updateActionAvaliable);
if ( this.updateActionAvaliable ) {
this.actionPlugin = 'update';
this.pluginAction();
} else {
eventBus.$emit( 'showPopupUpdateCheck' );
}
},
showPopupActivation: function() {
eventBus.$emit( 'showPopupActivation', this.pluginData['slug'] );
},
pluginAction: function() {
let self = this;
self.actionPluginRequest = $.ajax( {
type: 'POST',
url: dashboardPageConfig.ajaxUrl,
dataType: 'json',
data: {
action: 'jet_dashboard_plugin_action',
data: {
action: self.actionPlugin,
plugin: self.pluginData['slug'],
}
},
beforeSend: function( jqXHR, ajaxSettings ) {
if ( null !== self.actionPluginRequest ) {
self.actionPluginRequest.abort();
}
self.actionPluginProcessed = true;
},
success: function( responce, textStatus, jqXHR ) {
self.actionPluginProcessed = false;
self.$CXNotice.add( {
message: responce.message,
type: responce.status,
duration: 3000,
} );
if ( 'success' === responce.status ) {
eventBus.$emit( 'updateUserPluginData', {
'slug': self.pluginData['slug'],
'pluginData': responce.data,
} );
}
}
} );
},
deactivateLicense: function() {
eventBus.$emit( 'showPopupDeactivation', this.pluginData['slug'] );
}
}
});
/**
* [template description]
* @type {String}
*/
Vue.component( 'plugin-item-avaliable', {
template: '#jet-dashboard-plugin-item-avaliable',
props: {
pluginData: Object,
},
data: function() {
return {
pluginActionRequest: null,
pluginActionType: false,
pluginActionProcessed: false,
}
},
computed: {
installAvaliable: function() {
return !this.pluginData['isInstalled'] ? true : false;
},
},
methods: {
installPlugin: function() {
this.pluginActionType = 'install';
this.pluginAction();
},
pluginAction: function() {
let self = this;
self.pluginActionRequest = $.ajax( {
type: 'POST',
url: dashboardPageConfig.ajaxUrl,
dataType: 'json',
data: {
action: 'jet_dashboard_plugin_action',
data: {
action: self.pluginActionType,
plugin: self.pluginData['slug'],
}
},
beforeSend: function( jqXHR, ajaxSettings ) {
if ( null !== self.pluginActionRequest ) {
self.pluginActionRequest.abort();
}
self.pluginActionProcessed = true;
},
success: function( responce, textStatus, jqXHR ) {
self.pluginActionProcessed = false;
self.$CXNotice.add( {
message: responce.message,
type: responce.status,
duration: 3000,
} );
if ( 'success' === responce.status ) {
eventBus.$emit( 'updateUserPluginData', {
'slug': self.pluginData['slug'],
'pluginData': responce.data,
} );
}
}
} );
}
}
});
/**
* [template description]
* @type {String}
*/
Vue.component( 'plugin-item-more', {
template: '#jet-dashboard-plugin-item-more',
props: {
pluginData: Object
},
data: function() {
return {
morePluginsUrl: dashboardPageConfig.getMorePluginsUrl || {},
}
},
});
/**
* [template description]
* @type {String}
*/
Vue.component( 'jet-dashboard-header', {
template: '#jet-dashboard-header',
data: function() {
return {
title: dashboardPageConfig.headerTitle || '',
}
},
});
/**
* [mounted description]
*/
window.JetDasboardPage = new Vue( {
el: '#jet-dashboard-page',
data: {
page: dashboardPageConfig.page || false
},
} );
})( jQuery, window.JetDashboardPageConfig );

View File

@@ -0,0 +1,247 @@
(function () {
'use strict';
Vue.component( 'license-page', {
template: '#jet-dashboard-license-page',
data: function() {
return {
allJetPlugins: window.JetDashboardPageConfig.allJetPlugins || {},
licenseList: window.JetDashboardPageConfig.licenseList || [],
licenseManagerVisible: false,
licensePopupVisible: false,
deactivatePopupVisible: false,
updateCheckPopupVisible: false,
licenseActionProcessed: false,
ajaxLicenseAction: null,
activatingPluginSlug: false,
};
},
created: function() {
eventBus.$on( 'addLicenseItem', this.addLicense );
eventBus.$on( 'removeLicenseItem', this.removeLicense );
eventBus.$on( 'updateUserPluginData', this.updateUserPluginData );
eventBus.$on( 'showLicenseManager', this.showLicenseManager );
eventBus.$on( 'showPopupActivation', this.showPopupActivation );
eventBus.$on( 'showPopupDeactivation', this.showPopupDeactivation );
eventBus.$on( 'showPopupUpdateCheck', this.showPopupUpdateCheck );
},
computed: {
newlicenseData: function() {
return {
'licenseStatus': 'inactive',
'licenseKey': '',
'licenseDetails': {},
};
},
licencePluginList: function() {
let licencePluginList = {};
for ( let licence of this.licenseList ) {
let plugins = licence['licenseDetails']['plugins'];
for ( let plugin in plugins ) {
let pluginData = plugins[ plugin ];
let pluginSlug = pluginData.slug;
if ( ! licencePluginList.hasOwnProperty( plugin ) ) {
licencePluginList[ plugin ] = pluginData;
}
}
}
return licencePluginList;
},
installedPluginList: function() {
let installedPluginList = {};
for ( let pluginSlug in this.allJetPlugins ) {
if ( this.allJetPlugins[ pluginSlug ][ 'isInstalled' ] ) {
let pluginData = this.allJetPlugins[ pluginSlug ];
let licenseActivated = this.licencePluginList.hasOwnProperty( pluginSlug ) ? true : false;
this.$set( pluginData, 'licenseActivated', licenseActivated );
installedPluginList[ pluginSlug ] = pluginData;
}
}
return installedPluginList;
},
installedPluginListVisible: function() {
return 0 !== Object.keys( this.installedPluginList ).length ? true : false;
},
avaliablePluginList: function() {
let avaliablePluginList = {};
for ( let pluginSlug in this.allJetPlugins ) {
if ( ( ! this.allJetPlugins[ pluginSlug ]['isInstalled'] )
&& this.licencePluginList.hasOwnProperty( pluginSlug ) ) {
let pluginData = this.allJetPlugins[ pluginSlug ];
let licenseActivated = this.licencePluginList.hasOwnProperty( pluginSlug ) ? true : false;
this.$set( pluginData, 'licenseActivated', licenseActivated );
avaliablePluginList[ pluginSlug ] = pluginData;
}
}
return avaliablePluginList;
},
avaliablePluginListVisible: function() {
return 0 !== Object.keys( this.avaliablePluginList ).length ? true : false;
},
morePluginList: function() {
let morePluginList = {};
for ( let pluginSlug in this.allJetPlugins ) {
if ( ( ! this.allJetPlugins[ pluginSlug ]['isInstalled'] ) &&
( ! this.licencePluginList.hasOwnProperty( pluginSlug ) ) ) {
let pluginData = this.allJetPlugins[ pluginSlug ];
let licenseActivated = this.licencePluginList.hasOwnProperty( pluginSlug ) ? true : false;
this.$set( pluginData, 'licenseActivated', licenseActivated );
morePluginList[ pluginSlug ] = pluginData;
}
}
return morePluginList;
},
morePluginListVisible: function() {
return Object.keys( this.morePluginList ).length ? true : false;
},
},
methods: {
showLicenseManager: function() {
this.deactivatePopupVisible = false;
this.licensePopupVisible = false;
this.licenseManagerVisible = true;
},
showPopupActivation: function( slug ) {
this.activatingPluginSlug = slug;
this.updateCheckPopupVisible = false;
this.licensePopupVisible = true;
},
showPopupDeactivation: function( slug ) {
this.deactivatePopupVisible = true;
},
showPopupUpdateCheck: function() {
this.updateCheckPopupVisible = true;
},
addNewLicense: function() {
this.licenseManagerVisible = false;
this.licensePopupVisible = true;
},
addLicense: function( licenseData ) {
this.licenseList.push( licenseData );
},
removeLicense: function( licenceKey ) {
let removingIndex = false;
for ( let licenceIndex in this.licenseList ) {
let licenseData = this.licenseList[ licenceIndex ];
if ( licenseData['licenseKey'] === licenceKey ) {
removingIndex = licenceIndex;
break;
}
}
if ( removingIndex ) {
this.licenseList.splice( removingIndex, 1 );
}
this.licensePopupVisible = false;
},
updateUserPluginData: function( data ) {
let slug = data.slug,
pluginData = data.pluginData;
this.allJetPlugins[ slug ] = Object.assign( {}, this.allJetPlugins[ slug ], pluginData );
},
licenseAction: function() {
var self = this;
self.ajaxLicenseAction = jQuery.ajax( {
type: 'POST',
url: window.JetDashboardPageConfig.ajaxUrl,
dataType: 'json',
data: {
action: 'jet_license_action',
data: {
//plugin: self.activatingPluginSlug,
license: self.licenseKey,
action: 'activate'
}
},
beforeSend: function( jqXHR, ajaxSettings ) {
if ( null !== self.ajaxLicenseAction ) {
self.ajaxLicenseAction.abort();
}
self.licenseActionProcessed = true;
},
success: function( responce, textStatus, jqXHR ) {
self.licenseActionProcessed = false;
self.$CXNotice.add( {
message: responce.message,
type: responce.status,
duration: 3000,
} );
if ( 'success' === responce.status ) {
self.addLicense( {
'licenseKey': self.licenseKey,
'licenseStatus': 'active',
'licenseDetails': responce.data,
} );
}
}
} );
}
}
} );
})();

View File

@@ -0,0 +1,12 @@
(function () {
'use strict';
Vue.component( 'welcome-page', {
template: '#jet-dashboard-welcome-page',
data: function() {
return {};
}
} );
})();