diff --git a/public/js/icinga/loader.js b/public/js/icinga/loader.js index ae4b68e97..63d1f726b 100644 --- a/public/js/icinga/loader.js +++ b/public/js/icinga/loader.js @@ -665,6 +665,7 @@ $container.append(content); } } + this.icinga.ui.assignUniqueContainerIds(); if (scrollPos !== false) { $container.scrollTop(scrollPos); diff --git a/public/js/icinga/ui.js b/public/js/icinga/ui.js index 7043092c4..b3c70a3b2 100644 --- a/public/js/icinga/ui.js +++ b/public/js/icinga/ui.js @@ -479,6 +479,35 @@ return focusedTableDataUrl; }, + /** + * Assign a unique ID to each .container without such + * + * This usually applies to dashlets + */ + assignUniqueContainerIds: function() { + var currentMax = 0; + $('.container').each(function() { + var $el = $(this); + var m; + if (!$el.attr('id')) { + return; + } + if (m = $el.attr('id').match(/^ciu_(\d+)$/)) { + if (parseInt(m[1]) > currentMax) { + currentMax = parseInt(m[1]); + } + } + }); + $('.container').each(function() { + var $el = $(this); + if (!!$el.attr('id')) { + return; + } + currentMax++; + $el.attr('id', 'ciu_' + currentMax); + }); + }, + refreshDebug: function () { var size = this.getDefaultFontSize().toString();