Files
roi-theme/wp-content/plugins/thrive-ultimatum/tcb-bridge/assets/js/internal/_utils.js
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

199 lines
5.2 KiB
JavaScript
Executable File

/**
* Created by Ovidiu on 7/21/2017.
*/
(function ( $ ) {
module.exports = {
tpl_ajax: function ( data, ajax_param, no_loader ) {
var params = {
type: 'post',
dataType: 'json',
url: tve_ult_page_data.ajaxurl
};
if ( typeof no_loader === 'undefined' || ! no_loader ) {
TVE.main.overlay();
}
data.action = tve_ult_page_data.tpl_action;
data.design_id = data.design_id || tve_ult_page_data.design_id;
data.post_id = tve_ult_page_data.post_id;
data.security = tve_ult_page_data.security;
params.data = data;
if ( ajax_param ) {
for ( var k in ajax_param ) {
params[k] = ajax_param[k];
}
}
return jQuery.ajax( params, data );
},
/**
* actions related to a state
* @param data
* @param ajax_param
* @returns {*}
*/
state_ajax: function ( data, ajax_param ) {
var params = {
type: 'post',
dataType: 'json',
url: tve_ult_page_data.ajaxurl
};
data.action = tve_ult_page_data.state_action;
data.design_id = data.design_id || tve_ult_page_data.design_id;
data.post_id = tve_ult_page_data.post_id;
data.security = tve_ult_page_data.security;
params.data = data;
if ( ajax_param ) {
for ( var k in ajax_param ) {
params[k] = ajax_param[k];
}
}
return jQuery.ajax( params, data );
},
stateResponse: function ( response, self ) {
if ( ! response || response.success === false ) {
var _msg = 'Something went wrong';
if ( response && response.success === false ) {
_msg += ': ' + response.message;
}
TVE.page_message( _msg, true );
TVE.main.overlay( 'close' );
return;
}
/**
* Insert response only if main page content is returned.
*/
if ( response.main_page_content ) {
self.insertResponse( response );
}
jQuery( '.design-states' ).replaceWith( response.state_bar );
TVE.main.overlay( 'close' );
},
insertResponse: function ( response ) {
if ( ! response || response.success === false ) {
TVE.page_message( 'Something went wrong' + (
response && response.success === false ? ': ' + response.message : ''
), true );
setTimeout( function () {
TVE.main.overlay( 'close' );
}, 1 );
return;
}
/**
* callback to be applied when all css files are loaded and available
*/
function on_resources_loaded() {
/**
* javascript page data
*/
tve_ult_page_data = jQuery.extend( tve_ult_page_data, response.tve_ult_page_data, true );
/**
* javascript params that need updating
*/
TVE.CONST = jQuery.extend( TVE.CONST, response.tve_path_params, true );
TVE.inner_$( '#tve-ult-editor-replace' ).replaceWith( response.main_page_content );
TVE.Editor_Page.initEditorActions();
}
/**
* browser-compliant way of accessing stylesheet rules
*/
var sheet, cssRules, _link = document.createElement( 'link' );
if ( 'sheet' in _link ) {
sheet = 'sheet';
cssRules = 'cssRules';
} else {
sheet = 'styleSheet';
cssRules = 'rules';
}
/** custom CSS */
TVE.inner_$( '.tve_custom_style,.tve_user_custom_style' ).remove();
TVE.CSS_Rule_Cache.clear();
/**
* Clear also the Global Rules
*/
TVE.USE_GLOBALSHEET = true;
TVE.CSS_Rule_Cache.clear();
TVE.USE_GLOBALSHEET = false;
if ( response.custom_css && response.custom_css.length ) {
TVE.inner_$( 'head' ).append( response.custom_css );
}
/**
* Refresh the style node
*/
TVE.Editor_Page.content_manager.refresh_global_style_node();
/**
* checks if all the added CSS <link> elements are available (finished loading and applied)
*
* @param {jQuery} $jq_links collection of added <link> nodes
* @param {Function} complete_callback
*/
function check_loaded( $jq_links, complete_callback ) {
var all_loaded = true;
window.tvu_loaded_count = window.tvu_loaded_count || 1;
window.tvu_loaded_count ++;
$jq_links.each( function () {
/** firefox throws an Error when testing this condition and the css is not loaded yet */
try {
if ( ! this[sheet] || ! this[sheet][cssRules] || ! this[sheet][cssRules].length ) {
all_loaded = false;
return false; // break the loop
}
} catch ( e ) {
all_loaded = false;
return false;
}
} );
if ( all_loaded || window.tvu_loaded_count > 40 ) {
complete_callback();
} else {
setTimeout( function () {
check_loaded( $jq_links, complete_callback );
}, 500 );
}
}
var found = false,
$css_list = jQuery();
TVE.inner_$.each( response.css, function ( _id, href ) {
if ( ! TVE.inner_$( 'link#' + _id + '-css' ).length ) {
found = true;
var $link = TVE.inner_$( '<link />', {
rel: 'stylesheet',
type: 'text/css',
id: _id + '-css',
href: href
} ).appendTo( 'head' );
/* for some reason, <link>s from google fonts always have empty cssRules fields - we cannot be sure when those are loaded using the check_loaded function */
if ( href.indexOf( 'fonts.googleapis' ) === - 1 ) {
$css_list = $css_list.add( $link );
}
}
} );
if ( found ) {
check_loaded( $css_list, on_resources_loaded );
} else {
on_resources_loaded()
}
}
}
})( jQuery );