Add poll notification, channel options (don't save to db yet)

This commit is contained in:
calzoneman 2013-03-22 15:04:04 -05:00
parent bbfa4ba53d
commit bf72733086
10 changed files with 178 additions and 25 deletions

View file

@ -106,6 +106,12 @@
font-size: 18pt;
}
.poll-notify {
color: #0000aa;
font-weight: bold;
font-size: 14pt;
}
.option button {
margin-right: 15px;
}

View file

@ -35,6 +35,9 @@ function initCallbacks() {
socket.on('rank', function(data) {
if(data.rank >= Rank.Moderator) {
$('#playlist_controls').css("display", "block");
$('#playlist_controls button').each(function() {
$(this).attr('disabled', false);
});
$('#qlockbtn').css("display", "block");
var poll = $('#pollcontainer .active');
if(poll.length > 0) {
@ -48,6 +51,8 @@ function initCallbacks() {
for(var i = 0; i < users.length; i++) {
addUserDropdown(users[i], users[i].children[1].innerHTML);
}
$('#chancontrols').show();
}
RANK = data.rank;
});
@ -73,6 +78,24 @@ function initCallbacks() {
}
});
socket.on('channelOpts', function(opts) {
$('#opt_qopen_allow_qnext').prop('checked', opts.qopen_allow_qnext);
$('#opt_qopen_allow_move').prop('checked', opts.qopen_allow_move);
$('#opt_qopen_allow_delete').prop('checked', opts.qopen_allow_delete);
$('#opt_qopen_allow_playnext').prop('checked', opts.qopen_allow_playnext);
$('#opt_pagetitle').attr('placeholder', opts.pagetitle);
document.title = opts.pagetitle;
$('#opt_bgimage').attr('placeholder', opts.bgimage);
if(opts.bgimage != "")
$('body').css("background", "url('" + opts.bgimage + "') no-repeat fixed");
CHANNELOPTS = opts;
if(opts.qopen_allow_qnext)
$('#queue_next').attr('disabled', false);
if(opts.qopen_allow_playnext)
$('#play_next').attr('disabled', false);
rebuildPlaylist();
});
socket.on('usercount', function(data) {
$('#usercount').text(data.count + " connected users");
});
@ -134,22 +157,25 @@ function initCallbacks() {
$('#playlist_controls').css('display', '');
if(RANK < Rank.Moderator) {
$('#qlockbtn').css('display', 'none');
rebuildPlaylist();
if(!CHANNELOPTS.qopen_allow_qnext)
$('#queue_next').attr('disabled', true);
if(!CHANNELOPTS.qopen_allow_playnext)
$('#play_next').attr('disabled', true);
}
}
else if(RANK < Rank.Moderator) {
$('#playlist_controls').css('display', 'none');
}
if(RANK >= Rank.Moderator) {
if(OPENQUEUE) {
$('#qlockbtn').removeClass('btn-danger')
.addClass('btn-success')
.text('Lock Queue');
}
else {
$('#qlockbtn').removeClass('btn-success')
.addClass('btn-danger')
.text('Unlock Queue');
}
if(OPENQUEUE) {
$('#qlockbtn').removeClass('btn-danger')
.addClass('btn-success')
.text('Lock Queue');
}
else {
$('#qlockbtn').removeClass('btn-success')
.addClass('btn-danger')
.text('Unlock Queue');
}
});

View file

@ -13,6 +13,7 @@ var MEDIATYPE = "yt";
var POSITION = -1;
var RANK = 0;
var OPENQUEUE = false;
var CHANNELOPTS = {};
var uname = readCookie('sync_uname');
var pw = readCookie('sync_pw');
@ -207,6 +208,24 @@ $('#chatline').keydown(function(ev) {
}
});
$('#opt_submit').click(function() {
var ptitle = $('#opt_pagetitle').val();
if(ptitle == '')
ptitle = $('#opt_pagetitle').attr('placeholder')
var bgimage = $('#opt_bgimage').val();
if(bgimage == '')
bgimage = $('#opt_bgimage').attr('placeholder')
opts = {
qopen_allow_qnext: $('#opt_qopen_allow_qnext').prop('checked'),
qopen_allow_move: $('#opt_qopen_allow_move').prop('checked'),
qopen_allow_delete: $('#opt_qopen_allow_delete').prop('checked'),
qopen_allow_playnext: $('#opt_qopen_allow_playnext').prop('checked'),
pagetitle: ptitle,
bgimage: $('#opt_bgimage').val()
};
socket.emit('channelOpts', opts);
});
function searchLibrary() {
socket.emit('searchLibrary', {

View file

@ -198,6 +198,25 @@ function addQueueButtons(li) {
dest: dest
});
});
if(RANK < Rank.Moderator && !LEADER) {
if(!CHANNELOPTS.qopen_allow_delete)
$(btnRemove).attr('disabled', true);
if(!CHANNELOPTS.qopen_allow_move) {
$(btnUp).attr('disabled', true);
$(btnDown).attr('disabled', true);
}
if(!CHANNELOPTS.qopen_allow_qnext)
$(btnNext).attr('disabled', true);
}
}
function rebuildPlaylist() {
$('#queue li').each(function() {
$(this).find('.btn-group').remove();
if(RANK >= Rank.Moderator || LEADER || OPENQUEUE)
addQueueButtons(this);
});
}
// Add buttons to a list entry for the library search results
@ -466,6 +485,9 @@ function closePoll() {
function addPoll(data) {
closePoll();
var pollMsg = $('<div/>').addClass('poll-notify')
.text(data.initiator + ' opened a poll: "' + data.title + '"')
.appendTo($('#messagebuffer'));
var poll = $('<div/>').addClass('well active').prependTo($('#pollcontainer'));
$('<button/>').addClass('close pull-right').text('×')
.appendTo(poll)