Main.js 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  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. }
  31. this.taskId = this.options.taskId || "";
  32. this.projectId = this.options.project ||"";
  33. MWF.xDesktop.requireApp("TeamWork", "lp.zh-cn", {
  34. "onRequestFailure": function(){
  35. //alert("fail")
  36. }.bind(this),
  37. "onSuccess": function(json){
  38. this.lp = MWF.xApplication.TeamWork.LP;
  39. }.bind(this)
  40. }, false);
  41. },
  42. loadApplication: function(callback) {
  43. this.rootActions = MWF.Actions.load("x_teamwork_assemble_control");
  44. this.orgActions = MWF.Actions.load("x_organization_assemble_express");
  45. //this.actions = this.rootActions.TaskAction;
  46. //http://dev.o2oa.net/x_desktop/app.html?app=TeamWork.Task&status={"taskId":"abb0621d-c35c-4010-9cd3-49a439b36a09"}
  47. this.node = new Element("div").inject(this.content);
  48. //alert(this.taskId)
  49. MWF.xDesktop.requireApp("TeamWork", "Task", function(){
  50. //alert("loaded")
  51. var data = {
  52. taskId:this.taskId
  53. };
  54. var opt={
  55. "type":"window"
  56. };
  57. var task = new MWF.xApplication.TeamWork.Task(this,data,opt);
  58. task.open();
  59. }.bind(this));
  60. },
  61. setScrollBar: function(node, view, style, offset, callback){
  62. if (!style) style = "default";
  63. if (!offset){
  64. offset = {
  65. "V": {"x": 0, "y": 0},
  66. "H": {"x": 0, "y": 0}
  67. };
  68. }
  69. MWF.require("MWF.widget.ScrollBar", function(){
  70. if(this.scrollbar && this.scrollbar.scrollVAreaNode){
  71. this.scrollbar.scrollVAreaNode.destroy();
  72. delete this.scrollbar;
  73. }
  74. this.scrollbar = new MWF.widget.ScrollBar(node, {
  75. "style": style,
  76. "offset": offset,
  77. "where": "before",
  78. "indent": false,
  79. "distance": 100,
  80. "friction": 4,
  81. "onScroll": function (y) {
  82. var scrollSize = node.getScrollSize();
  83. var clientSize = node.getSize();
  84. var scrollHeight = scrollSize.y - clientSize.y;
  85. if (y + 200 > scrollHeight && view && view.loadElementList) {
  86. if (! view.isItemsLoaded) view.loadElementList()
  87. }
  88. }.bind(this)
  89. });
  90. if (callback) callback();
  91. }.bind(this));
  92. return false;
  93. },
  94. setLoading:function(container){
  95. var _height = container.getHeight();
  96. var _width = container.getWidth();
  97. var loading = new Element("img",{styles:{
  98. "margin-top":"10px",
  99. "margin-bottom":"10px",
  100. "width":"100px",
  101. "height":"20px"
  102. },"src":"/x_component_TeamWork/$Main/default/icon/loading.gif"}).inject(container);
  103. //var loading = new Element("img",{"src":"/x_component_TeamWork/$Main/default/icon/loading.gif"}).inject(container);
  104. loading.setStyles({
  105. "margin-left":(_width-loading.getWidth())/2+"px"
  106. })
  107. },
  108. showErrorMessage:function(xhr,text,error){
  109. var errorText = error;
  110. var errorMessage;
  111. if (xhr) errorMessage = xhr.responseText;
  112. if(errorMessage!=""){
  113. var e = JSON.parse(errorMessage);
  114. if(e.message){
  115. this.notice( e.message,"error");
  116. }else{
  117. this.notice( errorText,"error");
  118. }
  119. }else{
  120. this.notice(errorText,"error");
  121. }
  122. },
  123. selectCalendar : function( target, container, options, callback ){
  124. var type = options.type;
  125. var calendarOptions = {
  126. "style" : "xform",
  127. "isTime": type == "time" || type.toLowerCase() == "datetime",
  128. "timeOnly": type == "time",
  129. "target": container,
  130. "onQueryComplate" : function( dateString ,date ){
  131. var json={
  132. "action":"ok",
  133. "dateString":dateString,
  134. "date":date
  135. };
  136. if( callback )callback( json );
  137. }.bind(this),
  138. "onClear":function(){
  139. var json={
  140. "action":"clear"
  141. };
  142. if(callback) callback(json);
  143. //if(this.calendar) delete this.calendar;
  144. }.bind(this),
  145. "onHide":function(){
  146. }.bind(this)
  147. };
  148. if( options.calendarOptions ){
  149. calendarOptions = Object.merge( calendarOptions, options.calendarOptions )
  150. }
  151. MWF.require("MWF.widget.Calendar", function(){
  152. this.calendar = new MWF.widget.Calendar( target, calendarOptions);
  153. this.calendar.show();
  154. }.bind(this));
  155. },
  156. });