Advertisement
Guest User

ceo-vision-connection.js

a guest
May 24th, 2017
528
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.79 KB | None | 0 0
  1.  
  2.  
  3. var randomString = function(length) {
  4. var text = "";
  5. var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  6. for(var i = 0; i < length; i++) {
  7. text += possible.charAt(Math.floor(Math.random() * possible.length));
  8. }
  9. return text;
  10. }
  11.  
  12. var getCookie = function(name) {
  13. var nameEQ = name + "=";
  14. var ca = document.cookie.split(';');
  15. for(var i=0;i < ca.length;i++) {
  16. var c = ca[i];
  17. while (c.charAt(0)==' ') c = c.substring(1,c.length);
  18. if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  19. }
  20. return null;
  21. }
  22.  
  23. var callbackError = function(error) {
  24. alert(error);
  25. window.location.href = window.location.origin;
  26. };
  27.  
  28. var gofast_conference = {
  29. token: '',
  30. nid: '',
  31. domain: '',
  32. name: ''
  33. };
  34.  
  35.  
  36. function loginGofastConference(token,nid,domain,name) {
  37. if (typeof window.localStorage !== 'undefined' && token && nid && domain) {
  38. gofast_conference.token = token;
  39. gofast_conference.nid = nid;
  40. gofast_conference.domain = domain;
  41. gofast_conference.name = name;
  42. var username = getCookie('gofast_user');
  43. //var conferenceAuthDomain = decodeURIComponent(getCookie('conference_auth_domain'));
  44. var url = gofast_conference.domain + '/conference/login';
  45. $.ajax({
  46. 'url': url,
  47. 'data': {
  48. 'username': username,
  49. 'nid': nid,
  50. 'token': token
  51. },
  52. 'type': 'POST',
  53. 'dataType': 'json',
  54. 'async': true,
  55. 'beforeSend': function(xhr){
  56. window.localStorage.removeItem('displayname');
  57. }
  58. }).done(function(result) {
  59. if (typeof result.error !== 'undefined') {
  60. callbackError(result.error);
  61. } else {
  62. if (result.xmppAccount !== '') {
  63. window.localStorage.setItem('xmpp_username_override', result.xmppAccount + '@' +
  64. config.hosts.domain);
  65. window.localStorage.setItem('xmpp_password_override', result.xmppPassword);
  66. window.localStorage.setItem('displayname', result.conference_displayname);
  67. window.XMPPAttachInfo = {
  68. status: "error"
  69. };
  70. if (window.APP && window.APP.connect.status === "ready") {
  71. window.APP.connect.handler();
  72. }
  73. } else {
  74. window.localStorage.setItem('xmpp_username_override', randomString(8) + '@'
  75. + config.hosts.domain);
  76. window.localStorage.setItem('xmpp_password_override', randomString(8));
  77. window.XMPPAttachInfo = {
  78. status: "error"
  79. };
  80. if (window.APP && window.APP.connect.status === "ready") {
  81. window.APP.connect.handler();
  82. }
  83. // Using setTimeout seems to be necessary to wait until Jitsi create data channel. Otherwise, "No opened data channel found" happens SOMETIMES !
  84. /* setTimeout(function() {
  85. window.XMPPAttachInfo = {
  86. status: "error"
  87. };
  88. if (window.APP && window.APP.connect.status === "ready") {
  89. window.APP.connect.handler();
  90. }
  91. }, 3000);*/
  92. }
  93. }
  94. });
  95. } else {
  96. window.location.href = window.location.origin;
  97. }
  98. }
  99.  
  100. $(document).ready(function(){
  101. $(window).unload(function(){
  102. if (gofast_conference.token && gofast_conference.nid && gofast_conference.domain) {
  103. var token = gofast_conference.token;
  104. var nid = gofast_conference.nid;
  105. var username = getCookie('gofast_user');
  106. //var conferenceAuthDomain = decodeURIComponent(getCookie('conference_auth_domain'));
  107. var url = gofast_conference.domain + '/conference/logout';
  108. $.ajax({
  109. 'url': url,
  110. 'data': {
  111. 'username': username,
  112. 'nid': nid,
  113. 'token': token
  114. },
  115. 'type': 'POST',
  116. 'dataType': 'json',
  117. 'async': false // /!\ IMPORTANT : ensure that this is a synchronous (the ajax callback is triggered before the tab is closed)
  118. }).done(function(result) {
  119. if (typeof result.error !== 'undefined') {
  120. callbackError(result.error);
  121. }
  122. });
  123. }
  124. });
  125. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement