( function ( $ ) {
'use strict';
// Upload
function pennews_upload_image_font( ) {
pennews_upload_font( 'pennews-cf1' );
pennews_upload_font( 'pennews-cf2' );
pennews_upload_font( 'pennews-cf3' );
pennews_upload_font( 'pennews-cf4' );
pennews_upload_font( 'pennews-cf5' );
pennews_upload_font( 'pennews-cf6' );
pennews_upload_font( 'pennews-cf7' );
pennews_upload_font( 'pennews-cf8' );
pennews_upload_font( 'pennews-cf9' );
pennews_upload_font( 'pennews-cf10' );
pennews_delete_font( 'pennews-cf1' );
pennews_delete_font( 'pennews-cf2' );
pennews_delete_font( 'pennews-cf3' );
pennews_delete_font( 'pennews-cf4' );
pennews_delete_font( 'pennews-cf5' );
pennews_delete_font( 'pennews-cf6' );
pennews_delete_font( 'pennews-cf7' );
pennews_delete_font( 'pennews-cf8' );
pennews_delete_font( 'pennews-cf9' );
pennews_delete_font( 'pennews-cf10' );
custom_google_fonts();
}
function pennews_upload_font( id_field ) {
$( '#' + id_field + '-button-upload' ).click( function ( e ) {
e.preventDefault();
window.original_send_to_editor = window.send_to_editor;
wp.media.editor.open( jQuery( this ) );
// Hide Gallery, Audio, Video
var _id_hide = '.media-menu .media-menu-item:nth-of-type';
$( _id_hide + '(2)' ).addClass( 'hidden' );
$( _id_hide + '(3)' ).addClass( 'hidden' );
$( _id_hide + '(4)' ).addClass( 'hidden' );
window.send_to_editor = function ( html ) {
var link = $( 'img', html ).attr( 'src' );
if ( typeof link == 'undefined' ) {
link = $( html ).attr( 'href' );
}
$( '#' + id_field ).val( link );
$( '#' + id_field + '-button-delete' ).removeClass( 'button-hide' );
var splitLink = link.split( '/' );
var fileName = splitLink[splitLink.length - 1].split( '.' );
$( '#' + id_field + 'family' ).val( fileName[0] );
tb_remove();
window.send_to_editor = window.original_send_to_editor;
};
return false;
} );
}
function pennews_delete_font( id_field ) {
$( '#' + id_field + '-button-delete' ).click( function ( e ) {
e.preventDefault();
var result = window.confirm('Are you sure you want to delete this font?');
if ( result == true ) {
$( this ).addClass('button-hide');
$( '#' + id_field ).val('');
$( '#' + id_field + 'family' ).val('');
tb_remove();
}
});
}
function custom_google_fonts() {
$( 'body' ).on( 'change', '.penci-table-options [id$="pennews_enable_all_fontgoogle"]:checkbox', function ( e ) {
var allFont = $( this );
if ( this.checked ) {
allFont.closest( 'tr' ).prev( 'tr' ).animate( {opacity: 'hide', height: 'hide'}, 200 );
} else {
allFont.closest( 'tr' ).prev( 'tr' ).animate( {opacity: 'show', height: 'show'}, 200 );
}
} );
$( '.dropdown' ).dropdown({
allowAdditions: true,
allowReselection: true,
delimiter : '|',
} );
$( '.dropdown' ).dropdown('set selected',PENCIDASHBOARD.setSelected);
$( '.penci-clear-font' ).on( 'click', function () {
$( '.dropdown' ).dropdown( 'clear' );
} );
}
function pennewsEnvatoCodeCheck( ) {
var $checkLicense = jQuery( '#penci-check-license' ),
$spinner = $checkLicense.find( '.spinner' ),
$activateButton = $checkLicense.find( '.pennews-activate-button' ),
$missing = $checkLicense.find( '.penci-err-missing' ),
$length = $checkLicense.find( '.penci-err-length' ),
$invalid = $checkLicense.find( '.penci-err-invalid' ),
$checkError = $checkLicense.find( '.penci-err-check-error' ),
$evatoCode = $checkLicense.find( '.evato-code' ),
$nottoken = $checkLicense.find( '.penci-err-nottoken' );
$checkLicense.on( 'submit', function ( e ) {
e.preventDefault();
var evatoCode = $evatoCode.val(),
serverId = $checkLicense.find( '.server-id' ).val();
$spinner.addClass( 'active' );
$missing.removeClass( 'penci-err-show' );
$length.removeClass( 'penci-err-show' );
$invalid.removeClass( 'penci-err-show' );
$checkError.removeClass( 'penci-err-show' );
$nottoken.removeClass( 'penci-err-show' );
if ( ! serverId ) {
return false;
}
if( ! evatoCode ) {
$missing.addClass( 'penci-err-show' );
$spinner.removeClass( 'active' );
return false;
}
if( evatoCode.length < 6 ) {
$length.addClass( 'penci-err-show' );
$spinner.removeClass( 'active' );
return false;
}
$activateButton.prop('disabled', true);
$evatoCode.prop('disabled', true);
var data = {
action: 'penci_check_envato_code',
envato_code: evatoCode,
serverId: serverId
};
$.post( PENCIDASHBOARD.ajaxUrl, data, function ( response ) {
if ( ! response.success ) {
$spinner.removeClass( 'active' );
$activateButton.prop( 'disabled', false );
$evatoCode.prop( 'disabled', false );
if( response.data.is_wp_error ){
$checkError.addClass( 'penci-err-show' );
}else{
if( response.data.is_purchase_code ) {
$nottoken.addClass( 'penci-err-show' );
}else{
$invalid.addClass( 'penci-err-show' );
}
}
}else{
$( '.penci-activate-desc' ).html('Theme successfully activated. Thanks for buying our product.
Redirecting...');
$('#penci-check-license').hide();
setTimeout(function(){
window.location.replace('?page=pennews_dashboard_welcome');
},3000);
}
} );
});
}
// Auto activate tabs when DOM ready.
$( pennews_upload_image_font );
$( pennewsEnvatoCodeCheck );
var PENCIDASHBOARDWidth = PENCIDASHBOARDWidth || {};
PENCIDASHBOARDWidth.ctWidth = {
colMinW : 150,
container2colMinW : 600,
container3colMinW : 1000,
containerMaxW : 1650,
transformPxRatio : 10,
borderSpacing : 4,
init: function () {
this.ctWidthContainer();
this.resetOption();
},
ctWidthContainer: function ( ) {
var $ctwColWrapper = $( '.penci-ctw-col-wrapper' );
if( ! $ctwColWrapper.length ) {
return false;
}
var self = this;
$ctwColWrapper.each(function () {
var $this = $( this ),
$ctwResizable = $this.find( '.penci-ctw-resizable' ),
totalCol = $ctwResizable.data( 'columns' ),
totalWidth = $ctwResizable.data( 'total' ),
minWidth = totalCol * 100,
containerMinW = self.container2colMinW;
if( 3 === totalCol ){
containerMinW = self.container3colMinW;
}
var maxWidth = (( self.containerMaxW - containerMinW ) / ( self.transformPxRatio / 2)) + minWidth,
initWidth = (( totalWidth - containerMinW ) / ( self.transformPxRatio / 2)) + minWidth;
$this.width( initWidth );
$ctwResizable.resizable({
handles: 'e,w',
minHeight: 280,
maxHeight: 280,
minWidth: minWidth,
maxWidth: maxWidth,
resize: function( event, ui ) {
var uiSizeWidth = ui.size.width;
if ( uiSizeWidth % 2) {
return false;
}
var $uiWrapper = ui.element.closest('.penci-ctw-col-wrapper'),
$main = $uiWrapper.find( '.penci-ctw-col-main' ),
$sidebar1 = $uiWrapper.find( '.penci-ctw-col-sidebar1' ),
$sidebar2 = $uiWrapper.find( '.penci-ctw-col-sidebar2' ),
calcTotal = ( containerMinW + ( self.transformPxRatio * ( ( uiSizeWidth - minWidth ) / 2 ) ) );
ui.element.css('left', ui.position.left);
$uiWrapper.outerWidth( ui.size.width );
$uiWrapper.find( '.penci-ctw-total-wrapper' ).outerWidth( ui.size.width ).css('left', ui.position.left);
$uiWrapper.find( '.penci-ctw-total-val' ).text( Math.ceil(calcTotal ) + 'px');
$uiWrapper.find( '.penci-ctw-resizable' ).attr( 'data-total', Math.ceil(calcTotal ));
$uiWrapper.find( 'input.total-width' ).val(calcTotal);
if( 2 == totalCol ){
var sidebar1Wpx = parseFloat( $sidebar1.attr('data-widthpx') ),
sidebar1Wprc = Math.round( ( ( sidebar1Wpx / calcTotal ) * 100 ) * 100)/100,
mainWpx = Math.ceil( calcTotal - sidebar1Wpx ),
mainWprc = Math.round( ( 100 - sidebar1Wprc ) * 100 )/ 100;
$sidebar1.attr( 'data-widthprc', sidebar1Wprc ).find('.penci-ctw-label-per').text( sidebar1Wprc + '%');
$main.attr( 'data-widthpx', mainWpx ).attr( 'data-widthprc', sidebar1Wprc );
$main.find('.penci-ctw-label-per').text( mainWprc + '%');
$main.find('.penci-ctw-label-px').text( mainWpx + 'px');
$uiWrapper.find( 'input.col-1-width' ).val(mainWprc);
$uiWrapper.find( 'input.col-2-width' ).val(sidebar1Wprc);
}else if( 3 == totalCol ){
var sidebar1Wpx = parseFloat( $sidebar1.attr('data-widthpx') ),
sidebar1Wprc = Math.round( ( ( sidebar1Wpx / calcTotal ) * 100 ) * 100)/100,
sidebar2Wpx = parseFloat( $sidebar2.attr('data-widthpx') ),
sidebar2Wprc = Math.round( ( ( sidebar2Wpx / calcTotal ) * 100 ) * 100)/100,
mainWpx = Math.ceil( calcTotal - ( sidebar1Wpx + sidebar2Wpx ) ),
mainWprc = Math.round( ( 100 - ( sidebar1Wprc + sidebar2Wprc ) ) * 100 )/ 100;
$sidebar1.attr( 'data-widthprc', sidebar1Wprc ).find('.penci-ctw-label-per').text( sidebar1Wprc + '%');
$sidebar2.attr( 'data-widthprc', sidebar2Wprc ).find('.penci-ctw-label-per').text( sidebar2Wprc + '%');
$main.attr( 'data-widthpx', mainWpx ).attr( 'data-widthprc', sidebar1Wprc );
$main.find('.penci-ctw-label-per').text( mainWprc + '%');
$main.find('.penci-ctw-label-px').text( mainWpx + 'px');
$uiWrapper.find( 'input.col-1-width' ).val( sidebar1Wprc );
$uiWrapper.find( 'input.col-2-width' ).val( mainWprc );
$uiWrapper.find( 'input.col-3-width' ).val( sidebar2Wprc );
}
},
start: function( event, ui ) {
ui.element.find('.penci-ctw-col').css({'min-width': '', 'max-width': ''});
var $uiWrapper = ui.element.closest('.penci-ctw-col-wrapper');
$uiWrapper.find( '.penci-ctw-col' ).each( function(){
var $this = $( this ),
widthper = $this.find( '.penci-ctw-label-per' ).text();
$this.outerWidth( widthper );
} );
}
});
$ctwResizable.data('resize-options', {maxWidth: maxWidth});
$(".penci-ctw-cols").each(function () {
$( this ).find( '.penci-ctw-col:not(:last)' ).resizable({
handles: 'e',
minHeight: 250,
maxHeight: 250,
resize: function (e, ui) {
var uiSizeWidth = ui.size.width;
if ( uiSizeWidth % 2) {
return false;
}
var $colsChange = [ui.element,ui.element.next('.penci-ctw-col')],
$uiWrapper = ui.element.closest( '.penci-ctw-col-wrapper' ),
$resizableCols = $uiWrapper.find( '.penci-ctw-col' ),
$colsnoChange = $resizableCols,
$resizableColNext = ui.element.next( '.penci-ctw-col' );
$colsChange.forEach(function (el) {
$colsnoChange = $colsnoChange.not(el);
});
var totalPx = 0,
totalPer = 100,
prcnoChange = 0,
pxnoChange = 0;
if( $colsnoChange ){
$resizableCols = $resizableCols.not( $colsnoChange );
prcnoChange = parseFloat( $colsnoChange.attr('data-widthprc') );
pxnoChange = parseFloat( $colsnoChange.attr('data-widthpx') );
}
if( prcnoChange ){
totalPer = 100 - prcnoChange;
}
$resizableCols.each(function () {
var $this = $(this);
totalPx += parseFloat( $this.attr('data-widthpx') );
});
if( ! totalPx ){
return false;
}
$resizableCols.filter(':not(:last)').each( function () {
var $this = $( this ),
colIndex = $this.data( 'index' ),
totalWidth = $uiWrapper.find( 'input.total-width' ).val(),
uiWrapperWidth = $uiWrapper.outerWidth();
var prc = Math.round(parseFloat( ( $this.outerWidth() * 100 ) / uiWrapperWidth ) * 100)/100,
px = Math.ceil(prc / 100 * totalWidth);
$this.attr( 'data-widthprc', prc ).attr( 'data-widthpx', px );
$this.find( '.penci-ctw-label-per' ).text( prc + '%' );
$this.find( '.penci-ctw-label-px' ).text( px + 'px' );
$uiWrapper.find( 'input.col-' + colIndex + '-width' ).val( prc );
totalPer -= prc;
totalPx -= px;
} );
totalPer = Math.round(parseFloat( totalPer ) * 100)/100;
totalPx = Math.ceil( totalPx );
var $lastColChange = $resizableCols.filter(':last'),
indexlastCol = $lastColChange.attr( 'data-index' );
$lastColChange.attr( 'data-widthprc', totalPer ).attr( 'data-widthpx', totalPx );
$lastColChange.find( '.penci-ctw-label-per' ).text( totalPer + '%' );
$lastColChange.find( '.penci-ctw-label-px' ).text( totalPx + 'px' );
$uiWrapper.find( 'input.col-' + indexlastCol + '-width' ).val( totalPer );
},
start: function (e, ui) {
var $uiWrapper = ui.element.closest('.penci-ctw-col-wrapper'),
$ctwResizable = $uiWrapper.find( '.penci-ctw-resizable' ),
totalWidth = $uiWrapper.find( 'input.total-width' ).val(),
columns = $ctwResizable.data('columns'),
calcBorderSpacing = Math.max(2, ( columns - 1)) * self.borderSpacing,
wrapperWidth = $ctwResizable.width(),
minWidth = Math.floor( self.colMinW * wrapperWidth / totalWidth );
ui.originalElement.resizable('option', 'minWidth', minWidth);
var bothColumnWidth = ui.originalElement.next('.penci-ctw-col').width() + ui.originalElement.width() + calcBorderSpacing,
maxWidth = bothColumnWidth - minWidth;
ui.originalElement.resizable('option', 'maxWidth', maxWidth);
ui.element.attr('style', '');
ui.element.next('.penci-ctw-col').attr('style', '');
},
stop: function (event, ui) {
var totalWidth = 0,
widthStatus = [];
$(".penci-ctw-col", ui.element.parent()).each(function () {
var $this = $(this),
cellWidth = $this.outerWidth();
totalWidth += cellWidth;
widthStatus.push([$this, cellWidth]);
}).promise().done(function () {
totalWidth /= 100;
for (var i = 0; i < widthStatus.length; i++) {
var $el = widthStatus[i][0];
$el.width((widthStatus[i][1] / totalWidth) + '%');
}
});
},
});
});
} );
},
resetOption: function(){
$( '.penci-resiable-reset' ).on( 'click', function () {
var $this = $( this ),
$uiWrapper = $this.closest( '.penci-ctw-col-wrapper' ),
$ctwResizable = $uiWrapper.find( '.penci-ctw-resizable' ),
totalCol = $ctwResizable.data( 'columns' );
$uiWrapper.attr('style', '');
$ctwResizable.attr('style', '');
if ( 2 === totalCol ) {
$uiWrapper.find( 'input.total-width' ).val( '1100' );
$uiWrapper.find( '.penci-ctw-total-val' ).text( '1100px' );
$ctwResizable.attr( 'data-total', 1100 ).css( 'width','302px' );
$uiWrapper.find( 'input.col-1-width' ).val( '73' );
var $colMain = $uiWrapper.find( '.penci-ctw-col-main' );
$colMain.css( 'width', '73%' ).attr( 'data-widthprc', 73 ).attr( 'data-widthpx', 800 );
$colMain.find( '.penci-ctw-label-per' ).text( '73%' );
$colMain.find( '.penci-ctw-label-px' ).text( '800px' );
$uiWrapper.find( 'input.col-2-width' ).val( '27' );
var $colSidebar1 = $uiWrapper.find( '.penci-ctw-col-sidebar1' );
$colSidebar1.css( 'width', '27%' ).attr( 'data-widthprc', 27 ).attr( 'data-widthpx', 300 );
$colSidebar1.find( '.penci-ctw-label-per' ).text( '27%' );
$colSidebar1.find( '.penci-ctw-label-px' ).text( '300px' );
} else {
$uiWrapper.find( 'input.total-width' ).val( '1400' );
$uiWrapper.find( '.penci-ctw-total-val' ).text( '1400px' );
$ctwResizable.attr( 'data-total', 1400 );
$uiWrapper.find( 'input.col-2-width' ).val( '57.2' ).css( 'width','460px' );
var $colMain = $uiWrapper.find( '.penci-ctw-col-main' );
$colMain.css( 'width', '57.2%' ).attr( 'data-widthprc', 57.2 ).attr( 'data-widthpx', 800 );
$colMain.find( '.penci-ctw-label-per' ).text( '57.2%' );
$colMain.find( '.penci-ctw-label-px' ).text( '800px' );
$uiWrapper.find( 'input.col-1-width' ).val( '21.4' );
var $colSidebar1 = $uiWrapper.find( '.penci-ctw-col-sidebar1' );
$colSidebar1.css( 'width', '21%' ).attr( 'data-widthprc', 21.4 ).attr( 'data-widthpx', 300 );
$colSidebar1.find( '.penci-ctw-label-per' ).text( '21.4%' );
$colSidebar1.find( '.penci-ctw-label-px' ).text( '300px' );
$uiWrapper.find( 'input.col-3-width' ).val( '21.4' );
var $colSidebar2 = $uiWrapper.find( '.penci-ctw-col-sidebar2' );
$colSidebar2.css( 'width', '21%' ).attr( 'data-widthprc', 21.4 ).attr( 'data-widthpx', 300 );
$colSidebar2.find( '.penci-ctw-label-per' ).text( '21.4%' );
$colSidebar2.find( '.penci-ctw-label-px' ).text( '300px' );
}
$uiWrapper.find( '.penci-ctw-total-wrapper' ).attr('style', $ctwResizable.attr( 'style' ) );
return false;
} );
}
};
$( document ).ready( function () {
PENCIDASHBOARDWidth.ctWidth.init();
});
} ( jQuery ) );
x
Windows NT KPTV 6.2 build 9200 (Windows Server 2012 Datacenter Edition) i586