diff options
author | Maxime Corteel <mcorteel@gmail.com> | 2016-04-17 02:00:54 +0300 |
---|---|---|
committer | Maxime Corteel <mcorteel@gmail.com> | 2016-04-19 00:37:50 +0300 |
commit | d2f7bae5c60afd4aedf57a9aeefd4b1d600f7d15 (patch) | |
tree | 9fd69c3d1c337aeed405c7910f9871072864e12f /js | |
parent | 34e8f66e6fe13027b56b3f8480dee42902f33bd7 (diff) |
Design changes
Diffstat (limited to 'js')
-rw-r--r-- | js/create_edit.js | 133 | ||||
-rwxr-xr-x | js/start.js | 38 | ||||
-rw-r--r-- | js/vote.js | 257 |
3 files changed, 100 insertions, 328 deletions
diff --git a/js/create_edit.js b/js/create_edit.js index 51f34bb3..50674abd 100644 --- a/js/create_edit.js +++ b/js/create_edit.js @@ -2,8 +2,6 @@ var g_chosen_datetimes = []; var g_chosen_texts = []; var g_chosen_groups = []; var g_chosen_users = []; -var g_tmp_groups = []; -var g_tmp_users = []; var chosen_type = 'event'; var access_type = ''; @@ -11,21 +9,15 @@ $(document).ready(function () { // enable / disable date picker $('#id_expire_set').click(function(){ $('#id_expire_date').prop("disabled", !this.checked); - - // TODO: this would be nice, for some reason it doesn't work - //if (this.checked) { - // $("id_expire_date").focus(); - //} + if (this.checked) { + $("#id_expire_date").focus(); + } }); var privateRadio = document.getElementById('private'); var hiddenRadio = document.getElementById('hidden'); var publicRadio = document.getElementById('public'); var selectRadio = document.getElementById('select'); - privateRadio.onclick = hideSelectTable; - hiddenRadio.onclick = hideSelectTable; - publicRadio.onclick = hideSelectTable; - selectRadio.onclick = showSelectTable; if(privateRadio.checked) access_type = 'registered'; if(hiddenRadio.checked) access_type = 'hidden'; if(publicRadio.checked) access_type = 'public'; @@ -176,40 +168,24 @@ $(document).ready(function () { text.value = ''; }); - $(document).on('click', '#button_cancel_access', function(e) { - g_tmp_groups = []; - g_tmp_users = []; - closeAccessDialog(); - }); - - $(document).on('click', '#button_ok_access', function(e) { - g_chosen_groups = g_tmp_groups; - g_chosen_users = g_tmp_users; - g_tmp_groups = []; - g_tmp_users = []; - closeAccessDialog(); - }); - $(document).on('click', '.cl_user_item', function(e) { - $(this).switchClass('cl_user_item', 'cl_user_item_selected'); - g_tmp_users.push(this.id); - }); - - $(document).on('click', '.cl_user_item_selected', function(e) { - $(this).switchClass('cl_user_item_selected', 'cl_user_item'); - var index = g_tmp_users.indexOf(this.id); - if(index > -1) g_tmp_users.splice(index, 1); + if($(this).hasClass('selected')) { + var index = g_chosen_users.indexOf(this.id); + if(index > -1) g_chosen_users.splice(index, 1); + } else { + g_chosen_users.push(this.id); + } + $(this).toggleClass('selected'); }); - + $(document).on('click', '.cl_group_item', function(e) { - $(this).switchClass('cl_group_item', 'cl_group_item_selected'); - g_tmp_groups.push(this.id); - }); - - $(document).on('click', '.cl_group_item_selected', function(e) { - $(this).switchClass('cl_group_item_selected', 'cl_group_item'); - var index = g_tmp_groups.indexOf(this.id); - if(index > -1) g_tmp_groups.splice(index, 1); + if($(this).hasClass('selected')) { + var index = g_chosen_groups.indexOf(this.id); + if(index > -1) g_chosen_groups.splice(index, 1); + } else { + g_chosen_groups.push(this.id); + } + $(this).toggleClass('selected'); }); $('.toggleable-row').hover( @@ -254,9 +230,9 @@ $(document).ready(function () { $('input[type=radio][name=accessType]').change(function() { access_type = this.value; if(access_type == 'select') { - showAccessDialog(); + $("#access_rights").show(); } else { - closeAccessDialog(); + $("#access_rights").hide(); } }); @@ -434,72 +410,3 @@ function addColToList(ts, text, dateTs) { td.id = ts; } } - -//Popup dialog -function showAccessDialog() { - var message = t('polls', 'Please choose the groups or users you want to add to your poll.'); - - // get the screen height and width - var maskHeight = $(document).height(); - var maskWidth = $(window).width(); - - // calculate the values for center alignment - //var dialogTop = (maskHeight / 3) - ($('#dialog-box').height()); - // todo: height doesn't work - var dialogTop = 100; - var dialogLeft = (maskWidth / 2) - ($('#dialog-box').width() / 2); - - // assign values to the overlay and dialog box - $('#dialog-overlay').css({height: maskHeight, width: maskWidth}).show(); - $('#dialog-box').css({top: dialogTop, left: dialogLeft}).show(); - - // display the message - $('#dialog-message').html(message); - - var unselectedGrps = [].slice.call(document.getElementsByClassName('cl_group_item')); - var selectedGrps = [].slice.call(document.getElementsByClassName('cl_group_item_selected')); - var unselectedUsers = [].slice.call(document.getElementsByClassName('cl_user_item')); - var selectedUsers = [].slice.call(document.getElementsByClassName('cl_user_item_selected')); - cells_grp = unselectedGrps.concat(selectedGrps); - cells_usr = unselectedUsers.concat(selectedUsers); - - var tmpGroups = g_chosen_groups.slice(); - for(var i=0; i<cells_grp.length; i++) { - var curr = cells_grp[i]; - curr.className = 'cl_group_item'; - for(var j=0; j<tmpGroups.length; j++) { - if(tmpGroups[j] == curr.id) { - curr.className = 'cl_group_item_selected'; - tmpGroups.splice(j, 1); - break; - } - } - } - var tmpUsers = g_chosen_users.slice(); - for(var i=0; i<cells_usr.length; i++) { - var curr = cells_usr[i]; - curr.className = 'cl_user_item'; - for(var j=0; j<tmpUsers.length; j++) { - if(tmpUsers[j] == curr.id) { - curr.className = 'cl_user_item_selected'; - tmpUsers.splice(j, 1); - break; - } - } - } - g_tmp_groups = g_chosen_groups.slice(); - g_tmp_users = g_chosen_users.slice(); -} - -function closeAccessDialog() { - $('#dialog-box').hide(); - return false; -} - -function showSelectTable() { - document.getElementById("table_access").style.display = "table"; -} - -function hideSelectTable() { - document.getElementById("table_access").style.display = "none"; -} diff --git a/js/start.js b/js/start.js index 65a1101b..57a8d47e 100755 --- a/js/start.js +++ b/js/start.js @@ -1,39 +1,9 @@ -var edit_access_id = null; // set if called from the summary page - $(document).ready(function () { - edit_access_id = null; - // users, groups - var elem = document.getElementById('select'); - if (elem) elem.onclick = showAccessDialog; - elem = document.getElementById('button_close_access'); - if (elem) elem.onclick = closeAccessDialog; - - cells = document.getElementsByClassName('cl_group_item'); - for (var i = 0; i < cells.length; i++) { - cells[i].onclick = groupItemClicked; - } - cells = document.getElementsByClassName('cl_user_item'); - for (var i = 0; i < cells.length; i++) { - cells[i].onclick = userItemClicked; - } + $('.cl_delete').click(deletePoll); - var cells = document.getElementsByClassName('cl_delete'); - for (var i = 0; i < cells.length; i++) { - var cell = cells[i]; - cells[i].onclick = deletePoll; - } - - // set "show poll url" handler - cells = document.getElementsByClassName('cl_poll_url'); - for (var i = 0; i < cells.length; i++) { - var cell = cells[i]; - cells[i].onclick = function(e) { - // td has inner 'input'; value is poll url - var cell = e.target; - var url = cell.getElementsByTagName('input')[0].value; - window.prompt(t('polls','Copy to clipboard: Ctrl+C, Enter'), url); - } - } + $('.cl_link').click(function() { + window.prompt(t('polls','Copy to clipboard: Ctrl+C, Enter'), $(this).data('url')); + }); }); function deletePoll(e) { @@ -4,27 +4,13 @@ var newUserTypes = []; var max_votes = 0; var values_changed = false; -$(document).ready(function () { - var cells = []; - cells = document.getElementsByClassName('cl_click'); - // loop over 'user' cells - for (var i = 0; i < cells.length; i++){ - // fill arrays (if this is edit) - if (cells[i].className.indexOf('poll-cell-active-not') >= 0){ - newUserTypes.push(0); - newUserDates.push(cells[i].id); - } else if (cells[i].className.indexOf('poll-cell-active-is') >= 0){ - newUserTypes.push(1); - newUserDates.push(cells[i].id); - } else if(cells[i].className.indexOf('poll-cell-active-maybe') >= 0){ - newUserTypes.push(2); - newUserDates.push(cells[i].id); - } else { - newUserTypes.push(-1); - newUserDates.push(cells[i].id); - } - } +$.fn.switchClass = function(a, b) { + this.removeClass(a); + this.addClass(b); + return this; +} +$(document).ready(function () { $('#submit_finish_vote').click(function() { var form = document.finish_vote; var ac = document.getElementById('user_name'); @@ -37,6 +23,19 @@ $(document).ready(function () { } } check_notif = document.getElementById('check_notif'); + var newUserDates = [], newUserTypes = []; + $(".cl_click").each(function() { + if($(this).hasClass('poll-cell-active-not')) { + newUserTypes.push(0); + } else if ($(this).hasClass('poll-cell-active-is')){ + newUserTypes.push(1); + } else if($(this).hasClass('poll-cell-active-maybe')){ + newUserTypes.push(2); + } else { + newUserTypes.push(-1); + } + newUserDates.push(parseInt($(this).attr('id'))); + }); form.elements['dates'].value = JSON.stringify(newUserDates); form.elements['types'].value = JSON.stringify(newUserTypes); form.elements['notif'].value = (check_notif && check_notif.checked) ? 'true' : 'false'; @@ -44,179 +43,75 @@ $(document).ready(function () { form.submit(); }); - $('#submit_send_comment').click(function() { + $('#submit_send_comment').click(function(e) { + e.preventDefault(); var form = document.send_comment; var comm = document.getElementById('commentBox'); - if(comm.value.length <= 0) { + if(comm.value.trim().length <= 0) { alert(t('polls', 'Please add some text to your comment before submitting it.')); return; } - form.submit(); + var data = { + pollId: form.elements['pollId'].value, + userId: form.elements['userId'].value, + commentBox: comm.value.trim() + }; + $('.new-comment .icon-loading-small').show(); + $.post(form.action, data, function(data) { + $('.comments .comment:first').after('<div class="comment"><div class="comment-header"><span class="comment-date">' + data.date + '</span>' + data.userName + '</div><div class="wordwrap comment-content">' + data.comment + '</div></div>'); + $('.new-comment textarea').val('').focus(); + $('.new-comment .icon-loading-small').hide(); + }).error(function() { + alert(t('polls', 'An error occurred, your comment was not posted...')); + $('.new-comment .icon-loading-small').hide(); + }); + }); + + $(".share input").click(function() { + $(this).select(); }); }); -$(document).on('click', '.toggle-all', function(e) { - if($(this).attr('class').indexOf('selected-all') > -1) { - var selected = $(this).parent().children('.poll-cell-active-is'); - var maybes = $(this).parent().children('.poll-cell-active-maybe'); - for(var i=0; i<selected.length; i++) { - var curr = $(selected[i]); - curr.switchClass('poll-cell-active-is', 'poll-cell-active-not'); - deselectItem(curr); - } - for(var i=0; i<maybes.length; i++) { - var curr = $(maybes[i]); - curr.switchClass('poll-cell-active-maybe', 'poll-cell-active-not'); - deselectItem(curr); - } - $(this).removeClass('selected-all'); - $(this).addClass('selected-none'); - } else if($(this).attr('class').indexOf('selected-none') > -1) { - var selected = $(this).parent().children('.poll-cell-active-is'); - var unselected = $(this).parent().children('.poll-cell-active-not'); - for(var i=0; i<selected.length; i++) { - var curr = $(selected[i]); - curr.switchClass('poll-cell-active-is', 'poll-cell-active-maybe'); - maybeItem(curr); - } - for(var i=0; i<unselected.length; i++) { - var curr = $(unselected[i]); - curr.switchClass('poll-cell-active-not', 'poll-cell-active-maybe'); - maybeItem(curr); - } - $(this).removeClass('selected-none'); - $(this).addClass('selected-maybe'); - } else { - var maybes = $(this).parent().children('.poll-cell-active-maybe'); - var unselected = $(this).parent().children('.poll-cell-active-not'); - var notselected = $(this).parent().children('.poll-cell-active-un'); - for(var i=0; i<maybes.length; i++) { - var curr = $(maybes[i]); - curr.switchClass('poll-cell-active-maybe', 'poll-cell-active-is'); - selectItem(curr); - } - for(var i=0; i<unselected.length; i++) { - var curr = $(unselected[i]); - curr.switchClass('poll-cell-active-not', 'poll-cell-active-is'); - selectItem(curr, 'poll-cell-active-not'); - } - for(var i=0; i<notselected.length; i++) { - var curr = $(notselected[i]); - curr.switchClass('poll-cell-active-un', 'poll-cell-active-is'); - selectItem(curr); - } - $(this).removeClass('selected-maybe'); - $(this).addClass('selected-all'); - } -}); - -$(document).on('click', '.poll-cell-active-un', function(e) { - maybeItem($(this)); -}); - -$(document).on('click', '.poll-cell-active-not', function(e) { - maybeItem($(this)); -}); - -$(document).on('click', '.poll-cell-active-maybe', function(e) { - selectItem($(this)); -}); - -$(document).on('click', '.poll-cell-active-is', function(e) { - deselectItem($(this)); -}); - -function selectItem(cell, cl) { - if(typeof cl === 'undefined') cl = ''; - values_changed = true; - var ts = cell.attr('id'); - var index = newUserDates.indexOf(ts); - if(index > -1) { - newUserDates.splice(index, 1); - newUserTypes.splice(index, 1); - } - newUserDates.push(ts); - newUserTypes.push(1); - if(cl.indexOf('poll-cell-active-not') > -1) { - var total_no = document.getElementById('id_n_' + ts); - var intNo = parseInt(total_no.innerHTML); - if(intNo >= 1) total_no.innerHTML = intNo - 1; - else total_no.innerHTML = '0'; - } - var total_yes = document.getElementById('id_y_' + ts); - total_yes.innerHTML = parseInt(total_yes.innerHTML) + 1; - cell.switchClass('poll-cell-active-maybe', 'poll-cell-active-is'); - findNewMaxCount(); - updateStrongCounts(); -} - -function deselectItem(cell) { +$(document).on('click', '.toggle-all, .cl_click', function(e) { values_changed = true; - var ts = cell.attr('id'); - var index = newUserDates.indexOf(ts); - if(index > -1) { - newUserDates.splice(index, 1); - newUserTypes.splice(index, 1); + var cl = ""; + if($(this).hasClass('poll-cell-active-is')) { + cl = "not"; + } else if($(this).hasClass('poll-cell-active-not')) { + cl = "maybe"; + } else if($(this).hasClass('poll-cell-active-maybe')) { + cl = "is"; + } else { + cl = "is"; } - newUserDates.push(ts); - newUserTypes.push(0); - var total_yes = document.getElementById('id_y_' + ts); - var total_no = document.getElementById('id_n_' + ts); - var intYes = parseInt(total_yes.innerHTML); - if(intYes >= 1) total_yes.innerHTML = intYes - 1; - else total_yes.innerHTML = '0'; - total_no.innerHTML = parseInt(total_no.innerHTML) + 1; - cell.switchClass('poll-cell-active-is', 'poll-cell-active-not'); - findNewMaxCount(); - updateStrongCounts(); -} - -function maybeItem(cell) { - values_changed = true; - var ts = cell.attr('id'); - var index = newUserDates.indexOf(ts); - if(index > -1) { - newUserDates.splice(index, 1); - newUserTypes.splice(index, 1); + if($(this).hasClass('toggle-all')) { + $(".cl_click").attr('class', 'cl_click poll-cell-active-' + cl); + $(this).attr('class', 'toggle-all poll-cell-active-' + cl); + } else { + $(this).attr('class', 'cl_click poll-cell-active-' + cl); } - newUserDates.push(ts); - newUserTypes.push(2); - var total_no = document.getElementById('id_n_' + ts); - var intNo = parseInt(total_no.innerHTML); - if(intNo >= 1) total_no.innerHTML = intNo - 1; - else total_no.innerHTML = '0'; - cell.switchClass('poll-cell-active-not', 'poll-cell-active-maybe'); - cell.switchClass('poll-cell-active-un', 'poll-cell-active-maybe'); - findNewMaxCount(); - updateStrongCounts(); -} + $('.cl_click').each(function() { + var yes_c = $('#id_y_' + $(this).attr('id')); + var no_c = $('#id_n_' + $(this).attr('id')); + $(yes_c).text(parseInt($(yes_c).attr('data-value')) + ($(this).hasClass('poll-cell-active-is') ? 1 : 0)); + $(no_c).text(parseInt($(no_c).attr('data-value')) + ($(this).hasClass('poll-cell-active-not') ? 1 : 0)); + }); + updateCounts(); +}); -function findNewMaxCount(){ - var cell_tot_y = document.getElementsByClassName('cl_total_y'); - var cell_tot_n = document.getElementsByClassName('cl_total_n'); +function updateCounts(){ max_votes = 0; - for(var i=0; i<cell_tot_y.length; i++) { - var currYes = parseInt(cell_tot_y[i].innerHTML); - var currNo = parseInt(cell_tot_n[i].innerHTML); - var curr = currYes - currNo; - if(curr > max_votes) max_votes = curr; - } -} - -function updateStrongCounts(){ - var cell_tot_y = document.getElementsByClassName('cl_total_y'); - var cell_tot_n = document.getElementsByClassName('cl_total_n'); - - for(var i=0; i<cell_tot_y.length; i++) { - var cell_win = document.getElementById('id_total_' + i); - var curr = parseInt(cell_tot_y[i].innerHTML) - parseInt(cell_tot_n[i].innerHTML); - if(curr < max_votes) { - cell_win.className = 'win_row'; - cell_tot_y[i].style.fontWeight = 'normal'; - } - else { - cell_tot_y[i].style.fontWeight = 'bold'; - cell_win.className = 'win_row icon-checkmark'; + $('td.total').each(function() { + var yes = parseInt($(this).find('.color_yes').text()); + var no = parseInt($(this).find('.color_no').text()); + if(yes - no > max_votes) { + max_votes = yes - no; } - } + }); + var i = 0; + $('td.total').each(function() { + var yes = parseInt($(this).find('.color_yes').text()); + var no = parseInt($(this).find('.color_no').text()); + $('#id_total_' + i++).toggleClass('icon-checkmark', yes - no == max_votes); + }); } |