Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/polls.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorMaxime Corteel <mcorteel@gmail.com>2016-04-17 02:00:54 +0300
committerMaxime Corteel <mcorteel@gmail.com>2016-04-19 00:37:50 +0300
commitd2f7bae5c60afd4aedf57a9aeefd4b1d600f7d15 (patch)
tree9fd69c3d1c337aeed405c7910f9871072864e12f /js
parent34e8f66e6fe13027b56b3f8480dee42902f33bd7 (diff)
Design changes
Diffstat (limited to 'js')
-rw-r--r--js/create_edit.js133
-rwxr-xr-xjs/start.js38
-rw-r--r--js/vote.js257
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) {
diff --git a/js/vote.js b/js/vote.js
index a059a6d9..a3004f84 100644
--- a/js/vote.js
+++ b/js/vote.js
@@ -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);
+ });
}