Merged in feature/MAW-846-sharethis (pull request #52)

Feature/MAW-846 sharethis

* MAW-846: ShareThis social button plugin

* MAW-846: ShareThis social buttons update

* Merged develop into feature/MAW-846-sharethis
This commit is contained in:
SRIRAM RAO TAKKALLAPELLY
2024-05-17 14:24:19 +00:00
parent 5dbb0b284e
commit 4783d97a46
44 changed files with 7815 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,43 @@
// phpcs:ignoreFile
/* global wp:wp */
/**
* This section of code registers the sharethis share buttons blocks.
*/
const shareregisterBlockType = wp.blocks.registerBlockType;
const sharecreateElement = wp.element.createElement;
const shareicon = sharecreateElement('div', { style: {
background: `url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0NC4xICg0MTQ1NSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+RmlsbCAzPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AtSEQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMC4wMDAwMDAsIC00MzguMDAwMDAwKSIgZmlsbD0iI0ZFRkVGRSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xNTE2NDMyLDQ0OS4xMDMwMTEgQzIyLjcyNjg4NzcsNDQ5LjEwMzAxMSAyMi4zMzM1MDYyLDQ0OS4yMjg5OSAyMS45OTcwODA2LDQ0OS40Mzc5ODkgQzIxLjk5NTE0OTksNDQ5LjQzNTA5MyAyMS45OTcwODA2LDQ0OS40Mzc5ODkgMjEuOTk3MDgwNiw0NDkuNDM3OTg5IEMyMS44ODA3NTU1LDQ0OS41MDg5NDMgMjEuNzM1NDY5OCw0NDkuNTQ1NjI2IDIxLjU4OTIxODgsNDQ5LjU0NTYyNiBDMjEuNDUzMTA0LDQ0OS41NDU2MjYgMjEuMzE5ODg1Miw0NDkuNTA3NDk0IDIxLjIwODg2OTYsNDQ5LjQ0NTIyOSBMMTQuODczNzM4Myw0NDYuMDM4OTggQzE0Ljc2NDE3MDcsNDQ1Ljk5MDIzIDE0LjY4NzkwNzgsNDQ1Ljg3ODczMSAxNC42ODc5MDc4LDQ0NS43NTEzMDUgQzE0LjY4NzkwNzgsNDQ1LjYyMzM5NSAxNC43NjUxMzYsNDQ1LjUxMTg5NyAxNC44NzQ3MDM2LDQ0NS40NjI2NjQgTDIxLjIwODg2OTYsNDQyLjA1Njg5NyBDMjEuMzE5ODg1Miw0NDEuOTk1MTE1IDIxLjQ1MzEwNCw0NDEuOTU2NTAxIDIxLjU4OTIxODgsNDQxLjk1NjUwMSBDMjEuNzM1NDY5OCw0NDEuOTU2NTAxIDIxLjg4MDc1NTUsNDQxLjk5MzY2NyAyMS45OTcwODA2LDQ0Mi4wNjQ2MiBDMjEuOTk3MDgwNiw0NDIuMDY0NjIgMjEuOTk1MTQ5OSw0NDIuMDY3MDM0IDIxLjk5NzA4MDYsNDQyLjA2NDYyIEMyMi4zMzM1MDYyLDQ0Mi4yNzMxMzcgMjIuNzI2ODg3Nyw0NDIuMzk5MTE1IDIzLjE1MTY0MzIsNDQyLjM5OTExNSBDMjQuMzY2NTQwMyw0NDIuMzk5MTE1IDI1LjM1MTY4MzQsNDQxLjQxNDQ1NSAyNS4zNTE2ODM0LDQ0MC4xOTk1NTggQzI1LjM1MTY4MzQsNDM4Ljk4NDY2IDI0LjM2NjU0MDMsNDM4IDIzLjE1MTY0MzIsNDM4IEMyMi4wMTYzODc2LDQzOCAyMS4wOTMwMjcyLDQzOC44NjMwMjYgMjAuOTc1MjU0MSw0MzkuOTY3MzkgQzIwLjk3MTM5MjYsNDM5Ljk2MzA0NiAyMC45NzUyNTQxLDQzOS45NjczOSAyMC45NzUyNTQxLDQzOS45NjczOSBDMjAuOTUwNjM3NSw0NDAuMjM5MTM3IDIwLjc2OTE1MTEsNDQwLjQ2NzkyNiAyMC41MzYwMTgzLDQ0MC41ODQyNTEgTDE0LjI3OTU2MzMsNDQzLjk0NzU0MiBDMTQuMTY0MjAzNiw0NDQuMDE3MDQ3IDE0LjAyNDIyNzMsNDQ0LjA1NjE0NCAxMy44Nzk0MjQzLDQ0NC4wNTYxNDQgQzEzLjcwODU1NjgsNDQ0LjA1NjE0NCAxMy41NDgzMDgxLDQ0NC4wMDQ0OTggMTMuNDIwODgxNSw0NDMuOTEwMzc2IEMxMy4wNzUyODUsNDQzLjY4NDk2NiAxMi42NjUwMDk4LDQ0My41NTEyNjQgMTIuMjIxOTEyNiw0NDMuNTUxMjY0IEMxMS4wMDcwMTU1LDQ0My41NTEyNjQgMTAuMDIyMzU1MSw0NDQuNTM2NDA3IDEwLjAyMjM1NTEsNDQ1Ljc1MTMwNSBDMTAuMDIyMzU1MSw0NDYuOTY2MjAyIDExLjAwNzAxNTUsNDQ3Ljk1MDg2MiAxMi4yMjE5MTI2LDQ0Ny45NTA4NjIgQzEyLjY2NTAwOTgsNDQ3Ljk1MDg2MiAxMy4wNzUyODUsNDQ3LjgxNzY0MyAxMy40MjA4ODE1LDQ0Ny41OTIyMzMgQzEzLjU0ODMwODEsNDQ3LjQ5NzYyOSAxMy43MDg1NTY4LDQ0Ny40NDY0NjUgMTMuODc5NDI0Myw0NDcuNDQ2NDY1IEMxNC4wMjQyMjczLDQ0Ny40NDY0NjUgMTQuMTY0MjAzNiw0NDcuNDg1MDc5IDE0LjI3OTU2MzMsNDQ3LjU1NDU4NSBMMjAuNTM2MDE4Myw0NTAuOTE4MzU4IEMyMC43Njg2Njg0LDQ1MS4wMzQyMDEgMjAuOTUwNjM3NSw0NTEuMjYzNDcyIDIwLjk3NTI1NDEsNDUxLjUzNTIxOSBDMjAuOTc1MjU0MSw0NTEuNTM1MjE5IDIwLjk3MTM5MjYsNDUxLjUzOTU2MyAyMC45NzUyNTQxLDQ1MS41MzUyMTkgQzIxLjA5MzAyNzIsNDUyLjYzOTEwMSAyMi4wMTYzODc2LDQ1My41MDI2MDkgMjMuMTUxNjQzMiw0NTMuNTAyNjA5IEMyNC4zNjY1NDAzLDQ1My41MDI2MDkgMjUuMzUxNjgzNCw0NTIuNTE3NDY2IDI1LjM1MTY4MzQsNDUxLjMwMjU2OSBDMjUuMzUxNjgzNCw0NTAuMDg3NjcyIDI0LjM2NjU0MDMsNDQ5LjEwMzAxMSAyMy4xNTE2NDMyLDQ0OS4xMDMwMTEiIGlkPSJGaWxsLTMiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==")`,
width: '24px',
height: '24px',
backgroundRepeat: 'no-repeat',
backgroundPosition: 'center',
backgroundColor: '#93d227'
} } );
/**
* Share Buttons Block
*/
shareregisterBlockType('st/sharebuttons', {
title: 'Inline Share Buttons',
icon: shareicon,
category: 'st-blocks',
edit() {
return (
sharecreateElement(
'div',
{className:'inline-share-button-block'},
sharecreateElement(
'img',
{src:'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iMCAwIDE2IDE2IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0NC4xICg0MTQ1NSkgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+RmlsbCAzPC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9IkRlc2t0b3AtSEQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMC4wMDAwMDAsIC00MzguMDAwMDAwKSIgZmlsbD0iI0ZFRkVGRSI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0yMy4xNTE2NDMyLDQ0OS4xMDMwMTEgQzIyLjcyNjg4NzcsNDQ5LjEwMzAxMSAyMi4zMzM1MDYyLDQ0OS4yMjg5OSAyMS45OTcwODA2LDQ0OS40Mzc5ODkgQzIxLjk5NTE0OTksNDQ5LjQzNTA5MyAyMS45OTcwODA2LDQ0OS40Mzc5ODkgMjEuOTk3MDgwNiw0NDkuNDM3OTg5IEMyMS44ODA3NTU1LDQ0OS41MDg5NDMgMjEuNzM1NDY5OCw0NDkuNTQ1NjI2IDIxLjU4OTIxODgsNDQ5LjU0NTYyNiBDMjEuNDUzMTA0LDQ0OS41NDU2MjYgMjEuMzE5ODg1Miw0NDkuNTA3NDk0IDIxLjIwODg2OTYsNDQ5LjQ0NTIyOSBMMTQuODczNzM4Myw0NDYuMDM4OTggQzE0Ljc2NDE3MDcsNDQ1Ljk5MDIzIDE0LjY4NzkwNzgsNDQ1Ljg3ODczMSAxNC42ODc5MDc4LDQ0NS43NTEzMDUgQzE0LjY4NzkwNzgsNDQ1LjYyMzM5NSAxNC43NjUxMzYsNDQ1LjUxMTg5NyAxNC44NzQ3MDM2LDQ0NS40NjI2NjQgTDIxLjIwODg2OTYsNDQyLjA1Njg5NyBDMjEuMzE5ODg1Miw0NDEuOTk1MTE1IDIxLjQ1MzEwNCw0NDEuOTU2NTAxIDIxLjU4OTIxODgsNDQxLjk1NjUwMSBDMjEuNzM1NDY5OCw0NDEuOTU2NTAxIDIxLjg4MDc1NTUsNDQxLjk5MzY2NyAyMS45OTcwODA2LDQ0Mi4wNjQ2MiBDMjEuOTk3MDgwNiw0NDIuMDY0NjIgMjEuOTk1MTQ5OSw0NDIuMDY3MDM0IDIxLjk5NzA4MDYsNDQyLjA2NDYyIEMyMi4zMzM1MDYyLDQ0Mi4yNzMxMzcgMjIuNzI2ODg3Nyw0NDIuMzk5MTE1IDIzLjE1MTY0MzIsNDQyLjM5OTExNSBDMjQuMzY2NTQwMyw0NDIuMzk5MTE1IDI1LjM1MTY4MzQsNDQxLjQxNDQ1NSAyNS4zNTE2ODM0LDQ0MC4xOTk1NTggQzI1LjM1MTY4MzQsNDM4Ljk4NDY2IDI0LjM2NjU0MDMsNDM4IDIzLjE1MTY0MzIsNDM4IEMyMi4wMTYzODc2LDQzOCAyMS4wOTMwMjcyLDQzOC44NjMwMjYgMjAuOTc1MjU0MSw0MzkuOTY3MzkgQzIwLjk3MTM5MjYsNDM5Ljk2MzA0NiAyMC45NzUyNTQxLDQzOS45NjczOSAyMC45NzUyNTQxLDQzOS45NjczOSBDMjAuOTUwNjM3NSw0NDAuMjM5MTM3IDIwLjc2OTE1MTEsNDQwLjQ2NzkyNiAyMC41MzYwMTgzLDQ0MC41ODQyNTEgTDE0LjI3OTU2MzMsNDQzLjk0NzU0MiBDMTQuMTY0MjAzNiw0NDQuMDE3MDQ3IDE0LjAyNDIyNzMsNDQ0LjA1NjE0NCAxMy44Nzk0MjQzLDQ0NC4wNTYxNDQgQzEzLjcwODU1NjgsNDQ0LjA1NjE0NCAxMy41NDgzMDgxLDQ0NC4wMDQ0OTggMTMuNDIwODgxNSw0NDMuOTEwMzc2IEMxMy4wNzUyODUsNDQzLjY4NDk2NiAxMi42NjUwMDk4LDQ0My41NTEyNjQgMTIuMjIxOTEyNiw0NDMuNTUxMjY0IEMxMS4wMDcwMTU1LDQ0My41NTEyNjQgMTAuMDIyMzU1MSw0NDQuNTM2NDA3IDEwLjAyMjM1NTEsNDQ1Ljc1MTMwNSBDMTAuMDIyMzU1MSw0NDYuOTY2MjAyIDExLjAwNzAxNTUsNDQ3Ljk1MDg2MiAxMi4yMjE5MTI2LDQ0Ny45NTA4NjIgQzEyLjY2NTAwOTgsNDQ3Ljk1MDg2MiAxMy4wNzUyODUsNDQ3LjgxNzY0MyAxMy40MjA4ODE1LDQ0Ny41OTIyMzMgQzEzLjU0ODMwODEsNDQ3LjQ5NzYyOSAxMy43MDg1NTY4LDQ0Ny40NDY0NjUgMTMuODc5NDI0Myw0NDcuNDQ2NDY1IEMxNC4wMjQyMjczLDQ0Ny40NDY0NjUgMTQuMTY0MjAzNiw0NDcuNDg1MDc5IDE0LjI3OTU2MzMsNDQ3LjU1NDU4NSBMMjAuNTM2MDE4Myw0NTAuOTE4MzU4IEMyMC43Njg2Njg0LDQ1MS4wMzQyMDEgMjAuOTUwNjM3NSw0NTEuMjYzNDcyIDIwLjk3NTI1NDEsNDUxLjUzNTIxOSBDMjAuOTc1MjU0MSw0NTEuNTM1MjE5IDIwLjk3MTM5MjYsNDUxLjUzOTU2MyAyMC45NzUyNTQxLDQ1MS41MzUyMTkgQzIxLjA5MzAyNzIsNDUyLjYzOTEwMSAyMi4wMTYzODc2LDQ1My41MDI2MDkgMjMuMTUxNjQzMiw0NTMuNTAyNjA5IEMyNC4zNjY1NDAzLDQ1My41MDI2MDkgMjUuMzUxNjgzNCw0NTIuNTE3NDY2IDI1LjM1MTY4MzQsNDUxLjMwMjU2OSBDMjUuMzUxNjgzNCw0NTAuMDg3NjcyIDI0LjM2NjU0MDMsNDQ5LjEwMzAxMSAyMy4xNTE2NDMyLDQ0OS4xMDMwMTEiIGlkPSJGaWxsLTMiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg=='}
),
'Share Buttons Display Here'
)
);
},
save() {
return (
'[sharethis-inline-buttons]'
);
}
});

View File

@@ -0,0 +1,86 @@
/**
* Minute Control.
*
* @package ShareThisShareButtons
*/
/* exported MinuteControl */
var MinuteControl = ( function( $, wp ) {
'use strict';
return {
/**
* Holds data.
*/
data: {},
/**
* Boot plugin.
*
* @param data
*/
boot: function( data ) {
this.data = data;
$( document ).ready(
function() {
this.init();
}.bind( this )
);
},
/**
* Initialize plugin.
*/
init: function() {
this.$container = $( '#sharethis-meta-box' );
this.listen();
},
/**
* Initiate listeners.
*/
listen: function() {
var self = this;
// When checking an option in the meta box.
this.$container.on(
'click',
'#sharethis-bottom-post, #sharethis-top-post, #sharethis-sticky-show',
function() {
var checked = $( this ).prop( 'checked' ),
type = $( this ).closest( '.button-setting-wrap' ).attr( 'id' ),
placement = $( this ).attr( 'class' );
self.updateList( type, checked, placement );
}
);
},
/**
* Add / remove post to list.
*
* @param type
* @param checked
* @param placement
*/
updateList: function( type, checked, placement ) {
// Update specifide list per checked.
wp.ajax.post(
'update_list',
{
postid: this.data.postid,
type: type,
checked: checked,
placement: placement,
nonce: this.data.nonce
}
).always(
function() {
}
);
}
};
} )( window.jQuery, window.wp );

View File

@@ -0,0 +1,312 @@
/**
* Credentials
*
* @package ShareThisShareButtons
*/
/* exported Credentials */
var Credentials = ( function( $, wp ) {
'use strict';
return {
/**
* Holds data.
*/
data: {},
/**
* Boot plugin.
*
* @param data
*/
boot: function( data ) {
this.data = data;
$( document ).ready(
function() {
this.init();
}.bind( this )
);
},
/**
* Initialize plugin.
*/
init: function() {
const self = this;
// Set default WP config.
wp.ajax.post(
'set_default_settings',
{
type: 'both',
nonce: self.data.nonce
}
).always(
function( link ) {
self.registerAccount( self.data.email, Math.random() + '1_stsb_PW!' );
}.bind( self )
);
},
/**
* Send hash data to credential setting.
*
* @param secret
* @param propertyid
* @param token
* @param type
*/
setCredentials: function( secret, propertyid, token, type ) {
var propSecret = propertyid + '-' + secret;
const self = this;
// If hash exists send it to credential setting.
wp.ajax.post(
'set_credentials',
{
data: propSecret,
token: token,
nonce: this.data.nonce
}
).always(
function( link ) {
// Set default product configs.
const iconfig = {
alignment: 'center',
color: 'social',
enabled: false,
font_size: 11,
labels: 'cta',
min_count: 10,
padding: 8,
radius: 4,
networks: ['facebook', 'twitter', 'email', 'sms', 'sharethis'],
show_total: true,
size: 32,
spacing: 8,
language: 'en',
};
const sconfig = {
alignment: 'left',
color: 'social',
enabled: false,
labels: 'cta',
min_count: 10,
radius: 4,
networks: ['facebook', 'twitter', 'email', 'sms', 'sharethis'],
top: 200,
show_mobile: true,
show_total: true,
show_desktop: true,
show_mobile_buttons: true,
mobile_breakpoint: 1024,
spacing: 0,
language: 'en'
}
const gconfig = {
color: '#2e7d32',
display: 'always',
enabled: false,
language: 'en',
publisher_name: '',
publisher_purposes: [],
scope: 'global'
}
let theiData = {
'token' : token,
'id': propertyid,
'product': 'inline-share-buttons',
'config': iconfig
};
theiData = JSON.stringify( theiData );
// Send new button status value.
$.ajax(
{
url: 'https://platform-api.sharethis.com/v1.0/property/product',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: theiData,
success: function () {
wp.ajax.post(
'set_button_config',
{
button: 'inline',
config: iconfig,
first: true,
nonce: self.data.nonce
}
).always(
function ( results ) {
let thesData = {
'token' : token,
'id': propertyid,
'product': 'sticky-share-buttons',
'config': sconfig
};
thesData = JSON.stringify( thesData );
// Send new button status value.
$.ajax(
{
url: 'https://platform-api.sharethis.com/v1.0/property/product',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: thesData,
success: function () {
wp.ajax.post(
'set_button_config',
{
button: 'sticky',
config: sconfig,
nonce: self.data.nonce
}
).always(
function ( results ) {
let thegData = {
'token' : token,
'id': propertyid,
'product': 'gdpr-compliance-tool-v2',
'config': gconfig
};
thegData = JSON.stringify( thegData );
// Send new button status value.
$.ajax(
{
url: 'https://platform-api.sharethis.com/v1.0/property/product',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: thegData,
success: function () {
wp.ajax.post(
'set_button_config',
{
button: 'gdpr',
config: gconfig,
nonce: self.data.nonce
}
).always(
function ( results ) {
window.location.reload();
}
);
}
}
);
}
);
}
}
);
}
);
}
}
);
}.bind( this )
);
},
/**
* Register new account.
*
* @param email
* @param pw
*/
registerAccount: function( email, pw ) {
var result = null,
self = this,
url = this.data.url,
randomNumber = Math.floor(
(
Math.random() * 10000000000000000
) + 1
),
randomNumber2 = Math.floor(
(
Math.random() * 10000000000000000
) + 1
),
theData = JSON.stringify(
{
email: randomNumber + '@' + randomNumber2 + '.com',
password: pw,
custom: {
onboarding_product: 'inline-share-buttons',
onboarding_domain: url,
is_wordpress: true,
wordpress_email: email,
}
}
);
$.ajax(
{
url: 'https://sso.sharethis.com/register',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: theData,
success: function( results ) {
result = results;
// Create property.
self.createProperty( result, url, '' );
},
}
);
},
/**
* Create property for new account.
*
* @param accountInfo
* @param url
*/
createProperty: function( accountInfo, url, type ) {
var result = null,
self = this,
token = accountInfo.token,
theData;
if ( 'string' === typeof accountInfo ) {
token = accountInfo;
}
theData = JSON.stringify(
{
token: token,
product: 'inline-share-buttons',
domain: url,
is_wordpress: true
}
);
$.ajax(
{
url: 'https://platform-api.sharethis.com/v1.0/property',
method: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
data: theData,
success: function( results ) {
result = results;
self.setCredentials( result.secret, result._id, token, type );
}
}
);
}
};
} )( window.jQuery, window.wp );