gocodebox/lifterlms

View on GitHub
assets/js/builder/Collections/Sections.js

Summary

Maintainability
A
1 hr
Test Coverage
/**
 * Sections Collection
 *
 * @since    3.16.0
 * @version  3.16.0
 */
define( [ 'Models/Section' ], function( model ) {

    return Backbone.Collection.extend( {

        /**
         * Model for collection items
         *
         * @type  obj
         */
        model: model,

        /**
         * Initialize
         *
         * @return   void
         * @since    3.16.0
         * @version  3.16.0
         */
        initialize: function() {

            var self = this;

            // reorder called by SectionList view when sortable drops occur
            this.on( 'reorder', this.update_order );

            // when a section is added or removed, update order
            this.on( 'add', this.update_order );
            this.on( 'remove', this.update_order );

        },

        /**
         * Update the order attr of each section in the list to reflect the order of the collection
         *
         * @return   void
         * @since    3.16.0
         * @version  3.16.0
         */
        update_order: function() {

            var self = this;

            this.each( function( section ) {

                section.set( 'order', self.indexOf( section ) + 1 );

            } );

        },

    } );

} );