dashboard.blade.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. @extends('layouts.pro')
  2. @section('content')
  3. @if(Session::get('message'))
  4. <div class="alert-alert-info">{{Session::get('message')}}</div>
  5. @endif
  6. <h1>Pro dashboard</h1>
  7. <a href="{{route('pro-logout')}}">Log out</a>
  8. <ul>
  9. <li>
  10. <a href="{{route('pro-index')}}">Pros</a>
  11. </li>
  12. </ul>
  13. <div moe>
  14. <a start show href="">create pro</a>
  15. <form url="/api/dev/createSystemAdmin" style="display:none">
  16. <h1>Form to create pro</h1>
  17. <button submit>submit</button>
  18. <button cancel>Cancel</button>
  19. </form>
  20. </div>
  21. <div class="modal" id="incomingCallModal" tabindex="-1" role="dialog">
  22. <div class="modal-dialog" role="document">
  23. <div class="modal-content">
  24. <div class="modal-header">
  25. <h5 class="modal-title">Incoming Call</h5>
  26. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  27. <span aria-hidden="true">&times;</span>
  28. </button>
  29. </div>
  30. <div class="modal-body">
  31. <p>Click <b>Accept</b> to join the call.</p>
  32. </div>
  33. <div class="modal-footer">
  34. <button type="button" class="btn btn-success px-4" onclick="joinCall()">Answer</button>
  35. <button type="button" class="btn btn-secondary px-4" data-dismiss="modal">Reject</button>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. <script>
  41. var stompClient = null;
  42. function setConnected(connected) {
  43. console.log("User is connected");
  44. $("#connect").prop("disabled", connected);
  45. $("#disconnect").prop("disabled", !connected);
  46. if (connected) {
  47. $("#conversation").show();
  48. }
  49. else {
  50. $("#conversation").hide();
  51. }
  52. $("#greetings").html("");
  53. }
  54. function connect() {
  55. console.log("connecting...");
  56. var socket = new SockJS('http://localhost:8080/ws');
  57. stompClient = Stomp.over(socket);
  58. stompClient.connect({}, function (frame) {
  59. console.log("Connected");
  60. setConnected(true);
  61. console.log('Connected: ' + frame);
  62. // stompClient.send("/app/update-participant-status", {}, JSON.stringify({meetingUid:"mymeetinguid", status:'mystatus'}));
  63. // stompClient.subscribe('/user/topic/on-participant-status-change', function (message) {
  64. // console.log("Participant status changed: ", message);
  65. // });
  66. stompClient.subscribe("/user/topic/on-pro-incoming-call", function(message){
  67. console.log("incoming call:", message);
  68. message = JSON.parse(message.body);
  69. console.log(message.meetingUid);
  70. $('#incomingCallModal').data('meetingUid', message.meetingUid).modal('show');
  71. });
  72. // connect
  73. stompClient.send("/app/pro-connect", {}, JSON.stringify({sessionKey: "<?= $sessionKey ?>"}));
  74. console.log('Pro connected')
  75. });
  76. }
  77. connect();
  78. function joinCall() {
  79. var meetingUid = $('#incomingCallModal').data('meetingUid');
  80. window.location.href = '/pro/meeting/' + meetingUid;
  81. }
  82. function disconnect() {
  83. if (stompClient !== null) {
  84. stompClient.disconnect();
  85. }
  86. setConnected(false);
  87. console.log("Disconnected");
  88. }
  89. function sendName() {
  90. stompClient.send("/app/hello", {}, JSON.stringify({'name': $("#name").val()}));
  91. }
  92. function showGreeting(message) {
  93. $("#greetings").append("<tr><td>" + message + "</td></tr>");
  94. }
  95. $(function () {
  96. $("form").on('submit', function (e) {
  97. e.preventDefault();
  98. });
  99. $( "#connect" ).click(function() { connect(); });
  100. $( "#disconnect" ).click(function() { disconnect(); });
  101. $( "#send" ).click(function() { sendName(); });
  102. });
  103. </script>
  104. @endsection