Main.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. MWF.xDesktop.requireApp("OnlineMeeting", "Actions.RestActions", null, false);
  2. MWF.xApplication.OnlineMeeting.options.multitask = false;
  3. MWF.xApplication.OnlineMeeting.Main = new Class({
  4. Extends: MWF.xApplication.Common.Main,
  5. Implements: [Options, Events],
  6. options: {
  7. "style": "default",
  8. "name": "OnlineMeeting",
  9. "icon": "icon.png",
  10. "width": "500",
  11. "height": "600",
  12. "isResize": true,
  13. "isMax": true,
  14. "title": MWF.xApplication.OnlineMeeting.LP.title
  15. },
  16. onQueryLoad: function(){
  17. this.lp = MWF.xApplication.OnlineMeeting.LP;
  18. this.actions = new MWF.xApplication.OnlineMeeting.Actions.RestActions();
  19. },
  20. getLogin: function(success, failure){
  21. if (failure) failure();
  22. },
  23. loginOpenMeeting: function(data, success, failure){
  24. var uri = this.actions.getLoginUri(data);
  25. var iframe = new Element("iframe", {"src": uri, "styles": {"display": "none"}}).inject(this.content);
  26. window.setTimeout(function(){
  27. if (success) success();
  28. }.bind(this), 3000);
  29. },
  30. loadApplication: function(callback) {
  31. this.actions.getOpenMeeting(function(json){
  32. this.meetingLoginData = json.data;
  33. this.getLogin(function(){
  34. this.loadMeetingRoom();
  35. }.bind(this), function(){
  36. if (this.meetingLoginData){
  37. this.loginOpenMeeting(this.meetingLoginData, function(){
  38. this.loadMeetingRoom();
  39. }.bind(this));
  40. }
  41. }.bind(this));
  42. }.bind(this));
  43. },
  44. loadMeetingRoom: function(){
  45. this.titleNode = new Element("div", {"styles": this.css.titleNode}).inject(this.content);
  46. //this.titleIconNode = new Element("div", {"styles": this.css.titleNode});
  47. //this.titleTextNode = new Element("div", {"styles": this.css.titleNode});
  48. this.titleNode.set("text", this.lp.netMeetingRoom);
  49. this.contentNode = new Element("div", {"styles": this.css.contentNode}).inject(this.content);
  50. this.setContentSize();
  51. this.addEvent("resize", this.setContentSize.bind(this));
  52. //this.content.setStyle("overflow": "")
  53. this.loadCountent();
  54. },
  55. setContentSize: function(){
  56. var size = this.content.getSize();
  57. var titleSize = this.titleNode.getSize();
  58. var h = size.y-titleSize.y;
  59. this.contentNode.setStyle("height", ""+h+"px");
  60. },
  61. loadCountent: function(){
  62. this.actions.listRoom(function(json){
  63. json.data.each(function(d){
  64. d.url = this.actions.getRoomUri(d);
  65. new MWF.xApplication.OnlineMeeting.room(this, d);
  66. }.bind(this));
  67. }.bind(this));
  68. }
  69. });
  70. MWF.xApplication.OnlineMeeting.room = new Class({
  71. initialize: function(app, data){
  72. this.data = data
  73. this.app = app
  74. this.css = this.app.css;
  75. this.container = this.app.contentNode;
  76. this.lp = this.app.lp;
  77. this.load();
  78. },
  79. load: function(){
  80. this.node = new Element("div", {"styles": this.css.roomNode}).inject(this.container);
  81. this.iconNode = new Element("div", {"styles": this.css.roomIconNode}).inject(this.node);
  82. this.textNode = new Element("div", {"styles": this.css.roomTextNode}).inject(this.node);
  83. this.textNode.set("text", this.data.name);
  84. this.node.addEvent("click", function(e){
  85. window.open(this.data.url);
  86. // var _self = this;
  87. // var options = {"url": this.data.url};
  88. // this.app.desktop.openApplication(e, "OnlineMeetingRoom", options);
  89. }.bind(this));
  90. }
  91. });