Navi.min.js 6.7 KB

1
  1. MWF.xApplication.Forum.Navi=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{id:"",type:"all"},initialize:function(t,e,s){this.setOptions(s);this.path="/x_component_Forum/$Navi/";this.cssPath="/x_component_Forum/$Navi/"+this.options.style+"/css.wcss";this._loadCss();this.app=t;this.container=$(e);this.load()},load:function(){var t=this;this.node=new Element("div.naviNode",{styles:this.css.naviNode}).inject(this.container);this.allItem=new MWF.xApplication.Forum.AllItem(this,this.node);this.recommandItem=new MWF.xApplication.Forum.RecommandItem(this,this.node);this.categoryItemList=[];MWF.Actions.get("x_bbs_assemble_control").listCategoryAll(function(t){(t.data||[]).each(function(t){var e=new MWF.xApplication.Forum.CategoryItem(this,this.node,t);this.categoryItemList.push(category);this.fireEvent("postLoad")}.bind(this))}.bind(this))}});MWF.xApplication.Forum.CategoryItem=new Class({initialize:function(t,e,s){this.type="category";this.navi=t;this.app=t.app;this.data=s;this.container=$(e);this.css=t.css;this.load()},load:function(){var t=this;this.isCurrent=false;this.isExpended=false;this.hasSub=true;this.sectionItemList=[];if(this.navi.options.id==this.data.id&&this.navi.options.type=="category"){this.isCurrent=true}this.node=new Element("div.categoryNode",{styles:this.css.categoryNode}).inject(this.container);this.expendNode=new Element("div.categoryExpendNode").inject(this.node);this.setExpendNodeStyle();if(this.hasSub){this.expendNode.addEvent("click",function(t){this.triggerExpend();t.stopPropagation()}.bind(this))}this.textNode=new Element("div.categoryTextNode",{styles:this.css.categoryTextNode,text:this.data.name}).inject(this.node);this.node.addEvents({mouseover:function(){if(!t.isCurrent)this.setStyles(t.app.css.categoryNode_over)},mouseout:function(){if(!t.isCurrent)this.setStyles(t.app.css.categoryNode)},click:function(){t.setCurrent(this)}});this.listNode=new Element("div.sectionListNode",{styles:this.css.sectionListNode}).inject(this.container);this.loadListContent();if(this.isCurrent){this.setCurrent()}},setExpendNodeStyle:function(){var t;if(this.hasSub){if(this.isExpended){if(this.isCurrent){t=this.css.categoryExpendNode_selected}else{t=this.css.categoryExpendNode}}else{if(this.isCurrent){t=this.css.categoryCollapseNode_selected}else{t=this.css.categoryCollapseNode}}}else{t=this.css.emptyExpendNode}this.expendNode.setStyles(t)},triggerExpend:function(){if(this.hasSub){if(this.isExpended){this.isExpended=false;this.listNode.setStyle("display","none")}else{this.isExpended=true;this.listNode.setStyle("display","")}this.setExpendNodeStyle()}},setCurrent:function(){if(this.navi.currentItem){this.navi.currentItem.cancelCurrent()}this.node.setStyles(this.css.categoryNode_selected);if(this.hasSub){if(this.isExpended){this.expendNode.setStyles(this.css.categoryExpendNode_selected)}else{this.expendNode.setStyles(this.css.categoryCollapseNode_selected)}}this.isCurrent=true;this.navi.currentItem=this;this.loadView()},cancelCurrent:function(){this.isCurrent=false;this.node.setStyles(this.css.categoryNode);if(this.hasSub){if(this.isExpended){this.expendNode.setStyles(this.css.categoryExpendNode)}else{this.expendNode.setStyles(this.css.categoryCollapseNode)}}},loadView:function(t){this.app.openView(this,this.data,this.viewData||this.defaultRevealData,t||"",this)},loadListContent:function(){var t=this.data;if(t.forumStatus!="停用"){MWF.Actions.get("x_bbs_assemble_control").listSection(t.id,function(t){(js.data||[]).each(function(t){var e=new MWF.xApplication.Forum.SectionItem(this.navi,this,this.listNode,t);this.sectionItemList.push(e)}.bind(this))}.bind(this))}new Element("div",{styles:this.css.categorySepartorNode}).inject(this.listNode)},getCategoryId:function(){return this.data.id}});MWF.xApplication.Forum.SectionItem=new Class({initialize:function(t,e,s,i){this.type="section";this.navi=t;this.category=e;this.app=t.app;this.data=i;this.container=$(s);this.css=t.css;this.load()},load:function(){this.isCurrent=false;if(this.navi.options.type=="section"&&this.navi.options.id==this.data.id){this.isCurrent=true}var e=this;this.node=new Element("div.sectionNode",{styles:this.css.sectionNode}).inject(this.container);this.node.addEvents({mouseover:function(){if(!e.isCurrent)this.setStyles(e.css.sectionNode_over)},mouseout:function(){if(!e.isCurrent)this.setStyles(e.css.sectionNode)},click:function(t){e.setCurrent()}});if(this.isCurrent){this.setCurrent()}},setCurrent:function(){if(this.navi.currentItem){this.navi.currentItem.cancelCurrent()}this.node.setStyles(this.css.sectionNode_selected);this.isCurrent=true;this.navi.currentItem=this;this.loadView()},cancelCurrent:function(){this.isCurrent=false;this.node.setStyles(this.css.sectionNode)},getCategoryId:function(){return this.category.data.id},loadView:function(t){this.app.openView(this,this.category.data,this.data,t||"",this)}});MWF.xApplication.Forum.AllItem=new Class({initialize:function(t,e){this.type="all";this.navi=t;this.app=t.app;this.container=$(e);this.css=t.css;this.load()},load:function(){this.isCurrent=false;if(this.navi.options.type=="all"){this.isCurrent=true}var e=this;this.node=new Element("div.allNode",{styles:this.css.allNode}).inject(this.container);this.node.addEvents({mouseover:function(){if(!e.isCurrent)this.setStyles(e.css.allNode_over)},mouseout:function(){if(!e.isCurrent)this.setStyles(e.css.allNode)},click:function(t){e.setCurrent()}});if(this.isCurrent){this.setCurrent()}},setCurrent:function(){if(this.navi.currentItem){this.navi.currentItem.cancelCurrent()}this.node.setStyles(this.css.allNode_selected);this.isCurrent=true;this.navi.currentItem=this;this.loadView()},cancelCurrent:function(){this.isCurrent=false;this.node.setStyles(this.css.allNode)},getCategoryId:function(){return null},loadView:function(t){this.app.openView(this,null,this.data,t||"",this)}});MWF.xApplication.Forum.RecommandItem=new Class({initialize:function(t,e){this.type="recommand";this.navi=t;this.app=t.app;this.container=$(e);this.css=t.css;this.load()},load:function(){this.isCurrent=false;if(this.navi.options.type=="recommand"){this.isCurrent=true}var e=this;this.node=new Element("div.recommandNode",{styles:this.css.recommandNode}).inject(this.container);this.node.addEvents({mouseover:function(){if(!e.isCurrent)this.setStyles(e.css.recommandNode_over)},mouseout:function(){if(!e.isCurrent)this.setStyles(e.css.recommandNode)},click:function(t){e.setCurrent()}});if(this.isCurrent){this.setCurrent()}},setCurrent:function(){if(this.navi.currentItem){this.navi.currentItem.cancelCurrent()}this.node.setStyles(this.css.recommandNode_selected);this.isCurrent=true;this.navi.currentItem=this;this.loadView()},cancelCurrent:function(){this.isCurrent=false;this.node.setStyles(this.css.recommandNode)},getCategoryId:function(){return null},loadView:function(t){this.app.openView(this,null,this.data,t||"",this)}});