/*
Copyright 2012-2020 OpenBroadcaster, Inc.
This file is part of OpenBroadcaster Server.
OpenBroadcaster Server is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenBroadcaster Server is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with OpenBroadcaster Server. If not, see .
*/
OB.Emergency = new Object();
OB.Emergency.init = function()
{
OB.Callbacks.add('ready',-4,OB.Emergency.initMenu);
}
OB.Emergency.initMenu = function()
{
//T Priority Broadcasts
OB.UI.addSubMenuItem('schedules', 'Priority Broadcasts', 'emergency', OB.Emergency.emergency, 30, 'manage_emergency_broadcasts');
}
OB.Emergency.player_id = null;
OB.Emergency.emergency = function()
{
OB.UI.replaceMain('emergency/emergency.html');
OB.Emergency.player_id = null;
OB.Emergency.emergencyInit();
$('#emergency_list_container').droppable({
drop: function(event, ui) {
if($(ui.draggable).attr('data-mode')=='media')
{
//T You can schedule only one item at a time.
if($('.sidebar_search_media_selected').length!=1) { OB.UI.alert('You can schedule only one item at a time.'); return; }
var item_id = $('.sidebar_search_media_selected').first().attr('data-id');
var item_name = $('.sidebar_search_media_selected').first().attr('data-artist')+' - '+$('.sidebar_search_media_selected').first().attr('data-title');
var item_type = $('.sidebar_search_media_selected').first().attr('data-type');
var item_duration = $('.sidebar_search_media_selected').first().attr('data-duration');
OB.Emergency.addEmergency(item_id,item_name,item_type);
}
else if($(ui.draggable).attr('data-mode')=='playlist')
{
//T Priority broadcast playlists are not supported at this time.
OB.UI.alert('Priority broadcast playlists are not supported at this time.');
}
}
});
}
OB.Emergency.emergencyInit = function()
{
var post = [];
post.push(['player','search', {}]);
post.push(['emergency','get_last_player', {}]);
OB.API.multiPost(post, function(responses)
{
var players = responses[0].data;
var last_player = responses[1];
$.each(players,function(index,item) {
if(item.use_parent_emergency=='1') return; // player uses parent emergency broadcasts, setting them here would not do anything.
// make sure we have permission for this
if(OB.Settings.permissions.indexOf('manage_emergency_broadcasts')==-1 && OB.Settings.permissions.indexOf('manage_emergency_broadcasts:'+item.id)==-1) return;
if(OB.Emergency.player_id==null) OB.Emergency.player_id = item.id; // default to first player.
$('#emergency_player_select').append('');
});
if(last_player.status && $('#emergency_player_select option[value='+last_player.data+']').length)
{
$('#emergency_player_select').val(last_player.data);
OB.Emergency.player_id = last_player.data;
}
OB.Emergency.loadEmergencies();
});
}
OB.Emergency.playerChange = function()
{
OB.Emergency.player_id = $('#emergency_player_select').val();
OB.Emergency.loadEmergencies();
}
OB.Emergency.loadEmergencies = function()
{
var post = [];
post.push(['emergency','search',{ 'player_id': OB.Emergency.player_id }]);
post.push(['emergency','set_last_player', { 'player': OB.Emergency.player_id}]);
OB.API.multiPost(post, function(responses)
{
if(responses[0].status==true)
{
var emergencies = responses[0].data;
$('#emergency_list tbody').children().not('#emergency_table_empty').remove();
if($(emergencies).length>0)
{
$('#emergency_table_empty').hide();
$.each(emergencies,function(index,data)
{
if(data.duration) var duration = Math.round(data.duration)+' seconds';
else var duration = '';
$('#emergency_list tbody').append('