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:
authorVinzenz <vinzenz.rosenkranz@gmail.com>2016-09-18 00:19:35 +0300
committerVinzenz Rosenkranz <vinzenz.rosenkranz@gmail.com>2016-10-22 02:02:32 +0300
commitfe86cb3e34957c8b0afd5d91f8957a4f647caeca (patch)
tree1faafdd33c33436c7435bbb053b6ed4acfb9dc94 /js
parent3483a58fdead1a9421d964ce29d0a9d57b8ca2c2 (diff)
search field and selection enhancements
Diffstat (limited to 'js')
-rw-r--r--js/create_edit.js119
1 files changed, 72 insertions, 47 deletions
diff --git a/js/create_edit.js b/js/create_edit.js
index 853f5c52..921a5191 100644
--- a/js/create_edit.js
+++ b/js/create_edit.js
@@ -25,16 +25,30 @@ $(document).ready(function () {
var accessValues = document.getElementById('accessValues');
if(accessValues.value.length > 0) {
+ var list = document.getElementById('selected-search-list-id');
var accessValueArr = accessValues.value.split(';');
for(var i=0; i<accessValueArr.length; i++) {
var val = accessValueArr[i];
+ if(val == '') continue;
+ var li = document.createElement('li');
+ li.id = val;
+ li.className = 'cl_item cl_access_item selected';
var index = val.indexOf('group_');
if(index == 0) {
g_chosen_groups.push(val);
+ li.className += ' is-group';
+ li.appendChild(document.createTextNode(val.substring(6) + " (group)"));
+ list.appendChild(li);
} else {
index = val.indexOf('user_');
if(index == 0) {
g_chosen_users.push(val);
+ li.className = 'cl_item cl_access_item selected';
+ var username = val.substring(5);
+ $.post(OC.generateUrl('/apps/polls/get/displayname'), {username: username}, function(data) {
+ li.appendChild(document.createTextNode(username + " (" + data + ")"));
+ list.appendChild(li);
+ });
}
}
}
@@ -168,24 +182,40 @@ $(document).ready(function () {
text.value = '';
});
- $(document).on('click', '.cl_user_item', function(e) {
+ $(document).on('click', '.cl_item', function(e) {
+ var list = document.getElementById('selected-search-list-id');
+ var isGroup = $(this).hasClass('is-group');
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) {
- if($(this).hasClass('selected')) {
- var index = g_chosen_groups.indexOf(this.id);
- if(index > -1) g_chosen_groups.splice(index, 1);
+ var index = -1;
+ if(isGroup) index = g_chosen_groups.indexOf(this.id);
+ else index = g_chosen_users.indexOf(this.id);
+ if(index > -1) {
+ if(isGroup) g_chosen_groups.splice(index, 1);
+ else g_chosen_users.splice(index, 1);
+ $(this).remove();
+ }
} else {
- g_chosen_groups.push(this.id);
+ if(!isGroup) {
+ var text = this.id.replace('user_', '');
+ g_chosen_users.push(this.id);
+ } else {
+ g_chosen_groups.push(this.id);
+ }
+ document.getElementById('user-group-search-box').value = '';
+ var li = document.createElement('li');
+ li.id = this.id;
+ li.className = 'cl_item cl_access_item selected' + (isGroup ? ' is-group' : '');
+ if(!isGroup) {
+ $.post(OC.generateUrl('/apps/polls/get/displayname'), {username: text}, function(data) {
+ li.appendChild(document.createTextNode(text + " (" + data + ")"));
+ list.appendChild(li);
+ });
+ } else {
+ li.appendChild(document.createTextNode($(this).html()));
+ list.appendChild(li);
+ }
+ $(this).remove();
}
- $(this).toggleClass('selected');
});
$('.toggleable-row').hover(
@@ -231,8 +261,10 @@ $(document).ready(function () {
access_type = this.value;
if(access_type == 'select') {
$("#access_rights").show();
+ $("#selected_access").show();
} else {
$("#access_rights").hide();
+ $("#selected_access").hide();
}
});
@@ -242,44 +274,37 @@ $(document).ready(function () {
}
});
- $('#group-search-box').on('input', debounce(function() {
- var groupUl = document.getElementById('live-search-list-group-id');
- while(groupUl.firstChild) {
- groupUl.removeChild(groupUl.firstChild);
+ $('#user-group-search-box').on('input', debounce(function() {
+ var ul = document.getElementById('live-search-list-id');
+ while(ul.firstChild) {
+ ul.removeChild(ul.firstChild);
}
var val = $(this).val();
if(val.length < 3) return;
- $.post(OC.generateUrl('/apps/polls/search/groups'), { searchTerm: val }, function(data) {
- for(var i=0; i<data.length; i++) {
- var gid = data[i];
- var li = document.createElement('li');
- li.setAttribute('id', 'group_' + gid);
- li.setAttribute('class', 'cl_group_item cl_access_item');
- li.appendChild(document.createTextNode(gid));
- groupUl.appendChild(li);
- }
- });
- }, 250));
-
- $('#user-search-box').on('input', debounce(function() {
- var userUl = document.getElementById('live-search-list-user-id');
- while(userUl.firstChild) {
- userUl.removeChild(userUl.firstChild);
+ var formData = {
+ searchTerm: val,
+ groups: JSON.stringify(g_chosen_groups),
+ users: JSON.stringify(g_chosen_users)
}
- var val = $(this).val();
- if(val.length < 3) return;
- $.post(OC.generateUrl('/apps/polls/search/users'), { searchTerm: val }, function(data) {
+ $.post(OC.generateUrl('/apps/polls/search'), formData, function(data) {
for(var i=0; i<data.length; i++) {
- var user = data[i];
+ var ug = data[i];
var li = document.createElement('li');
- var span = document.createElement('span');
- li.setAttribute('id', 'user_' + user.uid);
- li.setAttribute('class', 'cl_user_item cl_access_item');
- li.appendChild(document.createTextNode(user.displayName));
- span.setAttribute('id', 'sec_name');
- span.appendChild(document.createTextNode(user.uid));
- li.appendChild(span);
- userUl.appendChild(li);
+ li.className = 'cl_item cl_access_item';
+ if(ug.isGroup) {
+ li.id = 'group_' + ug.gid;
+ li.className += ' is-group';
+ li.appendChild(document.createTextNode(ug.gid + " (group)"));
+ ul.appendChild(li);
+ } else {
+ li.id = 'user_' + ug.uid;
+ li.appendChild(document.createTextNode(ug.uid + " (" + ug.displayName + ")"));
+ var span = document.createElement('span');
+ span.id = 'sec_name';
+ span.appendChild(document.createTextNode(ug.uid));
+ li.appendChild(span);
+ ul.appendChild(li);
+ }
}
});
}, 250));