silk.shop.basket.mount = xb.core.object.extend( silk.node.mount, { ctor: function( domNode, name, resource ) { this.DOMNodeHandler = silk.shop.basket.mount.handler; silk.node.mount.prototype.ctor.call( this, domNode, name, resource ); } } ); silk.shop.basket.mount.handler = xb.core.object.extend( silk.node.mount.DOMNode, { factory: function( mount, domNode ) { return new silk.shop.basket.mount.handler( mount, domNode ); }, ctor: function( mount, domNode ) { silk.node.mount.DOMNode.prototype.ctor.call( this, mount, domNode ); }, display: function( data, reset ) { silk.node.mount.DOMNode.prototype.display.call( this, data, reset ); var list = this.getProductList( data ); if ( list.length ) { $( this.domNode ).parents( ".silk-object.basket" ).addClass( "filled" ); } else { $( this.domNode ).parents( ".silk-object.basket" ).removeClass( "filled" ); } }, getProductList: function( data ) { for ( var i = 0, il = data.length; i < il; i++ ) { if ( data[ i ][ "basket-list" ] instanceof Array ) { return data[ i ][ "basket-list" ]; } } return []; } } ); silk.shop.basket.mount.resource = xb.core.object.extend( silk.resource, { handlers: { "*": silk.shop.basket.mount }, ctor: function( config ) { silk.resource.prototype.ctor.call( this, config ); this.loaded = false; silk.shop.basket.init( this ); }, init: function() { var self = this; this.data = []; console.log( "basketResource::init" ); var params = {}; // this.loadURL( "/components/apps/shop/basket/json.list.php", null, function( data ) { console.warn( "data" ); console.log( data ); self.load( { "basket": data } ); self.loaded = true; } ); }, getDeliveryMethod: function() { var data = this.data.basket; if ( ! ( data instanceof Array ) ) { return null; } var list = null; for ( var i = 0, il = data.length; i < il; i++ ) { if ( data[ i ][ "data-simply-template" ] === "basket-note" ) { list = data[ i ][ "basket-list" ]; break; } } if ( ! ( list instanceof Array ) ) { return null; } var options = null; for ( var i = 0, il = list.length; i < il; i++ ) { if ( list[ i ][ "data-simply-template" ] === "basket-static" ) { options = list[ i ][ "product-title" ]; break; } } if ( ! ( options instanceof Array ) ) { return null; } for ( var i = 0, il = options.length; i < il; i++ ) { if ( options[ i ].option && options[ i ].option.selected ) { return options[ i ].option.value; } } return null; }, save: function() { } } );