| Server IP : 188.114.96.2 / Your IP : 104.23.197.230 Web Server : Apache/2.4.59 (Debian) System : Linux EDL-STRETCH 4.19.0-27-amd64 #1 SMP Debian 4.19.316-1 (2024-06-25) x86_64 User : edlftp ( 1002) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/nicolasj/temp/fusion-builder/js/models/ |
Upload File : |
/* global fusionAllElements */
var FusionPageBuilder = FusionPageBuilder || {};
( function( $ ) {
$( document ).ready( function() {
var fusionElements = [],
fusionGeneratorElements = [];
// Loop over all available elements and add them to Fusion Builder.
// Ignore elements tagged with 'hide_from_builder' attribute.
_.each( fusionAllElements, function( element ) {
var newElement;
if ( 'undefined' === typeof element.hide_from_builder ) {
newElement = {
title: element.name,
label: element.shortcode
};
if ( 'undefined' === typeof element.generator_only ) {
fusionElements.push( newElement );
} else {
newElement.generator_only = true;
}
fusionGeneratorElements.push( newElement );
}
} );
//Sort elements alphabetically
fusionElements.sort( function( a, b ) {
var titleA = a.title.toLowerCase(),
titleB = b.title.toLowerCase();
if ( titleA < titleB ) {
return -1;
}
if ( titleA > titleB ) {
return 1;
}
return 0;
} );
// Sort generator elements alphabetically
fusionGeneratorElements.sort( function( a, b ) {
var titleA = a.title.toLowerCase(),
titleB = b.title.toLowerCase();
if ( titleA < titleB ) {
return -1;
}
if ( titleA > titleB ) {
return 1;
}
return 0;
} );
FusionPageBuilder.ViewManager = Backbone.Model.extend( {
defaults: {
modules: fusionElements,
generator_elements: fusionGeneratorElements,
elementCount: 0,
views: {}
},
getView: function( cid ) {
return this.get( 'views' )[ cid ];
},
getChildViews: function( parentID ) {
var views = this.get( 'views' ),
childViews = {};
_.each( views, function( view, key ) {
if ( parentID === view.model.attributes.parent ) {
childViews[ key ] = view;
}
} );
return childViews;
},
generateCid: function() {
var elementCount = this.get( 'elementCount' ) + 1;
this.set( { elementCount: elementCount } );
return elementCount;
},
addView: function( cid, view ) {
var views = this.get( 'views' );
views[ cid ] = view;
this.set( { views: views } );
},
removeView: function( cid ) {
var views = this.get( 'views' ),
updatedViews = {};
_.each( views, function( value, key ) {
if ( key != cid ) { // jshint ignore:line
updatedViews[ key ] = value;
}
} );
this.set( { views: updatedViews } );
},
removeViews: function() {
var updatedViews = {};
this.set( { views: updatedViews } );
},
countElementsByType: function( elementType ) {
var views = this.get( 'views' ),
num = 0;
_.each( views, function( view ) {
if ( view.model.attributes.type === elementType ) {
num++;
}
} );
return num;
}
} );
window.FusionPageBuilderViewManager = new FusionPageBuilder.ViewManager(); // jshint ignore:line
} );
}( jQuery ) );