| 1 |
- window.MWFForum=window.MWFForum||MWF.xApplication.Forum;MWFForum.NaviType={main:"main",all:"all",recommand:"recommand",cream:"cream",category:"category",section:"section"};MWF.xApplication.Forum.NaviMode=MWFForum.NaviMode=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",id:"",type:MWFForum.NaviType.all},initialize:function(t,e,i){this.setOptions(i);this.path="/x_component_Forum/$NaviMode/";this.cssPath="/x_component_Forum/$NaviMode/"+this.options.style+"/css.wcss";this._loadCss();this.app=t;this.container=$(e)},load:function(){var t=this;this.naviContainer=new Element("div.naviContainer",{styles:this.css.naviContainer}).inject(this.container);this.naviNode=new Element("div.naviNode",{styles:this.css.naviNode}).inject(this.naviContainer);this.viewContainer=new Element("div.viewContainer",{styles:this.css.viewContainer}).inject(this.container);this.allItem=new MWFForum.NaviMode.AllItem(this,this.naviNode);this.recommandItem=new MWFForum.NaviMode.RecommandItem(this,this.naviNode);this.creamItem=new MWFForum.NaviMode.CreamItem(this,this.naviNode);this.categoryItemList=[];this.categoryItemMap={};this.sectionItemMap={};MWF.Actions.get("x_bbs_assemble_control").listCategoryAll(function(t){(t.data||[]).each(function(t){var e=new MWFForum.NaviMode.CategoryItem(this,this.naviNode,t);this.categoryItemList.push(e);this.categoryItemMap[t.id]=e;this.fireEvent("postLoad")}.bind(this))}.bind(this));this.setNodeSizeFun=function(){this.setNodeSize()}.bind(this);this.app.addEvent("resize",this.setNodeSizeFun);this.setNodeSize()},close:function(){this.back()},back:function(t){var e=this.currentItem;if(!t){t=e?e.type:"main"}if(this.view)this.view.destroy();this.app.clearContent();if(this.app.node)this.app.node.destroy();switch(t){case MWFForum.NaviType.category:MWF.xDesktop.requireApp("ForumCategory","MainInContainer",null,false);var i=new MWF.xApplication.ForumCategory.MainInContainer(this.app.desktop,{hasTop:true,hasBreadCrumb:true,categoryId:e.data.id,naviMode:false,autoWidth:false},this.app.content,this.app.content,this.app.content);i.inBrowser=this.app.inBrowser;i.window=this.app.window;i.taskitem=this.app.taskitem;i.load();this.app.setTitle(e.data.forumName);this.destroy();break;case MWFForum.NaviType.section:MWF.xDesktop.requireApp("ForumSection","MainInContainer",null,false);var s=new MWF.xApplication.ForumSection.MainInContainer(this.app.desktop,{hasTop:true,hasBreadCrumb:true,sectionId:e.data.id,naviMode:false,autoWidth:false},this.app.content,this.app.content,this.app.content);s.inBrowser=this.app.inBrowser;s.window=this.app.window;s.taskitem=this.app.taskitem;s.load();this.app.setTitle(e.data.sectionName);this.destroy();break;default:MWF.xDesktop.requireApp("Forum","MainInContainer",null,false);var n=new MWF.xApplication.Forum.MainInContainer(this.app.desktop,{hasTop:true,hasBreadCrumb:true,naviMode:false,autoWidth:false},this.app.content,this.app.content,this.app.content);n.inBrowser=this.app.inBrowser;n.window=this.app.window;n.taskitem=this.app.taskitem;n.load();this.app.setTitle("论坛首页");this.destroy();break}},goto:function(t,e){switch(t){case MWFForum.NaviType.main:this.back(MWFForum.NaviType.main);break;case MWFForum.NaviType.all:this.allItem.setCurrent();break;case MWFForum.NaviType.recommand:this.recommandItem.setCurrent();break;case MWFForum.NaviType.cream:this.creamItem.setCurrent();break;case MWFForum.NaviType.category:var i=this.categoryItemMap[e];if(i)i.setCurrent();break;case MWFForum.NaviType.section:var s=this.sectionItemMap[e];if(s)s.setCurrent();break;default:break}},scrollToTop:function(){this.app.contentContainerNode.scrollTo(0,0)},setNodeSize:function(){var t=this.app.node.getSize();var e=this.app.topObject?this.app.topObject.topContainerNode.getSize():{x:0,y:0};var i=this.app.contentContainerNode.getStyle("padding-top").toFloat();var s=this.app.contentContainerNode.getStyle("padding-bottom").toFloat();var n=t.y-i-s;this.app.contentContainerNode.setStyle("height",""+n+"px");var o=t.y-e.y-20;var a=this.naviNode.getSize();var r=this.viewContainer.getFirst();var d=r?r.getSize():{x:0,y:0};this.naviContainer.setStyle("min-height",Math.max(o,a.y,d.y));this.viewContainer.setStyle("min-height",Math.max(o,a.y,d.y))},destroy:function(){if(this.setNodeSizeFun)this.app.removeEvent("resize",this.setNodeSizeFun);if(this.naviNode)this.naviNode.destroy()}});MWFForum.NaviMode.CategoryItem=new Class({initialize:function(t,e,i){this.type=MWFForum.NaviType.category;this.navi=t;this.app=t.app;this.data=i;this.container=$(e);this.css=t.css;this.load()},load:function(){var t=this;this.isCurrent=false;this.isExpended=true;this.hasSub=true;this.sectionItemList=[];if(this.navi.options.id==this.data.id&&this.navi.options.type==MWFForum.NaviType.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.forumName}).inject(this.node);this.node.addEvents({mouseover:function(){if(!t.isCurrent){this.setStyles(t.css.categoryNode_over);t.setExpendNodeStyle(true)}},mouseout:function(){if(!t.isCurrent){this.setStyles(t.css.categoryNode);t.setExpendNodeStyle()}},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(t){var e;if(this.hasSub){if(this.isExpended){if(t){e=this.css.categoryExpendNode_over}else if(this.isCurrent){e=this.css.categoryExpendNode_selected}else{e=this.css.categoryExpendNode}}else{if(t){e=this.css.categoryCollapseNode_over}else if(this.isCurrent){e=this.css.categoryCollapseNode_selected}else{e=this.css.categoryCollapseNode}}}else{e=this.css.emptyExpendNode}this.expendNode.setStyles(e)},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.navi.app.setTitle(this.data.forumName);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){(t.data||[]).each(function(t){var e=new MWFForum.NaviMode.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},loadView:function(){if(this.navi.view)this.navi.view.destroy();this.navi.viewContainer.empty();MWF.xDesktop.requireApp("ForumCategory","MainInContainer",null,false);var t=this.navi.viewContainer;var e=this.app.content;var i=this.navi.view=new MWF.xApplication.ForumCategory.MainInContainer(this.app.desktop,{hasTop:false,hasBreadCrumb:true,categoryId:this.data.id,naviMode:true,autoWidth:true,onPostLoadCategory:function(){this.navi.setNodeSize();this.navi.scrollToTop()}.bind(this)},t,this.app.content,e);i.forumNavi=this.navi;i.inBrowser=this.navi.app.inBrowser;i.window=this.app.window;i.taskitem=this.navi.app.taskitem;i.load()}});MWFForum.NaviMode.SectionItem=new Class({initialize:function(t,e,i,s){this.type=MWFForum.NaviType.section;this.navi=t;this.category=e;this.app=t.app;this.data=s;this.container=$(i);this.css=t.css;this.load()},load:function(){this.navi.sectionItemMap[this.data.id]=this;var e=this;this.isCurrent=false;if(this.navi.options.type==MWFForum.NaviType.section&&this.navi.options.id==this.data.id){this.isCurrent=true}var e=this;this.node=new Element("div.sectionNode",{styles:this.css.sectionNode,text:this.data.sectionName}).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.navi.app.setTitle(this.data.sectionName);this.loadView()},cancelCurrent:function(){this.isCurrent=false;this.node.setStyles(this.css.sectionNode)},getCategoryId:function(){return this.category.data.id},loadView:function(){if(this.navi.view)this.navi.view.destroy();this.navi.viewContainer.empty();MWF.xDesktop.requireApp("ForumSection","MainInContainer",null,false);var t=this.navi.viewContainer;var e=this.app.content;var i=this.navi.view=new MWF.xApplication.ForumSection.MainInContainer(this.app.desktop,{hasTop:false,hasBreadCrumb:true,sectionId:this.data.id,naviMode:true,autoWidth:true,onPostCreateViewBody:function(){this.navi.setNodeSize();this.navi.scrollToTop()}.bind(this)},t,this.app.content,e);i.forumNavi=this.navi;i.inBrowser=this.navi.app.inBrowser;i.window=this.navi.app.window;i.taskitem=this.navi.app.taskitem;i.load()}});MWFForum.NaviMode.AllItem=new Class({initialize:function(t,e){this.type=MWFForum.NaviType.all;this.navi=t;this.app=t.app;this.container=$(e);this.css=t.css;this.load()},load:function(){var e=this;this.isCurrent=false;if(this.navi.options.type==MWFForum.NaviType.all){this.isCurrent=true}var e=this;this.node=new Element("div.allNode",{styles:this.css.allNode,text:"全部"}).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.navi.app.setTitle("全部主题");this.loadView()},cancelCurrent:function(){this.isCurrent=false;this.node.setStyles(this.css.allNode)},getCategoryId:function(){return null},loadView:function(){if(this.navi.view)this.navi.view.destroy();this.navi.viewContainer.empty();this.viewWarp=new Element("div").inject(this.navi.viewContainer);var t=this.topNode=new Element("div.topNode",{styles:this.css.topNode}).inject(this.viewWarp);var e=new Element("div.topTitleMiddleNode",{styles:this.css.topTitleMiddleNode}).inject(t);var i=new Element("div.topItemTitleNode",{styles:this.css.topItemTitleNode,text:"论坛首页"}).inject(e);var s=new Element("div.topItemSepNode",{styles:this.css.topItemSepNode,text:">"}).inject(e);i.addEvent("click",function(){this.navi.goto(MWFForum.NaviType.main)}.bind(this));var i=new Element("div.topItemTitleNode",{styles:this.css.topItemTitleLastNode,text:"全部主题"}).inject(e);var n=this.navi.view=new MWFForum.NaviMode.AllView(this.viewWarp,this.app,this,{templateUrl:this.navi.path+this.navi.options.style+"/"+"listItem.json",pagingEnable:true,pagingPar:{hasReturn:false,currentPage:this.navi.options.viewPageNum,countPerPage:30},onPostCreateViewBody:function(){this.navi.setNodeSize();this.navi.scrollToTop()}.bind(this)});n.pagingContainerTop=this.pagingBarTop;n.pagingContainerBottom=this.pagingBarBottom;n.load()}});MWFForum.NaviMode.RecommandItem=new Class({initialize:function(t,e){this.type=MWFForum.NaviType.recommand;this.navi=t;this.app=t.app;this.container=$(e);this.css=t.css;this.load()},load:function(){var e=this;this.isCurrent=false;if(this.navi.options.type==MWFForum.NaviType.recommand){this.isCurrent=true}var e=this;this.node=new Element("div.recommandNode",{styles:this.css.recommandNode,text:"推荐"}).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.navi.app.setTitle("推荐主题");this.loadView()},cancelCurrent:function(){this.isCurrent=false;this.node.setStyles(this.css.recommandNode)},getCategoryId:function(){return null},loadView:function(){if(this.navi.view)this.navi.view.destroy();this.navi.viewContainer.empty();this.viewWarp=new Element("div").inject(this.navi.viewContainer);var t=this.topNode=new Element("div.topNode",{styles:this.css.topNode}).inject(this.viewWarp);var e=new Element("div.topTitleMiddleNode",{styles:this.css.topTitleMiddleNode}).inject(t);var i=new Element("div.topItemTitleNode",{styles:this.css.topItemTitleNode,text:"论坛首页"}).inject(e);var s=new Element("div.topItemSepNode",{styles:this.css.topItemSepNode,text:">"}).inject(e);i.addEvent("click",function(){this.navi.goto(MWFForum.NaviType.main)}.bind(this));var i=new Element("div.topItemTitleNode",{styles:this.css.topItemTitleLastNode,text:"推荐主题"}).inject(e);var n=this.navi.view=new MWFForum.NaviMode.RecommandView(this.viewWarp,this.app,this,{templateUrl:this.navi.path+this.navi.options.style+"/"+"listItem.json",pagingEnable:true,pagingPar:{hasReturn:false,currentPage:this.navi.options.viewPageNum,countPerPage:30},onPostCreateViewBody:function(){this.navi.setNodeSize();this.navi.scrollToTop()}.bind(this)});n.pagingContainerTop=this.pagingBarTop;n.pagingContainerBottom=this.pagingBarBottom;n.load()}});MWFForum.NaviMode.CreamItem=new Class({initialize:function(t,e){this.type=MWFForum.NaviType.cream;this.navi=t;this.app=t.app;this.container=$(e);this.css=t.css;this.load()},load:function(){var e=this;this.isCurrent=false;if(this.navi.options.type==MWFForum.NaviType.cream){this.isCurrent=true}var e=this;this.node=new Element("div.cream",{styles:this.css.recommandNode,text:"精华"}).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.navi.app.setTitle("精华主题");this.loadView()},cancelCurrent:function(){this.isCurrent=false;this.node.setStyles(this.css.recommandNode)},getCategoryId:function(){return null},loadView:function(){if(this.navi.view)this.navi.view.destroy();this.navi.viewContainer.empty();this.viewWarp=new Element("div").inject(this.navi.viewContainer);var t=this.topNode=new Element("div.topNode",{styles:this.css.topNode}).inject(this.viewWarp);var e=new Element("div.topTitleMiddleNode",{styles:this.css.topTitleMiddleNode}).inject(t);var i=new Element("div.topItemTitleNode",{styles:this.css.topItemTitleNode,text:"论坛首页"}).inject(e);var s=new Element("div.topItemSepNode",{styles:this.css.topItemSepNode,text:">"}).inject(e);i.addEvent("click",function(){this.navi.goto(MWFForum.NaviType.main)}.bind(this));var i=new Element("div.topItemTitleNode",{styles:this.css.topItemTitleLastNode,text:"精华主题"}).inject(e);var n=this.navi.view=new MWFForum.NaviMode.CreamView(this.viewWarp,this.app,this,{templateUrl:this.navi.path+this.navi.options.style+"/"+"listItem.json",pagingEnable:true,pagingPar:{hasReturn:false,currentPage:this.navi.options.viewPageNum,countPerPage:30},onPostCreateViewBody:function(){this.navi.setNodeSize();this.navi.scrollToTop()}.bind(this)});n.pagingContainerTop=this.pagingBarTop;n.pagingContainerBottom=this.pagingBarBottom;n.load()}});MWFForum.NaviMode.AllView=new Class({Extends:MWF.xApplication.Template.Explorer.ComplexView,_createDocument:function(t,e){return new MWFForum.NaviMode.Document(this.viewNode,t,this.explorer,this,null,e)},_getCurrentPageData:function(e,t,i){this.clearBody();if(!t)t=30;if(!i)i=1;var s=this.filterData||{};this.actions.listSubjectFilterPage(i,t,s,function(t){if(!t.data)t.data=[];if(!t.count)t.count=0;if(e)e(t)}.bind(this))},_removeDocument:function(e,t){this.actions.deleteSubject(e.id,function(t){this.reload();this.app.reloadAllParents(e.sectionId);this.app.notice(this.app.lp.deleteDocumentOK,"success")}.bind(this))},_create:function(){},_openDocument:function(t,e){var i="ForumDocument"+t.id;if(this.app.desktop.apps[i]){this.app.desktop.apps[i].setCurrent()}else{this.app.desktop.openApplication(null,"ForumDocument",{sectionId:t.sectionId,id:t.id,appId:i,isEdited:false,isNew:false,index:e})}},_queryCreateViewNode:function(){},_postCreateViewNode:function(t){},_queryCreateViewHead:function(){},_postCreateViewHead:function(t){},isAdmin:function(){return false}});MWFForum.NaviMode.RecommandView=new Class({Extends:MWF.xApplication.Template.Explorer.ComplexView,_createDocument:function(t,e){return new MWFForum.NaviMode.Document(this.viewNode,t,this.explorer,this,null,e)},_getCurrentPageData:function(e,t,i){this.clearBody();if(!t)t=30;if(!i)i=1;var s=this.filterData||{subjectId:"",voteOptionId:"",forumId:"",mainSectionId:"",sectionId:"",searchContent:"",creatorName:"",needPicture:"",withTopSubject:true};this.actions.listRecommendedPage(i,t,s,function(t){if(!t.data)t.data=[];if(!t.count)t.count=0;if(e)e(t)}.bind(this))},_removeDocument:function(e,t){this.actions.deleteSubject(e.id,function(t){this.reload();this.app.reloadAllParents(e.sectionId);this.app.notice(this.app.lp.deleteDocumentOK,"success")}.bind(this))},_create:function(){},_openDocument:function(t,e){var i="ForumDocument"+t.id;if(this.app.desktop.apps[i]){this.app.desktop.apps[i].setCurrent()}else{this.app.desktop.openApplication(null,"ForumDocument",{sectionId:t.sectionId,id:t.id,appId:i,isEdited:false,isNew:false,index:e})}},_queryCreateViewNode:function(){},_postCreateViewNode:function(t){},_queryCreateViewHead:function(){},_postCreateViewHead:function(t){}});MWFForum.NaviMode.CreamView=new Class({Extends:MWF.xApplication.Template.Explorer.ComplexView,_createDocument:function(t,e){return new MWFForum.NaviMode.Document(this.viewNode,t,this.explorer,this,null,e)},_getCurrentPageData:function(e,t,i){this.clearBody();if(!t)t=30;if(!i)i=1;var s=this.filterData||{};this.actions.listCreamSubjectFilterPage(i,t,s,function(t){if(!t.data)t.data=[];if(!t.count)t.count=0;if(e)e(t)}.bind(this))},_removeDocument:function(e,t){this.actions.deleteSubject(e.id,function(t){this.reload();this.app.reloadAllParents(e.sectionId);this.app.notice(this.app.lp.deleteDocumentOK,"success")}.bind(this))},_create:function(){},_openDocument:function(t,e){var i="ForumDocument"+t.id;if(this.app.desktop.apps[i]){this.app.desktop.apps[i].setCurrent()}else{this.app.desktop.openApplication(null,"ForumDocument",{sectionId:t.sectionId,id:t.id,appId:i,isEdited:false,isNew:false,index:e})}},_queryCreateViewNode:function(){},_postCreateViewNode:function(t){},_queryCreateViewHead:function(){},_postCreateViewHead:function(t){}});MWFForum.NaviMode.Document=new Class({Extends:MWF.xApplication.Template.Explorer.ComplexDocument,_queryCreateDocumentNode:function(t){},_postCreateDocumentNode:function(t,e){},open:function(t){this.view._openDocument(this.data,this.index)},edit:function(){var t="ForumDocument"+this.data.id;if(this.app.desktop.apps[t]){this.app.desktop.apps[t].setCurrent()}else{this.app.desktop.openApplication(null,"ForumDocument",{sectionId:this.data.sectionId,id:this.data.id,appId:t,isEdited:true,isNew:false,index:this.index})}},openSection:function(t){var e=this.data;if(this.view.explorer&&this.view.explorer.navi){this.view.explorer.navi.goto(MWFForum.NaviType.section,e.sectionId)}else{var i="ForumSection"+e.sectionId;if(this.app.desktop.apps[i]){this.app.desktop.apps[i].setCurrent()}else{this.app.desktop.openApplication(t,"ForumSection",{sectionId:e.sectionId,appId:i})}}t.stopPropagation()},isAdmin:function(){return this.app.access.isAdmin()}});
|