Main.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. MWF.xApplication.TeamWork = MWF.xApplication.TeamWork || {};
  2. MWF.xApplication.TeamWork.Task = MWF.xApplication.TeamWork.Task || {};
  3. MWF.xApplication.TeamWork.Task.options.multitask = true;
  4. // MWF.xDesktop.requireApp("TeamWork", "Task", null, false);
  5. MWF.xDesktop.requireApp("TeamWork", "Common", null, false);
  6. MWF.xApplication.TeamWork.Task.Main = new Class({
  7. Extends: MWF.xApplication.Common.Main,
  8. Implements: [Options, Events],
  9. options: {
  10. "style": "default",
  11. "name": "TeamWork.Task",
  12. "icon": "icon.png",
  13. "width": "1000",
  14. "height": "700",
  15. "isResize": false,
  16. "isMax": false,
  17. "title": MWF.xApplication.TeamWork.Task.LP.title
  18. },
  19. onQueryLoad: function(){
  20. this.lp = MWF.xApplication.TeamWork.Task.LP;
  21. //this.lp = MWF.xApplication.TeamWork.LP; debugger;
  22. this.cssPath = "../x_component_TeamWork/$Task/"+this.options.style+"/css.wcss";
  23. if (!this.status) {
  24. } else {
  25. // this.options.workId = this.status.workId;
  26. // this.options.workCompletedId = this.status.workCompletedId;
  27. // this.options.jobId = this.status.jobId;
  28. // this.options.priorityWork = this.status.priorityWork;
  29. // this.options.readonly = (this.status.readonly === "true");
  30. this.options.taskId = this.status.taskId;
  31. this.options.project = this.status.project;
  32. }
  33. this.taskId = this.options.taskId || "";
  34. this.projectId = this.options.project || "";
  35. MWF.xDesktop.requireApp("TeamWork", "lp.zh-cn", {
  36. "onRequestFailure": function(){
  37. //alert("fail")
  38. }.bind(this),
  39. "onSuccess": function(json){
  40. this.lp = MWF.xApplication.TeamWork.LP;
  41. }.bind(this)
  42. }, false);
  43. },
  44. loadApplication: function(callback) {
  45. this.rootActions = MWF.Actions.load("x_teamwork_assemble_control");
  46. this.orgActions = MWF.Actions.load("x_organization_assemble_express");
  47. //this.actions = this.rootActions.TaskAction;
  48. this.node = new Element("div").inject(this.content);
  49. //alert(this.taskId)
  50. MWF.xDesktop.requireApp("TeamWork", "Task", function(){
  51. //alert("loaded")
  52. var data = {
  53. taskId:this.taskId
  54. };
  55. var opt={
  56. "type":"window"
  57. };
  58. var task = new MWF.xApplication.TeamWork.Task(this,data,opt);
  59. task.open();
  60. }.bind(this));
  61. },
  62. setScrollBar: function(node, view, style, offset, callback){
  63. if (!style) style = "default";
  64. if (!offset){
  65. offset = {
  66. "V": {"x": 0, "y": 0},
  67. "H": {"x": 0, "y": 0}
  68. };
  69. }
  70. MWF.require("MWF.widget.ScrollBar", function(){
  71. if(this.scrollbar && this.scrollbar.scrollVAreaNode){
  72. this.scrollbar.scrollVAreaNode.destroy();
  73. delete this.scrollbar;
  74. }
  75. this.scrollbar = new MWF.widget.ScrollBar(node, {
  76. "style": style,
  77. "offset": offset,
  78. "where": "before",
  79. "indent": false,
  80. "distance": 100,
  81. "friction": 4,
  82. "onScroll": function (y) {
  83. var scrollSize = node.getScrollSize();
  84. var clientSize = node.getSize();
  85. var scrollHeight = scrollSize.y - clientSize.y;
  86. if (y + 200 > scrollHeight && view && view.loadElementList) {
  87. if (! view.isItemsLoaded) view.loadElementList()
  88. }
  89. }.bind(this)
  90. });
  91. if (callback) callback();
  92. }.bind(this));
  93. return false;
  94. },
  95. setLoading:function(container){
  96. var _height = container.getHeight();
  97. var _width = container.getWidth();
  98. var loading = new Element("img",{styles:{
  99. "margin-top":"10px",
  100. "margin-bottom":"10px",
  101. "width":"100px",
  102. "height":"20px"
  103. },"src":"../x_component_TeamWork/$Main/default/icon/loading.gif"}).inject(container);
  104. //var loading = new Element("img",{"src":"../x_component_TeamWork/$Main/default/icon/loading.gif"}).inject(container);
  105. loading.setStyles({
  106. "margin-left":(_width-loading.getWidth())/2+"px"
  107. })
  108. },
  109. showErrorMessage:function(xhr,text,error){
  110. var errorText = error;
  111. var errorMessage;
  112. if (xhr) errorMessage = xhr.responseText;
  113. if(errorMessage!=""){
  114. var e = JSON.parse(errorMessage);
  115. if(e.message){
  116. this.notice( e.message,"error");
  117. }else{
  118. this.notice( errorText,"error");
  119. }
  120. }else{
  121. this.notice(errorText,"error");
  122. }
  123. },
  124. selectCalendar : function( target, container, options, callback ){
  125. var type = options.type;
  126. var calendarOptions = {
  127. "style" : "xform",
  128. "isTime": type == "time" || type.toLowerCase() == "datetime",
  129. "timeOnly": type == "time",
  130. "target": container,
  131. "onQueryComplate" : function( dateString ,date ){
  132. var json={
  133. "action":"ok",
  134. "dateString":dateString,
  135. "date":date
  136. };
  137. if( callback )callback( json );
  138. }.bind(this),
  139. "onClear":function(){
  140. var json={
  141. "action":"clear"
  142. };
  143. if(callback) callback(json);
  144. //if(this.calendar) delete this.calendar;
  145. }.bind(this),
  146. "onHide":function(){
  147. }.bind(this)
  148. };
  149. if( options.calendarOptions ){
  150. calendarOptions = Object.merge( calendarOptions, options.calendarOptions )
  151. }
  152. MWF.require("MWF.widget.Calendar", function(){
  153. this.calendar = new MWF.widget.Calendar( target, calendarOptions);
  154. this.calendar.show();
  155. }.bind(this));
  156. },
  157. recordStatus: function(){
  158. debugger;
  159. return {"taskId": this.options.taskId, "project": this.options.project};
  160. }
  161. });