initial commit
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,42 @@
|
||||
/* 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]'
|
||||
);
|
||||
}
|
||||
});
|
@@ -0,0 +1,75 @@
|
||||
/**
|
||||
* 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 );
|
@@ -0,0 +1,694 @@
|
||||
/**
|
||||
* 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() {
|
||||
this.$connection = $( '.sharethis-connection-wrap' );
|
||||
this.$createConfig = '';
|
||||
this.listen();
|
||||
this.loadPreview( 'initial' );
|
||||
this.checkAdBlock();
|
||||
},
|
||||
|
||||
/**
|
||||
* Listener.
|
||||
*/
|
||||
listen: function() {
|
||||
var self = this;
|
||||
|
||||
// Create new account.
|
||||
this.$connection.on( 'click', '.create-account', function() {
|
||||
var email = $( '#st-email' ).val(),
|
||||
pw = $( '#st-password' ).val();
|
||||
|
||||
$( '.st-loading-gif' ).fadeIn();
|
||||
|
||||
// Set default WP config.
|
||||
wp.ajax.post( 'set_default_settings', {
|
||||
type: 'both',
|
||||
nonce: self.data.nonce
|
||||
} ).always( function( link ) {
|
||||
self.registerAccount( email, pw );
|
||||
}.bind( self ) );
|
||||
} );
|
||||
|
||||
// Login to account.
|
||||
this.$connection.on( 'click', '.login-account', function( e ) {
|
||||
e.preventDefault();
|
||||
|
||||
var email = $( '#st-login-email' ).val(),
|
||||
pw = $( '#st-login-password' ).val();
|
||||
|
||||
// Set default WP config.
|
||||
wp.ajax.post( 'set_default_settings', {
|
||||
type: 'both',
|
||||
nonce: self.data.nonce
|
||||
} ).always( function( link ) {
|
||||
self.loginAccount( email, pw );
|
||||
}.bind( self ) );
|
||||
} );
|
||||
|
||||
this.$connection.on( 'click', '#connect-property', function( e ) {
|
||||
e.preventDefault();
|
||||
|
||||
$( '.st-loading-gif' ).fadeIn();
|
||||
|
||||
var secret = $( '#sharethis-properties option:selected' ).val(),
|
||||
property = $( '#sharethis-properties option:selected' ).attr( 'data-prop' ),
|
||||
token = $( '#st-user-cred' ).val(),
|
||||
config = $( '#sharethis-properties option:selected' ).attr( 'data-config' ).replace( /'/g, '"' ),
|
||||
button = $( '#sharethis-properties option:selected' ).attr( 'data-first' ).replace( '-share-buttons', '' ),
|
||||
theData = JSON.stringify( { is_wordpress: true } ),
|
||||
callExtra = 'secret=' + secret;
|
||||
|
||||
if ( 'undefined' === secret ) {
|
||||
callExtra = 'token=' + token;
|
||||
}
|
||||
|
||||
wp.ajax.post( 'set_button_config', {
|
||||
button: button,
|
||||
config: config,
|
||||
type: 'login',
|
||||
nonce: self.data.nonce
|
||||
} ).always( function() {
|
||||
$.ajax( {
|
||||
url: 'https://platform-api.sharethis.com/v1.0/property/?id=' + property + '&' + callExtra,
|
||||
method: 'PUT',
|
||||
async: false,
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: theData,
|
||||
success: function() {
|
||||
self.setCredentials( secret, property, token, 'login' );
|
||||
}
|
||||
} );
|
||||
} );
|
||||
} );
|
||||
|
||||
// Create property based on site url.
|
||||
this.$connection.on( 'click', '#create-new-property', function( e ) {
|
||||
e.preventDefault();
|
||||
|
||||
$( '.st-loading-gif' ).fadeIn();
|
||||
|
||||
var secret = $( '#sharethis-properties option:selected' ).val(),
|
||||
property = $( '#sharethis-properties option:selected' ).attr( 'data-prop' ),
|
||||
token = $( '#st-user-cred' ).val(),
|
||||
config = $( '#sharethis-properties option:selected' ).attr( 'data-config' ).replace( /'/g, '"' ),
|
||||
button = $( '#sharethis-properties option:selected' ).attr( 'data-first' ).replace( '-share-buttons', '' ),
|
||||
theData = JSON.stringify( { is_wordpress: true } ),
|
||||
callExtra = 'secret=' + secret;
|
||||
|
||||
if ( 'undefined' === secret ) {
|
||||
callExtra = 'token=' + token;
|
||||
}
|
||||
|
||||
wp.ajax.post( 'set_button_config', {
|
||||
button: button,
|
||||
config: config,
|
||||
type: 'login',
|
||||
nonce: self.data.nonce
|
||||
} ).always( function( results ) {
|
||||
$.ajax( {
|
||||
url: 'https://platform-api.sharethis.com/v1.0/property/?id=' + property + '&' + callExtra,
|
||||
method: 'PUT',
|
||||
async: false,
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: theData,
|
||||
success: function() {
|
||||
self.$createConfig = JSON.parse( config );
|
||||
self.$createButton = button;
|
||||
self.createProperty( token, self.data.url, 'create' );
|
||||
}
|
||||
} );
|
||||
} );
|
||||
} );
|
||||
|
||||
$( 'body' ).on( 'click', '.item label', function() {
|
||||
var checked = $( this ).siblings( 'input' ).is( ':checked' );
|
||||
|
||||
$( '.sharethis-inline-share-buttons' ).removeClass( 'st-has-labels' );
|
||||
|
||||
if ( ! checked ) {
|
||||
$( this ).closest( '.st-radio-config' ).find( '.item' ).each( function() {
|
||||
$( this ).find( 'input' ).prop( 'checked', false );
|
||||
} );
|
||||
|
||||
$( this ).siblings( 'input' ).prop( 'checked', true );
|
||||
}
|
||||
|
||||
self.loadPreview( '' );
|
||||
} );
|
||||
|
||||
// All levers.
|
||||
this.$connection.on( 'click', '.item div.switch', function() {
|
||||
self.loadPreview( '' );
|
||||
} );
|
||||
|
||||
// Minimum count.
|
||||
this.$connection.on( 'change', 'input.minimum-count, #radius-selector, .vertical-alignment, .mobile-breakpoint, #st-language', function() {
|
||||
self.loadPreview( '' );
|
||||
} );
|
||||
|
||||
// Button alignment.
|
||||
this.$connection.on( 'click', '.button-alignment .alignment-button', function() {
|
||||
$( '.button-alignment .alignment-button[data-selected="true"]' )
|
||||
.attr( 'data-selected', 'false' );
|
||||
$( '.sharethis-inline-share-buttons' ).removeClass( 'st-justified' );
|
||||
$( this ).attr( 'data-selected', 'true' );
|
||||
|
||||
self.loadPreview( '' );
|
||||
} );
|
||||
|
||||
// Select or deselect a network.
|
||||
this.$connection.on( 'click', '.share-buttons .share-button', function() {
|
||||
var selection = $( this ).attr( 'data-selected' ),
|
||||
network = $( this ).attr( 'data-network' );
|
||||
|
||||
if ( 'true' === selection ) {
|
||||
$( this ).attr( 'data-selected', 'false' );
|
||||
$( '.sharethis-selected-networks > div > div div[data-network="' + network + '"]' ).remove();
|
||||
} else {
|
||||
$( this ).attr( 'data-selected', 'true' );
|
||||
$( '.sharethis-selected-networks > div > div' ).append( '<div class="st-btn" data-network="' + network + '" style="display: inline-block;"></div>' );
|
||||
}
|
||||
|
||||
self.loadPreview( '' );
|
||||
} );
|
||||
|
||||
// Add class to preview when scrolled to.
|
||||
$( window ).on( 'scroll', function() {
|
||||
if ( undefined === $( '.selected-button' ).offset() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var stickyTop = $( '.selected-button' ).offset().top;
|
||||
|
||||
if ( $( window ).scrollTop() >= stickyTop ) {
|
||||
$( '.sharethis-selected-networks' ).addClass( 'sharethis-prev-stick' );
|
||||
} else {
|
||||
$( '.sharethis-selected-networks' ).removeClass( 'sharethis-prev-stick' );
|
||||
}
|
||||
} );
|
||||
|
||||
// If register button is clicked. submit button configurations.
|
||||
this.$connection.on( 'click', '#sharethis-step-two-wrap .st-rc-link', function() {
|
||||
$( '.st-loading-gif' ).fadeIn();
|
||||
self.loadPreview( 'submit' );
|
||||
} );
|
||||
},
|
||||
|
||||
/**
|
||||
* Send hash data to credential setting.
|
||||
*
|
||||
* @param secret
|
||||
* @param propertyid
|
||||
* @param token
|
||||
* @param type
|
||||
*/
|
||||
|
||||
setCredentials: function( secret, propertyid, token, type ) {
|
||||
var propSecret = propertyid + '-' + secret;
|
||||
|
||||
// If hash exists send it to credential setting.
|
||||
wp.ajax.post( 'set_credentials', {
|
||||
data: propSecret,
|
||||
token: token,
|
||||
nonce: this.data.nonce
|
||||
} ).always( function( link ) {
|
||||
if ( 'login' !== type ) {
|
||||
this.setButtonConfig( secret, propertyid, token, type );
|
||||
} else {
|
||||
window.location = '?page=sharethis-share-buttons';
|
||||
}
|
||||
}.bind( this ) );
|
||||
},
|
||||
|
||||
/**
|
||||
* Login to your account.
|
||||
*
|
||||
* @param email
|
||||
* @param pw
|
||||
*/
|
||||
loginAccount: function( email, pw ) {
|
||||
var self = this,
|
||||
theData = JSON.stringify( {
|
||||
email: email,
|
||||
password: pw
|
||||
} );
|
||||
|
||||
$.ajax( {
|
||||
url: 'https://sso.sharethis.com/login',
|
||||
method: 'POST',
|
||||
async: false,
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: theData,
|
||||
success: function( results ) {
|
||||
$( '#st-user-cred' ).val( results.token );
|
||||
|
||||
// Get full info.
|
||||
self.getProperty( results.token );
|
||||
},
|
||||
error: function( xhr, status, error ) {
|
||||
$( '.st-loading-gif' ).hide();
|
||||
var message = xhr.responseJSON.message;
|
||||
|
||||
$( 'div.error-message' ).html( '' );
|
||||
$( '.login-account.st-rc-link' ).after(
|
||||
'<div class="error-message" style="text-align: center; margin: 1rem 0;">' +
|
||||
message +
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
/**
|
||||
* Register new account.
|
||||
*
|
||||
* @param email
|
||||
* @param pw
|
||||
*/
|
||||
registerAccount: function( email, pw ) {
|
||||
var result = null,
|
||||
self = this,
|
||||
url = this.data.url,
|
||||
button = this.data.firstButton,
|
||||
theData = JSON.stringify( {
|
||||
email: email,
|
||||
password: pw,
|
||||
custom: {
|
||||
onboarding_product: button + '-share-buttons',
|
||||
onboarding_domain: url,
|
||||
is_wordpress: true
|
||||
}
|
||||
} );
|
||||
|
||||
$.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, '' );
|
||||
},
|
||||
error: function( xhr, status, error ) {
|
||||
$( '.st-loading-gif' ).hide();
|
||||
var message = xhr.responseJSON.message;
|
||||
|
||||
$( 'div.error-message' ).html( '' );
|
||||
$( '.sharethis-account-creation small' ).after(
|
||||
'<div class="error-message" style="text-align: center; margin: 1rem 0;">' +
|
||||
message +
|
||||
'</div>'
|
||||
);
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
/**
|
||||
* Create property for new account.
|
||||
*
|
||||
* @param accountInfo
|
||||
* @param url
|
||||
*/
|
||||
createProperty: function( accountInfo, url, type ) {
|
||||
var result = null,
|
||||
self = this,
|
||||
token = accountInfo.token,
|
||||
button = this.data.firstButton,
|
||||
theData;
|
||||
|
||||
if ( 'string' === typeof accountInfo ) {
|
||||
token = accountInfo;
|
||||
}
|
||||
|
||||
theData = JSON.stringify( {
|
||||
token: token,
|
||||
product: button + '-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 );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
/**
|
||||
* Load preview buttons.
|
||||
*
|
||||
* @param type
|
||||
*/
|
||||
loadPreview: function( type ) {
|
||||
var button = $( '.selected-button' ).attr( 'id' ),
|
||||
bAlignment = $( '.button-alignment .alignment-button[data-selected="true"]' )
|
||||
.attr( 'data-alignment' ),
|
||||
sAlignment = $( '.sticky-alignment' ).find( 'input' ).is( ':checked' ),
|
||||
bSize = $( '.button-size .item input:checked' ).siblings( 'label' ).html(),
|
||||
bLabels = $( '.button-labels .item input:checked' )
|
||||
.siblings( 'label' )
|
||||
.attr( 'id' ),
|
||||
bCount = $( 'input.minimum-count' ).val(),
|
||||
showTotal = $( 'span.show-total-count' )
|
||||
.siblings( 'div.switch' )
|
||||
.find( 'input' )
|
||||
.is( ':checked' ),
|
||||
extraSpacing = $( 'span.extra-spacing' )
|
||||
.siblings( 'div.switch' )
|
||||
.find( 'input' )
|
||||
.is( ':checked' ),
|
||||
showMobile = $( 'span.show-on-mobile' )
|
||||
.find( 'input' )
|
||||
.is( ':checked' ),
|
||||
showDesktop = $( 'span.show-on-desktop' )
|
||||
.find( 'input' )
|
||||
.is( ':checked' ),
|
||||
vertAlign = $( '.vertical-alignment' ).val() + 'px',
|
||||
mobileBreak = $( '.mobile-breakpoint' ).val(),
|
||||
spacing = 0,
|
||||
bRadius = $( '#radius-selector' ).val() + 'px',
|
||||
networks = [],
|
||||
language = $( '#st-language option:selected' ).val(),
|
||||
self = this,
|
||||
size,
|
||||
padding,
|
||||
fontSize,
|
||||
config;
|
||||
|
||||
if ( undefined === button ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( 'initial' === type ) {
|
||||
$( '.share-buttons .share-button[data-selected="true"]' ).each( function( index ) {
|
||||
networks[ index ] = $( this ).attr( 'data-network' );
|
||||
} );
|
||||
} else {
|
||||
$( '.sharethis-selected-networks > div > div .st-btn' ).each( function( index ) {
|
||||
networks[ index ] = $( this ).attr( 'data-network' );
|
||||
} );
|
||||
}
|
||||
|
||||
// If true alignment is right else its left.
|
||||
if ( sAlignment ) {
|
||||
sAlignment = 'right';
|
||||
} else {
|
||||
sAlignment = 'left';
|
||||
}
|
||||
|
||||
if ( 'Small' === bSize ) {
|
||||
size = 32;
|
||||
fontSize = 11;
|
||||
padding = 8;
|
||||
|
||||
$( '#radius-selector' ).attr( 'max', 16 );
|
||||
}
|
||||
|
||||
if ( 'Medium' === bSize ) {
|
||||
size = 40;
|
||||
fontSize = 12;
|
||||
padding = 10;
|
||||
|
||||
$( '#radius-selector' ).attr( 'max', 20 );
|
||||
}
|
||||
|
||||
if ( 'Large' === bSize ) {
|
||||
size = 48;
|
||||
fontSize = 16;
|
||||
padding = 12;
|
||||
|
||||
$( '#radius-selector' ).attr( 'max', 26 );
|
||||
}
|
||||
|
||||
if ( extraSpacing ) {
|
||||
spacing = 8;
|
||||
}
|
||||
|
||||
if ( 'Inline' === button ) {
|
||||
config = { alignment: bAlignment,
|
||||
enabled: true,
|
||||
font_size: fontSize,
|
||||
labels: bLabels,
|
||||
min_count: bCount,
|
||||
padding: padding,
|
||||
radius: bRadius,
|
||||
networks: networks,
|
||||
show_total: showTotal,
|
||||
show_mobile_buttons: true,
|
||||
size: size,
|
||||
spacing: spacing,
|
||||
language: language
|
||||
};
|
||||
} else {
|
||||
config = { alignment: sAlignment,
|
||||
enabled: true,
|
||||
labels: bLabels,
|
||||
min_count: bCount,
|
||||
radius: bRadius,
|
||||
networks: networks,
|
||||
mobile_breakpoint: mobileBreak,
|
||||
top: vertAlign,
|
||||
show_mobile: showMobile,
|
||||
show_total: showTotal,
|
||||
show_desktop: showDesktop,
|
||||
show_mobile_buttons: true,
|
||||
spacing: 0,
|
||||
language: language
|
||||
};
|
||||
}
|
||||
|
||||
if ( 'submit' === type ) {
|
||||
wp.ajax.post( 'set_button_config', {
|
||||
button: button,
|
||||
config: config,
|
||||
nonce: this.data.nonce
|
||||
} ).always( function( results ) {
|
||||
window.location.href = '?page=sharethis-general&s=3';
|
||||
} );
|
||||
} else {
|
||||
$( '#' + button + '-8' ).html( '' );
|
||||
|
||||
config.container = button + '-8';
|
||||
window.__sharethis__.href = 'https://www.sharethis.com/';
|
||||
window.__sharethis__.load( button.toLowerCase() + '-share-buttons', config );
|
||||
|
||||
$( '.sharethis-selected-networks > div > div' ).sortable( {
|
||||
stop: function( event, ui ) {
|
||||
self.loadPreview( '' );
|
||||
}
|
||||
} );
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Get user information and property
|
||||
*
|
||||
* @param token
|
||||
*/
|
||||
getProperty: function( token ) {
|
||||
$.ajax( {
|
||||
url: 'https://platform-api.sharethis.com/v1.0/me?token=' + token,
|
||||
method: 'Get',
|
||||
async: false,
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
success: function( result ) {
|
||||
$( '#sharethis-login-wrap' ).hide();
|
||||
$( '#sharethis-property-select-wrap' ).show();
|
||||
$( '#sharethis-properties' ).html( '' );
|
||||
|
||||
$.each( result.properties, function( index, value ) {
|
||||
var config = { inline: value['inline-share-buttons'], sticky: value['sticky-share-buttons'] },
|
||||
firstProduct = value['onboarding_product'],
|
||||
inline = value['inline-share-buttons'],
|
||||
sticky = value['sticky-share-buttons'];
|
||||
|
||||
if ( undefined !== sticky && 'sop' === firstProduct && sticky.enabled ) {
|
||||
firstProduct = 'sticky';
|
||||
}
|
||||
|
||||
if ( undefined !== inline && 'sop' === firstProduct && inline.enabled ) {
|
||||
firstProduct = 'inline';
|
||||
}
|
||||
|
||||
if ( undefined === inline && undefined === sticky ) {
|
||||
firstProduct = 'inline';
|
||||
config = { 'inline': { alignment: 'center',
|
||||
enabled: true,
|
||||
font_size: 11,
|
||||
labels: 'cta',
|
||||
min_count: 10,
|
||||
padding: 8,
|
||||
radius: 4,
|
||||
networks: ['facebook', 'twitter', 'pinterest', 'email', 'sms', 'sharethis'],
|
||||
show_total: true,
|
||||
size: 32,
|
||||
spacing: 8,
|
||||
language: 'en',
|
||||
} };
|
||||
}
|
||||
|
||||
$( '#sharethis-properties' ).append( '<option data-first="' + firstProduct + '" data-config="' + JSON.stringify( config ).replace( /"/g, "'" ) + '" data-prop="' + value._id + '" value="' + value.secret + '">' + value.domain + '</option>' );
|
||||
} );
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
/**
|
||||
* Set button configurations
|
||||
*/
|
||||
setButtonConfig: function( secret, propertyid, token, type ) {
|
||||
var button = this.data.firstButton,
|
||||
config = this.data.buttonConfig,
|
||||
self = this,
|
||||
gdprEnabled = $( '#gdpr-checkbox' ).attr( 'checked' );
|
||||
|
||||
if ( 'create' === type ) {
|
||||
config = this.$createConfig;
|
||||
button = 'inline';
|
||||
}
|
||||
|
||||
// Make sure info is in proper case type.
|
||||
if ( 'inline' === button ) {
|
||||
config[ button ].size = parseInt( config[ button ].size );
|
||||
config[ button ].padding = parseInt( config[ button ].padding );
|
||||
config[ button ]['font_size'] = parseInt( config[ button ]['font_size'] );
|
||||
}
|
||||
|
||||
// Make sure radius is sent in proper format.
|
||||
config[ button ].radius = parseInt( config[ button ].radius.toString().replace( 'px', '' ) );
|
||||
|
||||
// Remove the preview override for mobile buttons.
|
||||
delete config[ button ]['show_mobile_buttons'];
|
||||
|
||||
// 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: JSON.stringify( {
|
||||
'secret': secret,
|
||||
'id': propertyid,
|
||||
'product': button + '-share-buttons',
|
||||
'config': config[ button ]
|
||||
} )
|
||||
} ).always( function( results ) {
|
||||
|
||||
if ( 'create' === type ) {
|
||||
button = 'sticky';
|
||||
|
||||
$.ajax( {
|
||||
url: 'https://platform-api.sharethis.com/v1.0/property/product',
|
||||
method: 'POST',
|
||||
async: false,
|
||||
contentType: 'application/json; charset=utf-8',
|
||||
data: JSON.stringify( {
|
||||
'secret': secret,
|
||||
'id': propertyid,
|
||||
'product': button + '-share-buttons',
|
||||
'config': config[ button ]
|
||||
} )
|
||||
} ).always( function( results ) {
|
||||
} );
|
||||
}
|
||||
|
||||
if ( gdprEnabled ) {
|
||||
self.enableGDPR( token, propertyid );
|
||||
} else {
|
||||
window.location = '?page=sharethis-share-buttons';
|
||||
}
|
||||
} );
|
||||
},
|
||||
|
||||
/**
|
||||
* Enable GDPR Compliance Tool
|
||||
*/
|
||||
enableGDPR: function ( token, property ) {
|
||||
var config = {
|
||||
color: '#09cd18',
|
||||
display: 'always',
|
||||
enabled: true,
|
||||
language: 'en',
|
||||
publisher_name: '',
|
||||
publisher_purposes: [],
|
||||
scope: 'publisher'
|
||||
},
|
||||
self = this;
|
||||
|
||||
// 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: JSON.stringify( {
|
||||
'token': token,
|
||||
'id': property,
|
||||
'product': 'gdpr-compliance-tool-v2',
|
||||
'config': config
|
||||
} )
|
||||
} ).always( function ( configResults ) {
|
||||
wp.ajax.post( 'set_gdpr_config', {
|
||||
config: config,
|
||||
first: true,
|
||||
nonce: self.data.nonce
|
||||
} ).always( function( results ) {
|
||||
window.location = '?page=sharethis-share-buttons';
|
||||
} );
|
||||
} );
|
||||
},
|
||||
|
||||
/**
|
||||
* Check if ad blocker exists and notify if so.
|
||||
*/
|
||||
checkAdBlock: function() {
|
||||
$(document).ready(function(){
|
||||
if($("#detectadblock").height() > 0) {
|
||||
} else {
|
||||
$('#adblocker-notice').show();
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
} )( window.jQuery, window.wp );
|
Reference in New Issue
Block a user