File "vc_tta_section.js"
Full Path: /home/siazco/grocery.siazco.se/wp-content/plugins/js_composer/assets/js/frontend_editor/shortcodes/tta/vc_tta_section.js
File size: 6.64 KB
MIME-type: text/plain
Charset: utf-8
(function ( $ ) {
'use strict';
window.vc.ttaSectionActivateOnClone = false;
window.InlineShortcodeView_vc_tta_section = window.InlineShortcodeViewContainerWithParent.extend( {
events: {
'click > .vc_controls [data-vc-control="destroy"]': 'destroy',
'click > .vc_controls [data-vc-control="edit"]': 'edit',
'click > .vc_controls [data-vc-control="clone"]': 'clone',
'click > .vc_controls [data-vc-control="copy"]': 'copy',
'click > .vc_controls [data-vc-control="paste"]': 'paste',
'click > .vc_controls [data-vc-control="prepend"]': 'prependElement',
'click > .vc_controls [data-vc-control="append"]': 'appendElement',
'click > .vc_controls [data-vc-control="parent.destroy"]': 'destroyParent',
'click > .vc_controls [data-vc-control="parent.edit"]': 'editParent',
'click > .vc_controls [data-vc-control="parent.clone"]': 'cloneParent',
'click > .vc_controls [data-vc-control="parent.copy"]': 'copyParent',
'click > .vc_controls [data-vc-control="parent.paste"]': 'pasteParent',
'click > .vc_controls [data-vc-control="parent.append"]': 'addSibling',
'click .vc_tta-panel-body > [data-js-panel-body].vc_empty-element': 'appendElement',
'click > .vc_controls .vc_control-btn-switcher': 'switchControls',
'mouseenter': 'resetActive',
'mouseleave': 'holdActive'
},
controls_selector: '#vc_controls-template-vc_tta_section',
previousClasses: false,
activeClass: 'vc_active',
render: function () {
var model = this.model;
window.InlineShortcodeView_vc_tta_section.__super__.render.call( this );
_.bindAll( this, 'bindAccordionEvents' );
this.refreshContent();
this.moveClasses();
_.defer( this.bindAccordionEvents );
if ( this.isAsActiveSection() ) {
window.vc.frame_window.vc_iframe.addActivity( function () {
var $accordion = window.vc.frame_window.jQuery(
'[data-vc-accordion][data-vc-target="[data-model-id=' + model.get( 'id' ) + ']"]' );
$accordion.trigger( 'click' );
} );
}
return this;
},
allowAddControl: function () {
return vc_user_access().shortcodeAll( 'vc_tta_section' );
},
clone: function ( e ) {
vc.ttaSectionActivateOnClone = true;
window.InlineShortcodeView_vc_tta_section.__super__.clone.call( this, e );
},
copy: function ( e ) {
vc.ttaSectionActivateOnClone = true;
window.InlineShortcodeView_vc_tta_section.__super__.copy.call( this, e );
},
paste: function ( e ) {
vc.ttaSectionActivateOnClone = true;
window.InlineShortcodeView_vc_tta_section.__super__.paste.call( this, e );
},
addSibling: function ( e ) {
window.InlineShortcodeView_vc_tta_section.__super__.addSibling.call( this, e );
},
parentChanged: function () {
window.InlineShortcodeView_vc_tta_section.__super__.parentChanged.call( this );
this.refreshContent( true );
return this;
},
changed: function () {
if ( this.allowAddControlOnEmpty() && 0 === this.$el.find( '.vc_element[data-tag]' ).length ) {
this.$el.addClass( 'vc_empty' ).find( '.vc_tta-panel-body > [data-js-panel-body]' ).addClass(
'vc_empty-element' );
} else {
this.$el.removeClass( 'vc_empty' ).find( '.vc_tta-panel-body > [data-js-panel-body].vc_empty-element' ).removeClass(
'vc_empty-element' );
}
},
moveClasses: function () {
var panelClassName;
if ( this.previousClasses ) {
this.$el.get( 0 ).className = this.$el.get( 0 ).className.replace( this.previousClasses, "" );
}
panelClassName = this.$el.find( '.vc_tta-panel' ).get( 0 ).className;
this.$el.attr( 'data-vc-content', this.$el.find( '.vc_tta-panel' ).data( 'vcContent' ) );
this.previousClasses = panelClassName;
this.$el.find( '.vc_tta-panel' ).get( 0 ).className = "";
this.$el.get( 0 ).className = this.$el.get( 0 ).className + " " + this.previousClasses;
// Fix data-vc-target for accordions:
this.$el.find( '.vc_tta-panel-title [data-vc-target]' ).attr( 'data-vc-target',
'[data-model-id=' + this.model.get( 'id' ) + ']' );
},
refreshContent: function ( noSectionUpdate ) {
var $controlsIcon, $controlsIconsPositionEl, parentModel, parentParams, paramsMap, parentLayout;
parentModel = vc.shortcodes.get( this.model.get( 'parent_id' ) );
if ( _.isObject( parentModel ) ) {
paramsMap = vc.getDefaultsAndDependencyMap( parentModel.get( 'shortcode' ) );
parentParams = _.extend( {}, paramsMap.defaults, parentModel.get( 'params' ) );
$controlsIcon = this.$el.find( '.vc_tta-controls-icon' );
if ( parentParams && !_.isUndefined( parentParams.c_icon ) && 0 < parentParams.c_icon.length ) {
if ( $controlsIcon.length ) {
$controlsIcon.attr( 'data-vc-tta-controls-icon', parentParams.c_icon );
} else {
this.$el.find( '[data-vc-tta-controls-icon-wrapper]' ).append(
$( '<i class="vc_tta-controls-icon" data-vc-tta-controls-icon="' + parentParams.c_icon + '"></i>' )
);
}
if ( !_.isUndefined( parentParams.c_position ) && 0 < parentParams.c_position.length ) {
$controlsIconsPositionEl = this.$el.find( '[data-vc-tta-controls-icon-position]' );
if ( $controlsIconsPositionEl.length ) {
if('default' === parentParams.c_position) {
$controlsIconsPositionEl.attr( 'data-vc-tta-controls-icon-position',
'rtl' === $('html').attr('dir') ? 'right' : 'left');
} else {
$controlsIconsPositionEl.attr( 'data-vc-tta-controls-icon-position',
parentParams.c_position );
}
}
}
} else {
$controlsIcon.remove();
this.$el.find( '[data-vc-tta-controls-icon-position]' ).attr( 'data-vc-tta-controls-icon-position',
'' );
}
if ( true !== noSectionUpdate && parentModel.view && parentModel.view.sectionUpdated ) {
parentModel.view.sectionUpdated( this.model );
}
}
},
setAsActiveSection: function ( isActive ) {
this.model.set( 'isActiveSection', !!isActive );
},
isAsActiveSection: function () {
return !!this.model.get( 'isActiveSection' );
},
bindAccordionEvents: function () {
var that = this;
window.vc.frame_window.jQuery( '[data-vc-target="[data-model-id=' + this.model.get( 'id' ) + ']"]' )
.on( 'show.vc.accordion hide.vc.accordion',
function ( e ) {
that.setAsActiveSection( 'show' === e.type );
} );
},
destroy: function ( e ) {
var parentModel, parentId;
parentId = this.model.get( 'parent_id' );
window.InlineShortcodeView_vc_tta_section.__super__.destroy.call( this, e );
parentModel = vc.shortcodes.get( parentId );
if ( !vc.shortcodes.where( { parent_id: parentId } ).length ) {
parentModel.destroy();
} else {
if ( parentModel.view && parentModel.view.removeSection ) {
parentModel.view.removeSection( this.model.get( 'id' ) );
}
}
}
} );
})( window.jQuery );