~jonas-drange/online-services-common-js/navbar-autocomplete

« back to all changes in this revision

Viewing changes to build/musicstore-basket/musicstore-basket-min.js

  • Committer: Stephen Stewart
  • Date: 2014-02-22 23:57:25 UTC
  • mfrom: (18.1.2 trunk)
  • Revision ID: stephen.stewart@canonical.com-20140222235725-iw6f15t9umws19xd
mergeĀ lp:~stephen-stewart/online-services-common-js/remove-u1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
YUI.add("musicstore-basket",function(e,t){"use strict";function r(){r.superclass.constructor.apply(this,arguments)}var n=/https?:\/\/cdn\.7static\.com|https?:\/\/www\.7digital\.com/i;r.NAME="Basket",r.ATTRS={addForm:{value:".add-basket-item"},allTrackButtons:{value:".track-listing .atb"},allBasketButtons:{value:".atb"},basketInfoUrl:{value:null},basketData:{value:null},basketItemLimit:{value:4},basketItemTotals:{value:".basket-count"},basketContainerTemplateNode:{value:"#tpl-basket"},basketContainerTemplateString:{value:null},basketItemTemplateNode:{value:"#tpl-basket-item"},basketItemTemplateString:{value:null},buttonA11yTemplateNode:{value:"#tpl-button-added"},buttonA11yTemplateString:{value:null},buttonNode:{value:"button[type=submit]"},delegateNode:{value:"body"},deleteForm:{value:".del-basket-item"},emptyBasketTemplateNode:{value:null},emptyBasketTemplateString:{value:null},inProgressClass:{value:"progress"},renderOnLoad:{value:!0},releaseButtonClass:{value:"buy-all"},releaseButton:{value:".release-detail .buy-all"},totalItemsTemplateNode:{value:"#tpl-basket-total"},totalItemsTemplateString:{value:null},viewAllItemsTemplateNode:{value:"#tpl-basket-view-all"},viewAllItemsTemplateString:{value:null},oneError:{value:"one:error"}},e.extend(r,e.Widget,{addedButtons:null,initializer:function(){var t=e.one(this.get("viewAllItemsTemplateNode")),n=e.one(this.get("emptyBasketTemplateNode"));t&&this.set("viewAllItemsTemplateString",t.getContent()),n&&this.set("emptyBasketTemplateString",n.getContent()),this.set("basketItemTemplateString",e.one(this.get("basketItemTemplateNode")).getContent()),this.set("totalItemsTemplateString",e.one(this.get("totalItemsTemplateNode")).getContent()),this.set("basketContainerTemplateString",e.one(this.get("basketContainerTemplateNode")).getContent()),this.set("buttonA11yTemplateString",e.one(this.get("buttonA11yTemplateNode")).getContent())},destructor:function(){this._add.detach(),this._delete.detach(),this.set("basketData",null)},renderUI:function(){this.get("renderOnLoad")===!0&&this.getBasket()},bindUI:function(){var t=this.get("delegateNode");e.UA.ie&&e.UA.ie<9?(this._add=e.delegate("click",this.handleAdd,t,this.get("addForm")+" .atb:enabled",this),this._delete=e.delegate("click",this.handleDeletion,t,this.get("deleteForm")+" .remove-basket-item:enabled",this)):(this._add=e.delegate("submit",this.handleAdd,t,this.get("addForm"),this),this._delete=e.delegate("submit",this.handleDeletion,t,this.get("deleteForm"),this)),this.after("basketDataChange",this.syncUI,this)},syncUI:function(){var t=this.get("basketData"),n,r,i=0,s,o,u,a,f=e.Array([]),l,c,h,p,d;this.addedButtons=e.Array([]);if(t&&t.payload&&t.payload.basket_items){n=t.payload.basket_items,r=this.get("basketItemLimit"),i=n.length,l=[],r===0?a=i:a=r<=i?r:i;for(c=0,h=a;c<h;c++)l.push(this.renderBasketItem(n[c]));a<i&&l.push(this.renderViewAllItems(i)),i>0?(t.payload.basket_summary&&t.payload.basket_summary.due&&l.push(this.renderTotal(t.payload.basket_summary.due)),e.all(".checkout-button").removeClass("hidden")):(s=this.get("emptyBasketTemplateString"),s&&l.push(s),e.all(".checkout-button").addClass("hidden"));for(p=0,d=i;p<d;p++){u=n[p].release_id,o=n[p].track_id,u&&(u=u.toString()),o&&(o=o.toString());if(e.Array.indexOf(f,u)>-1)continue;u&&!o&&(f.push(u),e.all(this.get("allBasketButtons")+"[data-u1ms-id^='"+u+"']").each(this.setButtonAdded,this)),u&&o&&(e.all(this.get("allTrackButtons")).size()===1?e.all([this.get("allBasketButtons")+"[data-u1ms-id='"+u+":"+o+"']",this.get("allBasketButtons")+"[data-u1ms-id^='"+u+"']"]).each(this.setButtonAdded,this):e.all(this.get("allBasketButtons")+"[data-u1ms-id='"+u+":"+o+"']").each(this.setButtonAdded,this))}e.all(this.get("allBasketButtons")).each(function(t){e.Array.indexOf(this.addedButtons,t)===-1&&this.setButtonRemoved(t)},this),this.renderBasket(l),this.updateBasketTotals(i)}},updateBasketTotals:function(t){e.all(this.get("basketItemTotals")).each(function(e){e.setContent(t)})},renderViewAllItems:function(t){return e.substitute(this.get("viewAllItemsTemplateString"),{num:e.Escape.html(t)})},renderTotal:function(t){return e.substitute(this.get("totalItemsTemplateString"),{total:e.Escape.html(t)})},renderBasket:function(t){var n=this.get("srcNode"),r=this.get("basketContainerTemplateString"),i,s;n&&t&&r&&(s=t.length>1?t.pop():"",i=e.substitute(r,{contents:t.join(""),tfoot:s}),n.setContent(i))},renderBasketItem:function(t){var r,i=n;if(t)return t.image&&i.test(t.image)&&(t.image=t.image.replace(i,U1MS_ASSET_PROXY_PREFIX)),t.image.substring(0,4)!=="http"&&(t.image=MEDIA_URL+"img/music/default_album350x350.png"),r=this.get("basketItemTemplateString"),e.substitute(r,t,function(t,n){return e.Escape.html(n)})},handleDeletion:function(t){t.preventDefault();var n=t.currentTarget,r;e.UA.ie&&e.UA.ie<9&&n.get("nodeName").toLowerCase()==="button"&&(n=n.ancestor("form")),n&&(r=n.getAttribute("data-u1ms-delete-url"),r||(r=n.get("action")),this.sendForm(n,r))},handleAdd:function(t){t.halt();var n=t.currentTarget,r;e.UA.ie&&e.UA.ie<9&&n.get("nodeName").toLowerCase()==="button"&&(n=n.ancestor("form")),n&&(r=n.getAttribute("data-u1ms-add-url"),this.sendForm(n,r))},getButton:function(e){if(e)return e.one(this.get("buttonNode"))},handleProgress:function(e,t){var n;t&&t.formNode&&(n=this.getButton(t.formNode),n&&(n.addClass(this.get("inProgressClass")),n.setAttribute("disabled","disabled")))},handleBasketError:function(t,n,r){var i,s="Communication with the Ubuntu One servers failed. Please try again in a few moments.";n&&r.formNode&&(i=this.getButton(r.formNode),i.removeClass(this.get("inProgressClass")),i.removeClass(this.get("addClass")),i.removeAttribute("disabled")),e.Global.fire(this.get("oneError"),{message:s})},setButtonAdded:function(t){var n=t.one(".inner");t.addClass("added"),t.removeClass(this.get("inProgressClass")),t.setAttribute("disabled","disabled"),n&&n.appendChild(e.Node.create(this.get("buttonA11yTemplateString"))),this.addedButtons.push(t)},setButtonRemoved:
2
 
function(e){var t=e.one(".inner .acchide");e.removeClass("added"),t&&t.remove(),e.removeAttribute("disabled")},handleBasketData:function(t,n){var r,i,s=n.responseText,o;try{s=e.JSON.parse(s)}catch(u){}s&&s.payload&&s.payload.basket_changes&&(i=s.payload.basket_changes,i&&(o=i.item_id,r=i.change)),s&&this.set("basketData",s)},getBasket:function(t,n){t=t||new e.IO,n=n||this.handleBasketData;var r=this.get("basketInfoUrl");t.send(r,{method:"GET",on:{success:e.rbind(this.handleBasketData,this,{}),failure:e.rbind(this.handleBasketError,this,{})}})},sendForm:function(t,n,r,i){r=r||new e.IO,i=i||this.handleBasketData;var s={method:"POST",form:{id:t,useDisabled:!1},on:{start:e.rbind(this.handleProgress,this,{formNode:t}),failure:e.rbind(this.handleBasketError,this,{formNode:t}),success:e.rbind(i,this,{formNode:t})}},o;o=r.send(n,s)}}),e.namespace("U1MS").Basket=r},"@VERSION@",{requires:["escape","io-form","json-parse","substitute","widget","selector-css3"]});