250 lines
9.7 KiB
PHP
250 lines
9.7 KiB
PHP
<?php
|
|
// no direct access
|
|
if (! isset($data)) {
|
|
exit;
|
|
}
|
|
?>
|
|
<script type="text/javascript" data-wpacu-own-inline-script="true">
|
|
var wpacuContentLinks = document.getElementsByClassName('wpacu-assets-collapsible'),
|
|
wpacuInlineCodeContentLinks = document.getElementsByClassName('wpacu-assets-inline-code-collapsible'),
|
|
wpacuPluginToggleWrapLinks = document.getElementsByClassName('wpacu-plugin-contracted-wrap-link'),
|
|
wpacuI, wpacuITwo, wpacuIThree;
|
|
|
|
// "Styles" & "Scripts" main areas
|
|
for (wpacuI = 0; wpacuI < wpacuContentLinks.length; wpacuI++) {
|
|
wpacuContentLinks[wpacuI].addEventListener('click', function (e) {
|
|
e.preventDefault();
|
|
|
|
this.classList.toggle('wpacu-assets-collapsible-active');
|
|
|
|
var assetsListContent = this.nextElementSibling;
|
|
|
|
if (assetsListContent.style.maxHeight) {
|
|
assetsListContent.style.maxHeight = null;
|
|
} else {
|
|
//assetsListContent.style.maxHeight = assetsListContent.scrollHeight + "px";
|
|
assetsListContent.style.maxHeight = 'inherit';
|
|
}
|
|
});
|
|
}
|
|
|
|
// Inline code associated with the handle (expand)
|
|
for (wpacuITwo = 0; wpacuITwo < wpacuInlineCodeContentLinks.length; wpacuITwo++) {
|
|
wpacuInlineCodeContentLinks[wpacuITwo].addEventListener('click', function (e) {
|
|
e.preventDefault();
|
|
|
|
this.classList.toggle('wpacu-assets-inline-code-collapsible-active');
|
|
|
|
var assetInlineCodeContent = this.nextElementSibling;
|
|
assetInlineCodeContent = assetInlineCodeContent.nextElementSibling;
|
|
|
|
if (assetInlineCodeContent.style.maxHeight) {
|
|
assetInlineCodeContent.style.maxHeight = null;
|
|
} else {
|
|
assetInlineCodeContent.style.maxHeight = assetInlineCodeContent.scrollHeight + 'px';
|
|
}
|
|
});
|
|
}
|
|
|
|
for (wpacuIThree = 0; wpacuIThree < wpacuPluginToggleWrapLinks.length; wpacuIThree++) {
|
|
wpacuPluginToggleWrapLinks[wpacuIThree].addEventListener('click', function (e) {
|
|
e.preventDefault();
|
|
|
|
var wpacuNext = this.nextElementSibling;
|
|
|
|
if (this.classList.contains('wpacu-link-closed')) {
|
|
// Change Link Class
|
|
this.classList.remove('wpacu-link-closed');
|
|
this.classList.add('wpacu-link-open');
|
|
|
|
// Change Target Content Class
|
|
wpacuNext.classList.remove('wpacu-area-closed');
|
|
wpacuNext.classList.add('wpacu-area-open');
|
|
} else {
|
|
// Change Link Class
|
|
this.classList.remove('wpacu-link-open');
|
|
this.classList.add('wpacu-link-closed');
|
|
|
|
// Change Target Content Class
|
|
wpacuNext.classList.remove('wpacu-area-open');
|
|
wpacuNext.classList.add('wpacu-area-closed');
|
|
}
|
|
});
|
|
}
|
|
|
|
// Check if the contract / expand buttons exist (e.g. in view-default.php)
|
|
var $wpacuContractAllBtn = document.getElementById('wpacu-assets-contract-all'),
|
|
$wpacuExpandAllBtn = document.getElementById('wpacu-assets-expand-all');
|
|
|
|
if (typeof($wpacuContractAllBtn) != 'undefined' && $wpacuContractAllBtn != null) {
|
|
$wpacuContractAllBtn.addEventListener('click', function (e) {
|
|
e.preventDefault();
|
|
wpacuContractAllMainAreas();
|
|
});
|
|
}
|
|
|
|
if (typeof($wpacuExpandAllBtn) != 'undefined' && $wpacuExpandAllBtn != null) {
|
|
$wpacuExpandAllBtn.addEventListener('click', function (e) {
|
|
e.preventDefault();
|
|
wpacuExpandAllMainAreas();
|
|
});
|
|
}
|
|
|
|
function wpacuExpandAllMainAreas() {
|
|
var wpacuI, assetsListContent, wpacuContentLinks = document.getElementsByClassName('wpacu-assets-collapsible');
|
|
|
|
for (wpacuI = 0; wpacuI < wpacuContentLinks.length; wpacuI++) {
|
|
wpacuContentLinks[wpacuI].classList.add('wpacu-assets-collapsible-active');
|
|
assetsListContent = wpacuContentLinks[wpacuI].nextElementSibling;
|
|
//assetsListContent.style.maxHeight = assetsListContent.scrollHeight + 'px';
|
|
assetsListContent.style.maxHeight = 'inherit';
|
|
assetsListContent.classList.remove('wpacu-open');
|
|
}
|
|
}
|
|
|
|
function wpacuContractAllMainAreas() {
|
|
var wpacuI, assetsListContent, wpacuContentLinks = document.getElementsByClassName('wpacu-assets-collapsible');
|
|
|
|
for (wpacuI = 0; wpacuI < wpacuContentLinks.length; wpacuI++) {
|
|
wpacuContentLinks[wpacuI].classList.remove('wpacu-assets-collapsible-active');
|
|
assetsListContent = wpacuContentLinks[wpacuI].nextElementSibling;
|
|
assetsListContent.style.maxHeight = null;
|
|
}
|
|
}
|
|
|
|
function wpacuExpandAllInlineCodeAreas()
|
|
{
|
|
var wpacuIE,
|
|
assetInlineCodeContent,
|
|
wpacuInlineCodeContentLinks = document.getElementsByClassName('wpacu-assets-inline-code-collapsible');
|
|
|
|
for (wpacuIE = 0; wpacuIE < wpacuInlineCodeContentLinks.length; wpacuIE++) {
|
|
wpacuInlineCodeContentLinks[wpacuIE].classList.add('wpacu-assets-inline-code-collapsible-active');
|
|
assetInlineCodeContent = wpacuInlineCodeContentLinks[wpacuIE].nextElementSibling;
|
|
assetInlineCodeContent.style.maxHeight = assetInlineCodeContent.scrollHeight + 'px';
|
|
assetInlineCodeContent.classList.remove('wpacu-open');
|
|
}
|
|
}
|
|
|
|
<?php
|
|
// "Styles" and "Scripts"
|
|
if ($data['plugin_settings']['assets_list_layout_areas_status'] === 'contracted') {
|
|
?>
|
|
wpacuContractAllMainAreas();
|
|
<?php
|
|
} else {
|
|
?>
|
|
// Remove 'wpacu-open' and set the right max-height to ensure the click action below will work smoothly
|
|
wpacuExpandAllMainAreas();
|
|
<?php
|
|
}
|
|
|
|
// "Inline code associated with the handle" - Expand all
|
|
if ($data['plugin_settings']['assets_list_inline_code_status'] !== 'contracted') {
|
|
?>
|
|
wpacuExpandAllInlineCodeAreas();
|
|
<?php
|
|
}
|
|
?>
|
|
|
|
/* Source: http://bdadam.com/blog/automatically-adapting-the-height-textarea.html */
|
|
(function() {
|
|
function wpacuAdjustTextareaHeight(el, minHeight) {
|
|
// compute the height difference which is caused by border and outline
|
|
var outerHeight = parseInt(window.getComputedStyle(el).height, 10);
|
|
var diff = outerHeight - el.clientHeight;
|
|
|
|
// set the height to 0 in case of it has to be shrinked
|
|
el.style.height = 0;
|
|
|
|
// set the correct height
|
|
// el.scrollHeight is the full height of the content, not just the visible part
|
|
el.style.height = Math.max(minHeight, el.scrollHeight + diff) + 'px';
|
|
}
|
|
|
|
|
|
// We use the "data-wpacu-adapt-height" attribute as a marker
|
|
var wpacuTextAreas = [].slice.call(document.querySelectorAll('textarea[data-wpacu-adapt-height="1"]'));
|
|
|
|
// Iterate through all the textareas on the page
|
|
wpacuTextAreas.forEach(function(el) {
|
|
// we need box-sizing: border-box, if the textarea has padding
|
|
el.style.boxSizing = el.style.mozBoxSizing = 'border-box';
|
|
|
|
// we don't need any scrollbars, do we? :)
|
|
el.style.overflowY = 'hidden';
|
|
|
|
// the minimum height initiated through the "rows" attribute
|
|
var minHeight = el.scrollHeight;
|
|
|
|
el.addEventListener('input', function() {
|
|
wpacuAdjustTextareaHeight(el, minHeight);
|
|
});
|
|
|
|
// we have to readjust when window size changes (e.g. orientation change)
|
|
window.addEventListener('resize', function() {
|
|
wpacuAdjustTextareaHeight(el, minHeight);
|
|
});
|
|
|
|
// we adjust height to the initial content
|
|
wpacuAdjustTextareaHeight(el, minHeight);
|
|
});
|
|
}());
|
|
|
|
/* For Hardcoded Assets List */
|
|
jQuery(document).ready(function($) {
|
|
var $wpacuEl, $wpacuP, $wpacuUp, $wpacuPs, wpacuTotalHeight;
|
|
|
|
$(document).on('click', '.wpacu-has-view-more > p.wpacu-view-more-link-area > a', function (e) {
|
|
e.preventDefault();
|
|
//console.log('View more click...');
|
|
|
|
wpacuTotalHeight = 0;
|
|
|
|
$wpacuEl = $(this);
|
|
$wpacuP = $wpacuEl.parent();
|
|
$wpacuUp = $wpacuP.parent();
|
|
$wpacuPs = $wpacuUp.find('div');
|
|
|
|
// Measure how tall inside should be by adding together heights of all inside elements (except read-more)
|
|
$wpacuPs.each(function () {
|
|
wpacuTotalHeight += jQuery(this).outerHeight();
|
|
});
|
|
|
|
$wpacuUp.css({
|
|
// Set height to prevent instant jumpdown when max height is removed
|
|
'height': $wpacuUp.height(),
|
|
'max-height': 9999
|
|
}).animate({
|
|
'height': wpacuTotalHeight
|
|
}, function () {
|
|
$wpacuUp.css({'height': 'auto'});
|
|
});
|
|
|
|
// Fade out read-more
|
|
$wpacuP.fadeOut();
|
|
|
|
// Prevent jump-down
|
|
return false;
|
|
});
|
|
});
|
|
|
|
<?php
|
|
// [wpacu_lite]
|
|
if (! is_admin()) {
|
|
// Admin manages the list in the front-end view
|
|
$upgradeToProLink = apply_filters('wpacu_go_pro_affiliate_link', WPACU_PLUGIN_GO_PRO_URL.'?utm_source=manage_hardcoded_assets&utm_medium=go_pro_frontend');
|
|
?>
|
|
var wpacuElGoPro = document.getElementsByClassName('wpacu-manage-hardcoded-assets-requires-pro-popup');
|
|
|
|
for (var wpacuII = 0; wpacuII < wpacuElGoPro.length; wpacuII++) {
|
|
// Here we have the same onclick
|
|
wpacuElGoPro.item(wpacuII).onclick = function() {
|
|
window.location.replace('<?php echo esc_js($upgradeToProLink); ?>');
|
|
};
|
|
}
|
|
<?php
|
|
}
|
|
// [/wpacu_lite]
|
|
?>
|
|
</script>
|