| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296 |
- MWF.xApplication.TeamWork = MWF.xApplication.TeamWork || {};
- MWF.xApplication.TeamWork.NewProject = new Class({
- Extends: MWF.xApplication.TeamWork.Common.Popup,
- options:{
- "closeByClickMask" : false
- },
- open: function (e) {
- //设置css 和 lp等
- var css = this.css;
- this.cssPath = "../x_component_TeamWork/$NewProject/"+this.options.style+"/css.wcss";
- this._loadCss();
- if(css) this.css = Object.merge( css, this.css );
- this.lp = this.app.lp.newProject;
- this.fireEvent("queryOpen");
- this.isNew = false;
- this.isEdited = false;
- this._open();
- this.fireEvent("postOpen");
- },
- _createTableContent: function () {
- //var a = new Element("div.aaa",{styles:{"width":"100px","height":"100px","background-color":"#f00"},text:"f分分分f分分f分分分f分分分"}).inject(this.formTableArea);
- // alert(JSON.stringify(this.css.projectAdd))
- // alert(JSON.stringify(this.lp))
- this.newProjectTop = new Element("div.newProjectTop",{styles:this.css.newProjectTop}).inject(this.formTableArea);
- this.newProjectTopText = new Element("div.newProjectTopText",{styles:this.css.newProjectTopText,text:this.lp.title}).inject(this.newProjectTop);
- this.newProjectTopClose = new Element("div.newProjectTopClose",{styles:this.css.newProjectTopClose}).inject(this.newProjectTop);
- this.newProjectTopClose.addEvents({
- click:function(){this.close()}.bind(this)
- });
- this.newProjectContainer = new Element("div.newProjectInContainer",{styles:this.css.newProjectContainer}).inject(this.formTableArea);
- this.newProjectIn = new Element("input.newProjectIn",{styles:this.css.newProjectIn,type:"text",placeholder:this.lp.name}).inject(this.newProjectContainer);
- this.newProjectIn.addEvents({
- keyup:function(){
- var v = this.newProjectIn.get("value");
- if(v.trim()==""){
- this.newProjectAdd.setStyles({
- "cursor":"",
- "background-color":"#F0F0F0",
- "color":"#666666"
- });
- }else{
- this.newProjectAdd.setStyles({
- "cursor":"pointer",
- "background-color":"#4A90E2",
- "color":"#FFFFFF"
- });
- }
- }.bind(this),
- focus:function(){
- this.newProjectContainer.setStyles({"border":"1px solid #4A90E2"});
- }.bind(this),
- blur:function(){
- this.newProjectContainer.setStyles({"border":"1px solid #A6A6A6"});
- }.bind(this)
- });
- this.newProjectDesContainer = new Element("div.newProjectDesContainer",{styles:this.css.newProjectDesContainer}).inject(this.formTableArea);
- this.newProjectDesIn = new Element("textarea.newProjectDesIn",{styles:this.css.newProjectDesIn,placeholder:this.lp.description}).inject(this.newProjectDesContainer);
- this.newProjectDesIn.addEvents({
- focus:function(){ //32px
- // var v = this.newProjectDesIn.get("value");
- // if(v.trim()==""){ return;
- // //this.newProjectDesIn.setStyle("line-height","");
- // var _h = 36;
- // //alert(this.newProjectDesContainer.getHeight()+_h)
- // this.newProjectDesContainer.setStyles({"height":(this.newProjectDesContainer.getHeight()+_h)+"px"});
- // this.newProjectDesIn.setStyles({"height":(this.newProjectDesIn.getHeight()+_h)+"px"});
- // this.formAreaNode.setStyles({"height":(this.formAreaNode.getHeight()+_h)+"px"});
- // this.formNode.setStyles({"height":(this.formNode.getHeight()+_h)+"px"});
- // this.formTableContainer.setStyles({"height":(this.formTableContainer.getHeight()+_h)+"px"});
- // this.formTableArea.setStyles({"height":(this.formTableArea.getHeight()+_h)+"px"});
- // this.formContentNode.setStyles({"height":(this.formContentNode.getHeight()+_h)+"px"});
- //
- // var pre = this.formTableContainer.getPrevious();
- // if(pre){
- // pre.destroy();
- // }
- // }
- this.newProjectDesContainer.setStyles({"border":"1px solid #4A90E2"});
- }.bind(this),
- blur:function(){
- // var v = this.newProjectDesIn.get("value");
- // if(v.trim()==""){ return;
- // //this.newProjectDesIn.setStyle("line-height","32px");
- // var _h = 36;
- // this.newProjectDesContainer.setStyles({"height":(this.newProjectDesContainer.getHeight()-_h-2)+"px"});
- // this.newProjectDesIn.setStyles({"height":(this.newProjectDesIn.getHeight()-_h-2)+"px"});
- // this.formAreaNode.setStyles({"height":(this.formAreaNode.getHeight()-_h)+"px"});
- // this.formNode.setStyles({"height":(this.formNode.getHeight()-_h)+"px"});
- // this.formTableContainer.setStyles({"height":(this.formTableContainer.getHeight()-_h)+"px"});
- // this.formTableArea.setStyles({"height":(this.formTableArea.getHeight()-_h)+"px"});
- // this.formContentNode.setStyles({"height":(this.formContentNode.getHeight()-_h)+"px"});
- //
- // var pre = this.formTableContainer.getPrevious();
- // if(pre){
- // pre.destroy();
- // }
- // }
- this.newProjectDesContainer.setStyles({"border":"1px solid #A6A6A6"});
- }.bind(this)
- });
- this.newProjectGroupText = new Element("div.newProjectGroupText",{styles:this.css.newProjectGroupText,text:this.lp.group}).inject(this.formTableArea);
- this.newProjectGroupContainer = new Element("div.newProjectGroupContainer",{styles:this.css.newProjectGroupContainer}).inject(this.formTableArea);
- this.newProjectGroupValue = new Element("div.newProjectGroupValue",{styles:this.css.newProjectGroupValue,text:""}).inject(this.newProjectGroupContainer);
- this.newProjectGroupArrow = new Element("div.newProjectGroupArrow",{styles:this.css.newProjectGroupArrow}).inject(this.newProjectGroupContainer);
- this.newProjectGroupContainer.addEvents({
- click:function(){
- var node = this.newProjectGroupContainer;
- var data = {groups:this.selectGroup};
- //alert(JSON.stringify(this.selectGroup))
- MWF.xDesktop.requireApp("TeamWork", "GroupSelect", function(){
- var gs = new MWF.xApplication.TeamWork.GroupSelect(this.container, node, this.app, data, {
- axis : "y",
- nodeStyles : {
- "z-index" : "102"
- },
- onClose:function(d){
- this.newProjectGroupContainer.setStyles({"border":"1px solid #A6A6A6"});
- if(!d) return;
- this.refreshGroup(function(){
- var res = [];
- d.each(function(dd){
- this.groupSearch(dd,function(json){
- if(json) res.push(json);
- }.bind(this));
- }.bind(this));
- this.selectGroup = res;
- var resVal = [];
- res.each(function(dd){
- resVal.push(dd.name);
- }.bind(this));
- this.newProjectGroupValue.set("text",resVal.join(","));
- }.bind(this));
- }.bind(this)
- });
- gs.load()
- }.bind(this));
- this.newProjectGroupContainer.setStyles({"border":"1px solid #4A90E2"});
- }.bind(this)
- });
- this.newProjectTemplateText = new Element("div.newProjectTemplateText",{styles:this.css.newProjectTemplateText,text:this.lp.template}).inject(this.formTableArea);
- this.newProjectTemplateContainer = new Element("div.newProjectTemplateContainer",{styles:this.css.newProjectTemplateContainer}).inject(this.formTableArea);
- this.newProjectTemplateValue = new Element("div.newProjectTemplateValue",{styles:this.css.newProjectTemplateValue,text:""}).inject(this.newProjectTemplateContainer);
- this.newProjectTemplateArrow = new Element("div.newProjectTemplateArrow",{styles:this.css.newProjectTemplateArrow}).inject(this.newProjectTemplateContainer);
- this.newProjectTemplateContainer.addEvents({
- click:function(){
- var tm = new MWF.xApplication.TeamWork.NewProject.TemplateSelect(this.container, this.newProjectTemplateContainer, this.app, {}, {
- css:this.css, lp:this.lp, axis : "y",
- position : { //node 固定的位置
- x : "auto",
- y : "middle"
- },
- nodeStyles : {
- "min-width":"200px",
- "width":"265px",
- "padding":"2px",
- "border-radius":"5px",
- "box-shadow":"0px 0px 4px 0px #999999",
- "z-index" : "201",
- "min-height":"250px"
- },
- onPostLoad:function(){
- tm.node.setStyles({"opacity":"0","top":(tm.node.getStyle("top").toInt()+4)+"px"});
- var fx = new Fx.Tween(tm.node,{duration:400});
- fx.start(["opacity"] ,"0", "1");
- },
- onClose:function(rd){
- this.newProjectTemplateContainer.setStyles({"border":"1px solid #cccccc"});
- if(!rd) return;
- this.newProjectTemplateValue.set("text",rd.title);
- this.templateId = rd.id;
- // if(rd.act == "remove"){
- // this.close(rd);
- // if(this.data.projectObj){ //reload project
- // this.data.projectObj.createTaskGroup()
- // }
- // }
- }.bind(this)
- },null,this);
- tm.load();
- this.newProjectTemplateContainer.setStyles({"border":"1px solid #4A90E2"});
- }.bind(this)
- });
- this.newProjectAdd = new Element("div.newProjectAdd",{styles:this.css.newProjectAdd,text:this.lp.add}).inject(this.formTableArea);
- this.newProjectAdd.addEvents({
- click:function(){
- var v = this.newProjectIn.get("value").trim();
- var des = this.newProjectDesIn.get("value");
- if(v=="") return;
- var groups = [];
- if(this.selectGroup){
- this.selectGroup.each(function(d){
- groups.push(d.id);
- });
- }
- var data = {
- "title":v,
- "description":des,
- "groups":groups,
- "templateId":this.templateId || ""
- };
- //this.actions.projectSave(data,function(json){
- this.rootActions.ProjectAction.save(data,function(json){
- this.close(json);
- }.bind(this));
- }.bind(this)
- });
- },
- groupSearch:function(id,callback){
- var res = null;
- this.allGroupList.each(function(d){
- if(d.id == id) res = d;
- }.bind(this));
- if(callback)callback(res);
- },
- refreshGroup:function(callback){
- //this.actions.groupList(function(json){
- this.rootActions.ProjectGroupAction.listGroups(function(json){
- this.allGroupList = json.data;
- if(callback)callback();
- }.bind(this))
- }
- });
- MWF.xApplication.TeamWork.NewProject.TemplateSelect = new Class({
- Extends: MWF.xApplication.TeamWork.Common.ToolTips,
- options : {
- // displayDelay : 300,
- hasArrow:false,
- event:"click"
- },
- _loadCustom : function( callback ){
- this.rootActions = this.app.rootActions;
- var _self = this;
- this.css = this.options.css;
- this.lp = this.options.lp;
- //this.data
- //this.contentNode
- //debugger;
- var topTemplateTitle = new Element("div.topTemplateTitle",{ styles:this.css.topTemplateTitle, text: this.lp.templateTitle }).inject(this.contentNode);
- this.tempateContainer = new Element("div.tempateContainer",{ styles:this.css.tempateContainer }).inject(this.contentNode);
- this.rootActions.ProjectTemplateAction.listNextWithFilter("(0)",100,{},function(json){
- //alert(json.data.length)
- json.data.each(function(data){
- this.templateItem(data)
- }.bind(this))
- }.bind(this));
- if(callback)callback();
- },
- templateItem:function(data){
- var _self = this;
- var templateItemContainer = new Element("div.templateItemContainer",{styles:this.css.templateItemContainer, id:data.id}).inject(this.tempateContainer);
- var templateItemIcon = new Element("div.templateItemIcon",{styles:this.css.templateItemIcon}).inject(templateItemContainer);
- var templateItemTitle = new Element("div.templateItemTitle",{styles:this.css.templateItemTitle,text:data.title}).inject(templateItemContainer);
- templateItemContainer.addEvents({
- mouseover:function(){
- this.setStyles({"background-color":"rgb(242,245,247)"});
- },
- mouseout:function(){
- this.setStyles({"background-color":"#ffffff"});
- },
- click:function(){
- var res = {};
- res.id = data.id;
- res.title = data.title;
- this.close(res)
- }.bind(this)
- });
- }
- });
|