ProjectTemplate.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. MWF.xApplication.TeamWork = MWF.xApplication.TeamWork || {};
  2. MWF.xApplication.TeamWork.ProjectTemplate = new Class({
  3. Extends: MWF.xApplication.TeamWork.Common.Popup,
  4. options: {
  5. "closeByClickMask": false
  6. },
  7. open: function (e) {
  8. //设置css 和 lp等
  9. var css = this.css;
  10. this.cssPath = "/x_component_TeamWork/$ProjectTemplate/" + this.options.style + "/css.wcss";
  11. this._loadCss();
  12. if (css) this.css = Object.merge(css, this.css);
  13. this.lp = this.app.lp.bam.template;
  14. this.fireEvent("queryOpen");
  15. this.isNew = false;
  16. this.isEdited = false;
  17. this._open();
  18. this.fireEvent("postOpen");
  19. },
  20. _createTableContent: function () {
  21. if(this.data.id && this.data.id!=""){
  22. this.isEdited = true
  23. }else{
  24. this.isEdited = false;
  25. }
  26. var topTitleContainer = new Element("div.topTitleContainer",{styles:this.css.topTitleContainer}).inject(this.formTableArea);
  27. var topTitle = new Element("div.topTitle",{styles:this.css.topTitle,text:this.lp.title}).inject(topTitleContainer);
  28. var templateNameTxt = new Element("div.templateNameTxt",{styles:this.css.templateNameTxt,text:this.lp.name}).inject(this.formTableArea);
  29. var templateNameContainer = new Element("div.templateNameContainer",{styles:this.css.templateNameContainer}).inject(this.formTableArea);
  30. this.templateNameInput = new Element("input",{type:"text",styles:this.css.templateNameInput,value:""}).inject(templateNameContainer);
  31. this.templateNameInput.addEvents({
  32. focus:function(){
  33. this.setStyles({"border":"1px solid #1b9aee"});
  34. },
  35. blur:function(){
  36. if(this.get("value").trim()==""){
  37. this.setStyles({"border":"1px solid #ff0000"});
  38. }else{
  39. this.setStyles({"border":"1px solid #cccccc"});
  40. }
  41. }
  42. })
  43. var templateDesTxt = new Element("div.templateDesTxt",{styles:this.css.templateDesTxt,text:this.lp.description}).inject(this.formTableArea);
  44. var templateDesContainer = new Element("div.templateDesContainer",{styles:this.css.templateDesContainer}).inject(this.formTableArea);
  45. this.templateDesInput = new Element("textarea.templateDesInput",{styles:this.css.templateDesInput}).inject(templateDesContainer);
  46. this.templateDesInput.addEvents({
  47. focus:function(){
  48. this.setStyles({"border":"1px solid #1b9aee"});
  49. }
  50. })
  51. var templateLaneTxt = new Element("div.templateLaneTxt",{styles:this.css.templateLaneTxt,text:this.lp.lane+"("+this.lp.laneTip+")"}).inject(this.formTableArea);
  52. var templateLaneContainer = new Element("div.templateLaneContainer",{styles:this.css.templateLaneContainer}).inject(this.formTableArea);
  53. this.templateLaneInput = new Element("input",{type:"text",styles:this.css.templateLaneInput,value:"",placeholder:this.lp.laneTip}).inject(templateLaneContainer);
  54. this.templateLaneInput.addEvents({
  55. focus:function(){
  56. this.setStyles({"border":"1px solid #1b9aee"});
  57. },
  58. blur:function(){
  59. if(this.get("value").trim()==""){
  60. this.setStyles({"border":"1px solid #ff0000"});
  61. }else{
  62. this.setStyles({"border":"1px solid #cccccc"});
  63. }
  64. }
  65. })
  66. var templateActionContainer = new Element("div.templateActionContainer",{styles:this.css.templateActionContainer}).inject(this.formTableArea);
  67. this.closeAction = new Element("div.okAction",{styles:this.css.closeAction,text:this.lp.close}).inject(templateActionContainer);
  68. this.closeAction.addEvent("click",function(){ this.close(); }.bind(this))
  69. this.okAction = new Element("div.okAction",{styles:this.css.okAction,text:this.lp.ok}).inject(templateActionContainer);
  70. this.okAction.addEvents({
  71. click:function(){
  72. var flag = true;
  73. if(this.templateNameInput.get("value").trim()==""){
  74. this.templateNameInput.setStyles({"border":"1px solid #ff0000"});
  75. flag = false;
  76. }
  77. if(this.templateLaneInput.get("value").trim()==""){
  78. this.templateLaneInput.setStyles({"border":"1px solid #ff0000"});
  79. flag = false;
  80. }
  81. if(flag){
  82. var data = {}
  83. if(this.isEdited) data.id = this.data.id;
  84. data.title = this.templateNameInput.get("value").trim();
  85. data.description = this.templateDesInput.get("value").trim();
  86. data.taskList = this.templateLaneInput.get("value").split(",");
  87. this.rootActions.ProjectTemplateAction.save(data,function(json){
  88. this.close(json);
  89. }.bind(this))
  90. }
  91. }.bind(this)
  92. })
  93. if(this.isEdited){
  94. this.getTemplate(this.data.id,function(json){
  95. this.templateNameInput.set("value",json.title);
  96. this.templateDesInput.set("value",json.description);
  97. this.templateLaneInput.set("value",json.taskList.join(","));
  98. }.bind(this))
  99. }
  100. },
  101. getTemplate:function(id,callback){
  102. this.rootActions.ProjectTemplateAction.get(id,function(json){
  103. callback(json.data)
  104. }.bind(this));
  105. }
  106. });