forked from External/greenlight
		
	| @@ -11,6 +11,14 @@ | |||||||
|         var rowData = table.row("#"+data.record_id).data(); |         var rowData = table.row("#"+data.record_id).data(); | ||||||
|         rowData.published = data.published |         rowData.published = data.published | ||||||
|         table.row("#"+data.record_id).data(rowData).draw(); |         table.row("#"+data.record_id).data(rowData).draw(); | ||||||
|  |         var publish = (data.published) ? 'publish' : 'unpublish'; | ||||||
|  |  | ||||||
|  |         // show alert success alert | ||||||
|  |         $('.alert-template .alert-message').html($('.'+publish+'-alert').html()); | ||||||
|  |         $('#alerts').html($('.alert-template').html()); | ||||||
|  |         setTimeout(function() { | ||||||
|  |           $('#alerts > .alert').alert('close'); | ||||||
|  |         }, 4000); | ||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
|   }; |   }; | ||||||
|   | |||||||
| @@ -52,6 +52,20 @@ | |||||||
|       document.execCommand("copy"); |       document.execCommand("copy"); | ||||||
|       meetingURL.blur(); |       meetingURL.blur(); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|  |     // enable popovers | ||||||
|  |     var options = { | ||||||
|  |       selector: '.has-popover', | ||||||
|  |       html: true, | ||||||
|  |       trigger: 'focus', | ||||||
|  |       title: function() { | ||||||
|  |         return $(".delete-popover-title").html(); | ||||||
|  |       }, | ||||||
|  |       content: function() { | ||||||
|  |         return $(".delete-popover-body").html(); | ||||||
|  |       } | ||||||
|  |     }; | ||||||
|  |     $('#recordings').popover(options); | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   var initIndex = function() { |   var initIndex = function() { | ||||||
| @@ -141,10 +155,12 @@ | |||||||
|               var roomName = getRoomName(); |               var roomName = getRoomName(); | ||||||
|               var published = row.published; |               var published = row.published; | ||||||
|               var eye = getPublishClass(published); |               var eye = getPublishClass(published); | ||||||
|               return '<button type="button" class="btn btn-default recording-update" data-id="'+data+'" data-room="'+roomName+'" data-published="'+published+'">' + |               return '<button type="button" class="btn btn-default recording-update" data-published="'+published+'">' + | ||||||
|                 '<i class="fa '+eye+'" aria-hidden="true"></i></button> ' + |                 '<i class="fa '+eye+'" aria-hidden="true"></i></button> ' + | ||||||
|                 '<button type="button" class="btn btn-default recording-delete" data-id="'+data+'" data-room="'+roomName+'">' + |                 '<a tabindex="0" role="button" class="btn btn-default has-popover"' + | ||||||
|                 '<i class="fa fa-trash-o" aria-hidden="true"></i></button>'; |                   'data-toggle="popover" data-placement="top">' + | ||||||
|  |                     '<i class="fa fa-trash-o" aria-hidden="true"></i>' + | ||||||
|  |                 '</a>'; | ||||||
|             } |             } | ||||||
|             return data; |             return data; | ||||||
|           } |           } | ||||||
| @@ -154,27 +170,29 @@ | |||||||
|  |  | ||||||
|     $('#recordings').on('click', '.recording-update', function(event) { |     $('#recordings').on('click', '.recording-update', function(event) { | ||||||
|       var btn = $(this); |       var btn = $(this); | ||||||
|       var room = btn.data('room'); |       var row = recordingsTable.api().row($(this).closest('tr')).data(); | ||||||
|       var id = btn.data('id'); |       var url = $('.meeting-url').val(); | ||||||
|  |       var id = row.id; | ||||||
|       var published = btn.data('published'); |       var published = btn.data('published'); | ||||||
|       btn.prop("disabled", true); |       btn.prop('disabled', true); | ||||||
|       $.ajax({ |       $.ajax({ | ||||||
|         method: 'PATCH', |         method: 'PATCH', | ||||||
|         url: '/rooms/'+room+'/recordings/'+id, |         url: url+'/recordings/'+id, | ||||||
|         data: {published: (!published).toString()} |         data: {published: (!published).toString()} | ||||||
|       }).done(function(data) { |       }).done(function(data) { | ||||||
|  |  | ||||||
|       }).fail(function(data) { |       }).fail(function(data) { | ||||||
|         btn.prop("disabled", false); |         btn.prop('disabled', false); | ||||||
|       }); |       }); | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|     $('#recordings').on('click', '.recording-delete', function(event) { |     $('#recordings').on('click', '.recording-delete', function(event) { | ||||||
|       var room = $(this).data('room'); |       var row = recordingsTable.api().row($(this).closest('tr')).data(); | ||||||
|       var id = $(this).data('id'); |       var url = $('.meeting-url').val(); | ||||||
|  |       var id = row.id; | ||||||
|       $.ajax({ |       $.ajax({ | ||||||
|         method: 'DELETE', |         method: 'DELETE', | ||||||
|         url: '/rooms/'+room+'/recordings/'+id |         url: url+'/recordings/'+id | ||||||
|       }).done(function() { |       }).done(function() { | ||||||
|         recordingsTable.api().row("#"+id).remove().draw(); |         recordingsTable.api().row("#"+id).remove().draw(); | ||||||
|       }); |       }); | ||||||
|   | |||||||
| @@ -10,7 +10,23 @@ html, body { | |||||||
| } | } | ||||||
|  |  | ||||||
| .app-background { | .app-background { | ||||||
|   background: linear-gradient(0, white 65%, #4DC0A2 35%); |   background: #4dc0a2; | ||||||
|  |   background: -moz-linear-gradient(top, #4dc0a2 0%, #4dc0a2 35%, #ffffff 35%, #ffffff 100%); | ||||||
|  |   background: -webkit-gradient(left top, left bottom, color-stop(0%, #4dc0a2), color-stop(35%, #4dc0a2), color-stop(35%, #ffffff), color-stop(100%, #ffffff)); | ||||||
|  |   background: -webkit-linear-gradient(top, #4dc0a2 0%, #4dc0a2 35%, #ffffff 35%, #ffffff 100%); | ||||||
|  |   background: -o-linear-gradient(top, #4dc0a2 0%, #4dc0a2 35%, #ffffff 35%, #ffffff 100%); | ||||||
|  |   background: -ms-linear-gradient(top, #4dc0a2 0%, #4dc0a2 35%, #ffffff 35%, #ffffff 100%); | ||||||
|  |   background: linear-gradient(to bottom, #4dc0a2 0%, #4dc0a2 35%, #ffffff 35%, #ffffff 100%); | ||||||
|  |   filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4dc0a2', endColorstr='#ffffff', GradientType=0 ); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #alerts { | ||||||
|  |   position: absolute; | ||||||
|  |   top: 10px; | ||||||
|  |   left: 50%; | ||||||
|  |   margin-left: -250px; | ||||||
|  |   width: 500px; | ||||||
|  |   z-index: 999; | ||||||
| } | } | ||||||
|  |  | ||||||
| .header { | .header { | ||||||
|   | |||||||
| @@ -41,7 +41,7 @@ | |||||||
|       <table id="recordings" class="table" width="100%"> |       <table id="recordings" class="table" width="100%"> | ||||||
|         <thead> |         <thead> | ||||||
|           <th><%= t('date_recorded') %></th> |           <th><%= t('date_recorded') %></th> | ||||||
|           <th><%= t('presentation') %></th> |           <th><%= t('thumbnails') %></th> | ||||||
|           <th><%= t('duration') %></th> |           <th><%= t('duration') %></th> | ||||||
|           <th><%= t('views') %></th> |           <th><%= t('views') %></th> | ||||||
|           <th><%= t('actions') %></th> |           <th><%= t('actions') %></th> | ||||||
| @@ -50,3 +50,31 @@ | |||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </div> | </div> | ||||||
|  |  | ||||||
|  | <div hidden class="hidden-elements"> | ||||||
|  |   <div class="delete-popover-title"> | ||||||
|  |     <%= t('are_you_sure') %> | ||||||
|  |   </div> | ||||||
|  |   <div class="delete-popover-body"> | ||||||
|  |     <button type="button" class="btn btn-danger recording-delete"> | ||||||
|  |       <%= t('yes') %> | ||||||
|  |     </button> | ||||||
|  |     <button type="button" class="btn btn-default"> | ||||||
|  |       <%= t('no') %> | ||||||
|  |     </button> | ||||||
|  |   </div> | ||||||
|  |   <div class="alert-template"> | ||||||
|  |     <div class="alert alert-success alert-dismissible fade in" role="alert"> | ||||||
|  |       <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | ||||||
|  |         <span aria-hidden="true">×</span> | ||||||
|  |       </button> | ||||||
|  |       <span class="alert-message">Recording was successfully published</span> | ||||||
|  |     </div> | ||||||
|  |   </div> | ||||||
|  |   <div class="publish-alert"> | ||||||
|  |     <%= t('recording_publish_success') %> | ||||||
|  |   </div> | ||||||
|  |   <div class="unpublish-alert"> | ||||||
|  |     <%= t('recording_unpublish_success') %> | ||||||
|  |   </div> | ||||||
|  | </div> | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ | |||||||
|  |  | ||||||
|   <body class="app-background" data-controller="<%= params[:controller] %>" data-action="<%= params[:action] %>"> |   <body class="app-background" data-controller="<%= params[:controller] %>" data-action="<%= params[:action] %>"> | ||||||
|     <!-- Messages --> |     <!-- Messages --> | ||||||
|     <div id='messages' class='hidden'> |     <div id='alerts'> | ||||||
|     </div> |     </div> | ||||||
|      |      | ||||||
|     <!-- Header --> |     <!-- Header --> | ||||||
|   | |||||||
| @@ -21,7 +21,8 @@ | |||||||
|  |  | ||||||
| en-US: | en-US: | ||||||
|   actions: Actions |   actions: Actions | ||||||
|   are_you: Are you %{name} ? |   are_you: Are you %{name}? | ||||||
|  |   are_you_sure: Are you sure? | ||||||
|   date_recorded: Date Recorded |   date_recorded: Date Recorded | ||||||
|   duration: Duration |   duration: Duration | ||||||
|   end: End |   end: End | ||||||
| @@ -35,16 +36,21 @@ en-US: | |||||||
|   login: login |   login: login | ||||||
|   logout: logout |   logout: logout | ||||||
|   my_room: my room |   my_room: my room | ||||||
|  |   no: No | ||||||
|   oauth_signup: Signup for customized sessions |   oauth_signup: Signup for customized sessions | ||||||
|   past_recordings: Past Recordings |   past_recordings: Past Recordings | ||||||
|   powered_bigbluebutton: Powered by BigBlueButton |   powered_bigbluebutton: Powered by BigBlueButton | ||||||
|   presentation: Presentation |   presentation: Presentation | ||||||
|  |   recording_publish_success: Recording was successfully published | ||||||
|  |   recording_unpublish_success: Recording was successfully unpublished | ||||||
|   refresh_html: <a href="#" class="generate-link">Click refresh</a> to generate a new meeting URL |   refresh_html: <a href="#" class="generate-link">Click refresh</a> to generate a new meeting URL | ||||||
|   session_url_explanation: The session will be taking place using the following URL |   session_url_explanation: The session will be taking place using the following URL | ||||||
|   start: Start |   start: Start | ||||||
|   start_new_session: Start a new session |   start_new_session: Start a new session | ||||||
|  |   thumbnails: Thumbnails | ||||||
|   url_copy_explanation: Copy this URL to invite others to the meeting |   url_copy_explanation: Copy this URL to invite others to the meeting | ||||||
|   video: Video |   video: Video | ||||||
|   views: Views |   views: Views | ||||||
|   wait_for_mod_msg: Looks like you're the first one here... |   wait_for_mod_msg: Looks like you're the first one here... | ||||||
|   wait_for_mod_explanation: You will automatically join when the meeting starts |   wait_for_mod_explanation: You will automatically join when the meeting starts | ||||||
|  |   yes: Yes | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user