mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-26 07:14:35 +02:00
collapsibleContainer.js: Adjust id handling
Id's are unique. Making this assumption is fine since anyone not abiding by this isn't my problem.
This commit is contained in:
parent
b73a608742
commit
66084d6d94
@ -4,8 +4,7 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
var expandedContainers = [];
|
var expandedContainers = {};
|
||||||
var maxLength = 32;
|
|
||||||
var defaultNumOfRows = 2;
|
var defaultNumOfRows = 2;
|
||||||
var defaultHeight = 36;
|
var defaultHeight = 36;
|
||||||
|
|
||||||
@ -31,10 +30,9 @@
|
|||||||
* @param event Event The `onRender` event triggered by the rendered container
|
* @param event Event The `onRender` event triggered by the rendered container
|
||||||
*/
|
*/
|
||||||
CollapsibleContainer.prototype.onRendered = function(event) {
|
CollapsibleContainer.prototype.onRendered = function(event) {
|
||||||
$(event.target).find('.collapsible-container').each(function() {
|
$(event.target).find('.collapsible-container[data-collapsible-id]').each(function() {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
||||||
if ($this.data('collapsible-id') && $('[data-collapsible-id=' + $this.data('collapsible-id') + ']').length < 2) {
|
|
||||||
if ($this.find('.collapsible').length > 0) {
|
if ($this.find('.collapsible').length > 0) {
|
||||||
$this.addClass('has-collapsible');
|
$this.addClass('has-collapsible');
|
||||||
if ($this.find('.collapsible').innerHeight() > ($this.data('height') || defaultHeight)) {
|
if ($this.find('.collapsible').innerHeight() > ($this.data('height') || defaultHeight)) {
|
||||||
@ -47,14 +45,12 @@
|
|||||||
$this.addClass('can-collapse');
|
$this.addClass('can-collapse');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
updateCollapsedState($this);
|
updateCollapsedState($this);
|
||||||
});
|
});
|
||||||
|
|
||||||
$(event.target).find('.collapsible-table-container').each(function() {
|
$(event.target).find('.collapsible-table-container[data-collapsible-id]').each(function() {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
||||||
if ($this.data('collapsible-id') && $('[data-collapsible-id=' + $this.data('collapsible-id') + ']').length < 2) {
|
|
||||||
if ($this.find('.collapsible').length > 0) {
|
if ($this.find('.collapsible').length > 0) {
|
||||||
$this.addClass('has-collapsible');
|
$this.addClass('has-collapsible');
|
||||||
if ($this.find('tr').length > ($this.attr('data-numofrows') || defaultNumOfRows)) {
|
if ($this.find('tr').length > ($this.attr('data-numofrows') || defaultNumOfRows)) {
|
||||||
@ -67,7 +63,6 @@
|
|||||||
$this.addClass('can-collapse');
|
$this.addClass('can-collapse');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
updateCollapsedState($this);
|
updateCollapsedState($this);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -81,14 +76,7 @@
|
|||||||
var $target = $(event.target);
|
var $target = $(event.target);
|
||||||
var $c = $target.closest('.collapsible-container, .collapsible-table-container');
|
var $c = $target.closest('.collapsible-container, .collapsible-table-container');
|
||||||
|
|
||||||
if ($c.hasClass('collapsed')) {
|
expandedContainers[$c.data('collapsibleId')] = $c.is('.collapsed');
|
||||||
if (expandedContainers.length > maxLength - 1) {
|
|
||||||
expandedContainers.shift();
|
|
||||||
}
|
|
||||||
expandedContainers.push($c.data('collapsible-id'));
|
|
||||||
} else {
|
|
||||||
expandedContainers.splice(expandedContainers.indexOf($c.data('collapsible-id')), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(expandedContainers);
|
console.log(expandedContainers);
|
||||||
|
|
||||||
@ -108,7 +96,13 @@
|
|||||||
} else {
|
} else {
|
||||||
$collapsible = $container;
|
$collapsible = $container;
|
||||||
}
|
}
|
||||||
if (expandedContainers.indexOf($container.data('collapsible-id')) > -1) {
|
|
||||||
|
var collapsibleId = $container.data('collapsibleId');
|
||||||
|
if (typeof expandedContainers[collapsibleId] === 'undefined') {
|
||||||
|
expandedContainers[collapsibleId] = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (expandedContainers[collapsibleId]) {
|
||||||
$container.removeClass('collapsed');
|
$container.removeClass('collapsed');
|
||||||
$collapsible.css({ maxHeight: 'none' });
|
$collapsible.css({ maxHeight: 'none' });
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user