Skip to content

Commit

Permalink
Sort share consumers, allow scrolling
Browse files Browse the repository at this point in the history
Resolves: #264
  • Loading branch information
pixtron committed Oct 29, 2019
1 parent f402c8e commit 25362c7
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 15 deletions.
13 changes: 7 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
* [FIX] Fix issues hitting esc in md editor #257
* [CHANGE] Remove confirm prompt when closing office document #258
* [FIX] Hide spinner only after all running requests have been completed #119
* [CHANGE] Sort share consumers, allow scrolling #264

## 3.2.8
**Maintainer**: balloon-team <opensource@gyselroth.net>\
Expand Down Expand Up @@ -47,36 +48,36 @@

## 3.2.4
**Maintainer**: balloon-team <opensource@gyselroth.net>\
**Date**: Fri Jun 28 09:41:04 CEST 2019
**Date**: Fri Jun 28 09:41:04 CEST 2019

* [FIX] Android soft navigation bar overlaps content (action bar) #239


## 3.2.3
**Maintainer**: balloon-team <opensource@gyselroth.net>\
**Date**: Wed Jun 26 13:45:04 CEST 2019
**Date**: Wed Jun 26 13:45:04 CEST 2019

* [FIX] Removed css revision from css load url


## 3.2.2
**Maintainer**: balloon-team <opensource@gyselroth.net>\
**Date**: Wed Jun 26 13:45:04 CEST 2019
**Date**: Wed Jun 26 13:45:04 CEST 2019

Test release


## 3.2.1
**Maintainer**: balloon-team <opensource@gyselroth.net>\
**Date**: Wed Jun 26 12:16:04 CEST 2019
**Date**: Wed Jun 26 12:16:04 CEST 2019

* [FIX] Two browser reloads are necessary after new release has been deployed #234
* [FIX] Too many assets in precache-manifest #232


## 3.2.0
**Maintainer**: balloon-team <opensource@gyselroth.net>\
**Date**: Tue Jun 25 07:41:04 CEST 2019
**Date**: Tue Jun 25 07:41:04 CEST 2019

* [FIX] Reset view bar when menu is changed #224
* [FIX] Avoid doubled text in file handler chooser #225
Expand Down Expand Up @@ -158,7 +159,7 @@ Test release
* [FEATURE] Search over event log #143
* [CHANGE] Only display search result after a search occured #198
* [FIX] Use fake password field for external storage to avoid autocomplete #76
* [CHANGE] alternative tipps icon #70
* [CHANGE] alternative tipps icon #70
* [FIX] Infinite scroll on event log is truly infinite #214
* [FIX] add burl form url input on new line #216
* [FIX] Typo in search menu #208
Expand Down
76 changes: 68 additions & 8 deletions src/lib/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -5504,9 +5504,14 @@ var balloon = {
success: function(data) {
$share_name.val(data.name);

data.acl.sort(function(a,b) {
if(a.role.name === b.role.name) return 0;
return a.role.name > b.role.name ? 1 : -1;
});

for(var i in data.acl) {
var consumer = data.acl[i];
balloon._addShareConsumer(consumer, acl);
balloon._addShareConsumer(consumer, acl, false, false);
}

balloon.prepareShareWindow(node, acl);
Expand Down Expand Up @@ -5601,7 +5606,7 @@ var balloon = {
role: data.data[0]
}

acl = balloon._addShareConsumer(role, acl, true);
acl = balloon._addShareConsumer(role, acl, true, true);
}
});

Expand All @@ -5623,15 +5628,15 @@ var balloon = {
role: data.data[0]
}

acl = balloon._addShareConsumer(role, acl, true);
acl = balloon._addShareConsumer(role, acl, true, true);
}
});
}
});

balloon._userAndGroupAutocomplete($share_consumer_search, true, function(item) {
selected = true;
balloon._addShareConsumer(item, acl, true);
balloon._addShareConsumer(item, acl, true, true);
});

$fs_share_win.find('#fs-share-window-toggle-consumers a').off('click').on('click', function() {
Expand Down Expand Up @@ -5872,7 +5877,7 @@ var balloon = {
* @param Array acl
* @return object
*/
_addShareConsumer: function(item, acl, scrollToItem) {
_addShareConsumer: function(item, acl, scrollToItem, sort) {
var $fs_share_win_consumers = $('#fs-share-window-consumers');
var $fs_share_win_consumers_ul = $fs_share_win_consumers.find('> ul');

Expand All @@ -5895,7 +5900,7 @@ var balloon = {

var icon = item.type === 'group' ? 'group' : 'person';
var $consumer = $(
'<li id="fs-share-window-consumer-' + item.role.id + '">'+
'<li id="fs-share-window-consumer-' + item.role.id + '" data-name="' + name + '">'+
'<svg class="gr-icon gr-i-'+icon+'"><use xlink:href="'+iconsSvg+'#'+icon+'"></use></svg>'+
'<span>'+name+'</span>'+
'</li>'
Expand Down Expand Up @@ -5945,13 +5950,18 @@ var balloon = {

$consumer.append($consumer_privilege);

$fs_share_win_consumers_ul.append($consumer);
if(sort) {
balloon._insertToSortedList($fs_share_win_consumers_ul, $consumer, 'name');
} else {
$fs_share_win_consumers_ul.append($consumer);
}
$fs_share_win_consumers.show();

balloon._setToggleConsumersVisibility(acl);

if(scrollToItem) {
$fs_share_win_consumers_ul.animate({scrollTop: $fs_share_win_consumers_ul.prop('scrollHeight')}, 250);
var newScrollTop = $consumer.offset().top - $fs_share_win_consumers.offset().top + $fs_share_win_consumers_ul.scrollTop()
$fs_share_win_consumers_ul.animate({scrollTop: newScrollTop}, 250);
}

$('#fs-share-window').data('kendoBalloonWindow').center();
Expand Down Expand Up @@ -5980,6 +5990,56 @@ var balloon = {
return acl;
},

_insertToSortedList: function($list, $el, dataAttr) {
var curItems = $list.children().map(function() {
var $this = $(this);
return {string: $this.data(dataAttr), id: $this.attr('id')};
});

var position = findInsertPosition($el.data(dataAttr), curItems);

if(position === 0) {
$list.prepend($el);
} else if(position >= curItems.length) {
$list.append($el);
} else {
$el.insertAfter('#' + curItems[position-1].id);
}

function findInsertPosition(value, array, startVal, endVal) {
var length = array.length;
var start = typeof(startVal) != 'undefined' ? startVal : 0;
var end = typeof(endVal) != 'undefined' ? endVal : length - 1;
var m = start + Math.floor((end - start)/2);

if(length == 0){
return 0;
}

if(value > array[end].string){
return end + 1;
}

if(value < array[start].string) {
return start;
}

if(start >= end){
return end;
}

if(value < array[m].string) {
return findInsertPosition(value, array, start, m - 1);
}

if(value > array[m].string) {
return findInsertPosition(value, array, m + 1, end);
}

return m+1;
}
},

/**
* Remove a share consumer from list
*
Expand Down
2 changes: 1 addition & 1 deletion src/themes/default/scss/modals/_fsShare.scss
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ $sidePadding: 30px;
display: block;
width: 100%;
max-height: $maxDisplayed * 31px + 1px;
overflow-y: hidden;
overflow-y: auto;
overflow-x: hidden;

& > li {
Expand Down

0 comments on commit 25362c7

Please sign in to comment.