Main.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. MWF.xDesktop.requireApp("TeamWork", "Common", null, false);
  2. MWF.xApplication.TeamWork.options = {
  3. multitask: false,
  4. executable: true
  5. };
  6. MWF.xApplication.TeamWork.Main = new Class({
  7. Extends: MWF.xApplication.Common.Main,
  8. Implements: [Options, Events],
  9. options: {
  10. "style": "default",
  11. "name": "TeamWork",
  12. "icon": "appicon.png",
  13. // "width": "1270",
  14. // "height": "700",
  15. // "isResize": false,
  16. // "isMax": true,
  17. "title": MWF.xApplication.TeamWork.LP.title
  18. },
  19. onQueryLoad: function(){
  20. this.lp = MWF.xApplication.TeamWork.LP;
  21. },
  22. loadApplication: function(callback){
  23. this.user = layout.desktop.session.user.name;
  24. this.distinguishedName = layout.desktop.session.user.distinguishedName;
  25. this.userGender = layout.desktop.session.user.genderType;
  26. this.department="";
  27. this.restActions = MWF.Actions.get("x_teamwork_assemble_control");
  28. this.orgActions = MWF.Actions.get("x_organization_assemble_express");
  29. this.path = "/x_component_TeamWork/$Main/";
  30. if(!this.css){
  31. this.cssPath = this.path+this.options.style+"/css.wcss";
  32. this._loadCss();
  33. }
  34. MWF.xDesktop.requireApp("TeamWork", "ProjectList", function(){
  35. this.pl = new MWF.xApplication.TeamWork.ProjectList(this.content,this,this.restActions,{
  36. });
  37. this.pl.load();
  38. }.bind(this));
  39. this.addEvent("resize", function(){
  40. this.resize();
  41. }.bind(this));
  42. },
  43. showTips:function(target,data,opt){
  44. var opt = Object.merge( {nodeStyles:this.css.tips.nodeStyles}, opt );
  45. // if(this.stTimer){
  46. // clearTimeout(this.stTimer);
  47. // }
  48. // this.stTimer = window.setTimeout(function(){
  49. // var tt = new MWF.xApplication.TeamWork.Common.Tips(this.content, target, this.app, data, opt);
  50. // tt.load();
  51. // }.bind(this),100)
  52. this.st = new MWF.xApplication.TeamWork.Common.Tips(this.content, target, this.app, data, opt);
  53. this.st.load();
  54. },
  55. selectCalendar : function( target, container, options, callback ){
  56. var type = options.type;
  57. var calendarOptions = {
  58. "style" : "xform",
  59. "isTime": type == "time" || type.toLowerCase() == "datetime",
  60. "timeOnly": type == "time",
  61. "target": container,
  62. "onQueryComplate" : function( dateString ,date ){
  63. var json={
  64. "action":"ok",
  65. "dateString":dateString,
  66. "date":date
  67. };
  68. if( callback )callback( json );
  69. }.bind(this),
  70. "onClear":function(){
  71. var json={
  72. "action":"clear"
  73. };
  74. if(callback) callback(json);
  75. //if(this.calendar) delete this.calendar;
  76. }.bind(this),
  77. "onHide":function(){
  78. }.bind(this)
  79. };
  80. if( options.calendarOptions ){
  81. calendarOptions = Object.merge( calendarOptions, options.calendarOptions )
  82. }
  83. MWF.require("MWF.widget.Calendar", function(){
  84. this.calendar = new MWF.widget.Calendar( target, calendarOptions);
  85. this.calendar.show();
  86. }.bind(this));
  87. },
  88. setScrollBar: function(node, view, style, offset, callback){
  89. if (!style) style = "default";
  90. if (!offset){
  91. offset = {
  92. "V": {"x": 0, "y": 0},
  93. "H": {"x": 0, "y": 0}
  94. };
  95. }
  96. MWF.require("MWF.widget.ScrollBar", function(){
  97. if(this.scrollbar && this.scrollbar.scrollVAreaNode){
  98. this.scrollbar.scrollVAreaNode.destroy();
  99. delete this.scrollbar;
  100. }
  101. this.scrollbar = new MWF.widget.ScrollBar(node, {
  102. "style": style,
  103. "offset": offset,
  104. "where": "before",
  105. "indent": false,
  106. "distance": 100,
  107. "friction": 4,
  108. "onScroll": function (y) {
  109. var scrollSize = node.getScrollSize();
  110. var clientSize = node.getSize();
  111. var scrollHeight = scrollSize.y - clientSize.y;
  112. if (y + 200 > scrollHeight && view && view.loadElementList) {
  113. if (! view.isItemsLoaded) view.loadElementList()
  114. }
  115. }.bind(this)
  116. });
  117. if (callback) callback();
  118. }.bind(this));
  119. return false;
  120. },
  121. setLoading:function(container){
  122. var _height = container.getHeight();
  123. var _width = container.getWidth();
  124. var loading = new Element("img",{styles:this.css.loading,"src":"/x_component_TeamWork/$Main/default/icon/loading.gif"}).inject(container);
  125. //var loading = new Element("img",{"src":"/x_component_TeamWork/$Main/default/icon/loading.gif"}).inject(container);
  126. loading.setStyles({
  127. "margin-left":(_width-loading.getWidth())/2+"px"
  128. })
  129. },
  130. showErrorMessage:function(xhr,text,error){
  131. var errorText = error;
  132. var errorMessage;
  133. if (xhr) errorMessage = xhr.responseText;
  134. if(errorMessage!=""){
  135. var e = JSON.parse(errorMessage);
  136. if(e.message){
  137. this.notice( e.message,"error");
  138. }else{
  139. this.notice( errorText,"error");
  140. }
  141. }else{
  142. this.notice(errorText,"error");
  143. }
  144. },
  145. resize:function(){
  146. //alert("resize")
  147. //Project
  148. if(this.content.getElements(".taskGroupItemContainer").length>0){
  149. this.content.getElements(".taskGroupItemContainer").each(function(d){
  150. var pe = d.getParent();
  151. var pr_w = pe.getElement(".taskGroupItemTitleContainer").getHeight().toInt();
  152. var _h = pe.getHeight().toInt() - pr_w -10-10;
  153. d.setStyles({"height":_h+"px"})
  154. });
  155. }
  156. //Task
  157. if(this.content.getElement(".taskInforContainer")){
  158. var _h = this.content.getElement(".taskInforContainer").getHeight().toInt();
  159. if(this.content.getElement(".taskInforContent")){
  160. this.content.getElement(".taskInforContent").setStyle("height",(_h+70)+"px")
  161. }
  162. }
  163. //taskGroupItemContainer
  164. //taskGroupLayout,taskGroupItemContainer 自定义高度
  165. },
  166. });