MainMenu.min.js 11 KB

1
  1. MWF.xApplication.MinderEditor.MainMenu=new Class({Extends:MWF.widget.Common,Implements:[Options,Events],options:{style:"default",defaultAction:"openRecentFiles"},initialize:function(t,e,i){this.setOptions(i);this.container=t;this.app=e;this.lp=this.app.lp;this.isHidden=false;this.path="/x_component_MinderEditor/$MainMenu/";this.cssPath="/x_component_MinderEditor/$MainMenu/"+this.options.style+"/css.wcss";this._loadCss();this.itemJson=[{text:"新建",action:"openCreate",hasContent:false},{text:"打开",action:"openRecentFiles",hasContent:true},{text:"另存为",action:"openSaveAs",hasContent:true},{text:"共享",action:"openShare",hasContent:true},{text:"历史版本",action:"openFileVersion",hasContent:true}];this.load()},load:function(){this.maskNode=new Element("div.maskNode",{styles:this.css.maskNode,events:{mousedown:function(t){this.hide()}.bind(this)}}).inject(this.container);this.node=new Element("div.MainMenu",{styles:this.css.node,events:{mousedown:function(t){t.stopPropagation()}}}).inject(this.container);this.contentNode=new Element("div",{styles:this.css.contentNode}).inject(this.node);this.rightContentNode=new Element("div",{styles:this.css.rightContentNode}).inject(this.node);this.loadItems();this.show();this.resetNodeSizeFun=this.resetNodeSize.bind(this);this.app.addEvent("resize",this.resetNodeSizeFun)},loadItems:function(){var i=this;this.itemContainer=new Element("div",{styles:this.css.itemContainer}).inject(this.contentNode);this.menuItem={};this.itemJson.each(function(t){var e=new Element("div",{styles:this.css.itemNode,text:t.text}).inject(this.contentNode);e.addEvents({mouseover:function(){if(i.currentItemNode!=this)this.setStyles(i.css.itemNode_over)},mouseout:function(){if(i.currentItemNode!=this)this.setStyles(i.css.itemNode)},click:function(){i.setCurrentItemNode(this,t.action,t)}});this.menuItem[t.action]=e;if(t.action==(this.app.options.menuAction||this.options.defaultAction))e.click()}.bind(this))},setCurrentItemNode:function(t,e,i){if(this.currentItemNode&&i.hasContent){this.currentItemNode.setStyles(this.css.itemNode)}if(this[e]){this[e]()}if(i.hasContent){this.currentItemNode=t;t.setStyles(this.css.itemNode_current)}},trigger:function(){this.isHidden?this.show(true):this.hide(true)},hide:function(t){this.maskNode.setStyle("display","none");this.isHidden=true;this.node.setStyle("display","none");this.fireEvent("hide")},show:function(t){if(t){this.menuItem[t].click()}else if(this.currentItemNode){this.currentItemNode.click()}this.resetNodeSize();this.maskNode.setStyle("display","");this.isHidden=false;this.node.setStyles({display:""});this.fireEvent("show")},resetNodeSize:function(){var t=this.container.getSize();this.contentNode.setStyle("height",t.y-84);this.rightContentNode.setStyle("height",t.y-86);this.setShareRecordListHeight();this.setFileVersionListHeight()},setShareRecordListHeight:function(){if(this.shareRecordList){var t=this.container.getSize();this.shareRecordList.setStyle("height",t.y-256)}},setFileVersionListHeight:function(){if(this.fileVersionList){var t=this.container.getSize();this.fileVersionList.setStyle("height",t.y-156)}},getSize:function(){return{x:9,y:0}},empty:function(){this.shareRecordList=null;this.fileVersionList=null;this.rightContentNode.empty()},reload:function(){this.destory()},destory:function(){this.maskNode.destroy();this.app.removeEvent("resize",this.resetNodeSizeFun);this.node.destory()},openRecentFiles:function(){var i=this;this.empty();new Element("div.rightTitleNode",{text:"打开",styles:this.css.rightTitleNode}).inject(this.rightContentNode);var t=new Element("div.listTitle",{text:"最近修改的文件",styles:this.css.listTitle}).inject(this.rightContentNode);var n=new Element("div.listArea",{styles:this.css.documentArea}).inject(this.rightContentNode);this.app.restActions.listNextMindWithFilter("(0)",5,{orderField:"updateTime",orderType:"DESC"},function(t){(t.data||[]).each(function(t){var e=new Element("div.documentNode",{styles:this.css.documentNode}).inject(n);e.addEvents({mouseover:function(){e.setStyles(this.css.documentNode_over)}.bind(this),mouseout:function(){e.setStyles(this.css.documentNode)}.bind(this),click:function(){this.openMinder(t);this.hide()}.bind(this)});var i=Element("div.documentIconNode",{styles:this.css.documentIconNode}).inject(e);var s=Element("div.documentRightNode",{styles:this.css.documentRightNode}).inject(e);Element("div.documentTextNode",{text:t.name,styles:this.css.documentTextNode}).inject(s);Element("div.documentMemoNode",{text:"修改于"+t.updateTime,styles:this.css.documentMemoNode}).inject(s)}.bind(this));if(!t.data||t.data.length==0){new Element("div.listItemTextNode",{text:"没有找到最近修改的文件",styles:this.css.listItemTextNode}).inject(n)}else{var e=new Element("div.listItemActionNode",{text:"打开列表,查看更多文件",styles:this.css.listItemActionNode,events:{mouseover:function(){this.setStyles(i.css.listItemActionNode_over)},mouseout:function(){this.setStyles(i.css.listItemActionNode)},click:function(t){i.openMinderList(t);i.hide()}}}).inject(n);e.setStyle("margin-top","10px")}}.bind(this));var e=new Element("div.rightActionArea",{styles:this.css.rightActionArea}).inject(this.rightContentNode);this.createActionNode(e,"import","打开本地文件","上传本地脑图文件,并用脑图编辑",function(){this.app.openSaveAsDialog();this.hide()}.bind(this))},openMinderList:function(t){var e="Minder";if(this.app.desktop.apps[e]){this.app.desktop.apps[e].setCurrent()}else{this.app.desktop.openApplication(null,"Minder",{appId:e})}},openMinder:function(t){var e="MinderEditor"+t.id;if(this.app.desktop.apps[e]){this.app.desktop.apps[e].setCurrent()}else{this.app.desktop.openApplication(null,"MinderEditor",{appId:e,folderId:t.folderId,id:t.id,isEdited:true,isNew:false})}},openCreate:function(){this.app.openNewMinderDialog();this.hide()},openSaveAs:function(){this.empty();new Element("div.rightTitleNode",{text:"另存为",styles:this.css.rightTitleNode}).inject(this.rightContentNode);var t=new Element("div.rightActionArea",{styles:this.css.rightActionArea}).inject(this.rightContentNode);this.createActionNode(t,"saveas","另存为","保存副本到文件夹",function(){this.app.openSaveAsDialog();this.hide()}.bind(this));this.createActionNode(t,"edit","重命名","重命名此文件",function(){this.app.openRenameDialog();this.hide()}.bind(this));this.createActionNode(t,"download","导出","将文件导出到本地",function(){this.app.openExportDialog();this.hide()}.bind(this))},openFileVersion:function(){var i=this;this.empty();new Element("div.rightTitleNode",{text:"历史版本",styles:this.css.rightTitleNode}).inject(this.rightContentNode);var s=this.fileVersionList=new Element("div.listArea",{styles:this.css.listArea}).inject(this.rightContentNode);if(this.app.data.id){this.app.restActions.listVersionsWithMindId(this.app.data.id,function(t){(t.data||[]).each(function(e){var t=new Element("div.listItemNode",{styles:this.css.listItemNode}).inject(s);new Element("div.listItemTextNode",{text:e.creator.split("@")[0]+"创建于"+e.createTime,styles:this.css.listItemTextNode}).inject(t);if(this.app.userName==e.creator){new Element("div.listItemActionNode",{text:"还原",styles:this.css.listItemActionNode,events:{mouseover:function(){this.setStyles(i.css.listItemActionNode_over)},mouseout:function(){this.setStyles(i.css.listItemActionNode)},click:function(t){i.restoreVersion(t,e)}}}).inject(t)}this.setFileVersionListHeight()}.bind(this));if(!t.data||t.data.length==0){new Element("div.listItemTextNode",{text:"没有找到历史版本",styles:this.css.listItemTextNode}).inject(s)}}.bind(this))}else{new Element("div.listItemTextNode",{text:"没有找到历史版本",styles:this.css.listItemTextNode}).inject(s)}},restoreVersion:function(t,e){this.app.restActions.viewMindVersionWithId(e.id,function(t){this.app.isMovingCenter=true;this.app.data.content=t.data.content?JSON.parse(t.data.content):{content:{data:{}}};this.app.minder.importJson(this.app.data.content)}.bind(this))},openShare:function(){var t=this;this.empty();new Element("div.rightTitleNode",{text:"共享",styles:this.css.rightTitleNode}).inject(this.rightContentNode);var e=new Element("div.rightActionArea",{styles:this.css.rightActionArea}).inject(this.rightContentNode);this.createActionNode(e,"share","分享","邀请其他人查看文件",function(){this.app.openShareDialog();this.hide()}.bind(this));var i=new Element("div.listTitle",{text:"分享记录",styles:this.css.listTitle}).inject(this.rightContentNode);this.documentArea=this.shareRecordList=new Element("div.documentArea",{styles:this.css.documentArea}).inject(this.rightContentNode);if(this.app.data.id){this.loadShareRecordList()}else{new Element("div.listItemTextNode",{text:"没有找到分享记录",styles:this.css.listItemTextNode}).inject(this.documentArea)}},loadShareRecordList:function(){var n=this;this.documentArea.empty();this.app.restActions.listShareRecordsWithMindId(this.app.data.id,function(t){(t.data||[]).each(function(e){var t=new Element("div.documentNode",{styles:this.css.documentNode}).inject(this.documentArea);t.addEvents({mouseover:function(){t.setStyles(this.css.documentNode_over)}.bind(this),mouseout:function(){t.setStyles(this.css.documentNode)}.bind(this)});var i=Element("div.documentRightNode",{styles:this.css.documentRightNode}).inject(t);Element("div.documentTextNode",{text:e.source.split("@")[0]+"分享给"+e.target.split("@")[0],styles:this.css.documentTextNode}).inject(i);var s=Element("div.documentBottomNode",{styles:this.css.documentBottomNode}).inject(i);Element("div.documentMemoNode",{text:"于"+e.createTime,styles:this.css.documentMemoNode}).inject(s);if(this.app.userName==e.source){new Element("div.documentActionNode",{text:"取消分享",styles:this.css.documentActionNode,events:{mouseover:function(){this.setStyles(n.css.documentActionNode_over)},mouseout:function(){this.setStyles(n.css.documentActionNode)},click:function(t){n.cancelShare(t,e)}}}).inject(s)}this.setShareRecordListHeight()}.bind(this));if(!t.data||t.data.length==0){new Element("div.listItemTextNode",{text:"没有找到分享记录",styles:this.css.listItemTextNode}).inject(this.documentArea)}}.bind(this))},cancelShare:function(t,e){var i=this;this.app.confirm("warn",t,"取消分享确认","是否取消对"+e.target.split("@")[0]+"的分享?",350,120,function(){i.app.restActions.cancelShareMind(e.id,{},function(){i.loadShareRecordList();i.app.notice("取消分享成功!")});this.close()},function(){this.close()})},createActionNode:function(t,e,i,s,n){var o=Element("div.rightActionNode",{styles:this.css.rightActionNode}).inject(t);o.addEvents({mouseover:function(){o.setStyles(this.css.rightActionNode_over)}.bind(this),mouseout:function(){o.setStyles(this.css.rightActionNode)}.bind(this),click:function(){n()}.bind(this)});var d=Element("div.rightActionIconNode",{styles:this.css.rightActionIconNode}).inject(o);if(e)d.setStyle("background-image","url("+this.path+this.options.style+"/icon/"+e+".png)");var h=Element("div.rightActionRightNode",{styles:this.css.rightActionRightNode}).inject(o);Element("div.rightActionTextNode",{text:i,styles:this.css.rightActionTextNode}).inject(h);Element("div.rightActionMemoNode",{text:s,styles:this.css.rightActionMemoNode}).inject(h)}});