mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Widget fixes 4 (#9583)
* Globe: fix issue with more than one widget * Widgets/JS: prevent race conditions by storing all callbacks waiting for the same script. After the script is loaded run all callbacks. * Fix broken Mapquest maps
This commit is contained in:
@@ -299,11 +299,25 @@ $(document).ready(function () {
|
||||
}, 300000);
|
||||
});
|
||||
|
||||
var jsfilesadded = [];
|
||||
var jsFilesAdded = [];
|
||||
var jsLoadingFiles = {};
|
||||
function loadjs(filename, func){
|
||||
if (jsfilesadded.indexOf(filename) < 0) {
|
||||
$.getScript(filename, func);
|
||||
jsfilesadded.push(filename);
|
||||
if (jsFilesAdded.indexOf(filename) < 0) {
|
||||
if (filename in jsLoadingFiles) {
|
||||
// store all waiting callbacks
|
||||
jsLoadingFiles[filename].push(func);
|
||||
} else {
|
||||
// first request, load the script store the callback for this request
|
||||
jsLoadingFiles[filename] = [func];
|
||||
$.getScript(filename, function () {
|
||||
// finish loading the script, call all waiting callbacks
|
||||
jsFilesAdded.push(filename);
|
||||
for (var i = 0; i < jsLoadingFiles[filename].length; i++) {
|
||||
jsLoadingFiles[filename][i]();
|
||||
}
|
||||
delete jsLoadingFiles[filename];
|
||||
});
|
||||
}
|
||||
} else {
|
||||
func();
|
||||
}
|
||||
@@ -351,7 +365,7 @@ function init_map(id, engine, api_key, config) {
|
||||
roads.addTo(leaflet);
|
||||
});
|
||||
} else if (engine === 'mapquest') {
|
||||
loadScript('https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=' + api_key, function () {
|
||||
loadjs('https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=' + api_key, function () {
|
||||
var roads = MQ.mapLayer();
|
||||
var satellite = MQ.hybridLayer();
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ foreach ((array)$config['webui']['custom_css'] as $custom_css) {
|
||||
}
|
||||
?>
|
||||
<script src="js/select2.min.js"></script>
|
||||
<script src="js/librenms.js?ver=20181211"></script>
|
||||
<script src="js/librenms.js?ver=20181221"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
<!-- Begin
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
<script src="js/lazyload.js"></script>
|
||||
@endif
|
||||
<script src="{{ asset('js/select2.min.js') }}"></script>
|
||||
<script src="{{ asset('js/librenms.js?ver=20181211') }}"></script>
|
||||
<script src="{{ asset('js/librenms.js?ver=20181221') }}"></script>
|
||||
<script type="text/javascript">
|
||||
|
||||
<!-- Begin
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<div id='chart_div'></div>
|
||||
<div id='chart_div-{{ $id }}'></div>
|
||||
|
||||
<script type='text/javascript'>
|
||||
loadjs('https://www.gstatic.com/charts/loader.js', function() {
|
||||
@@ -21,7 +21,7 @@
|
||||
markerOpacity: 0.90,
|
||||
tooltip: {isHtml: true}
|
||||
};
|
||||
var chart = new google.visualization.GeoChart(document.getElementById('chart_div'));
|
||||
var chart = new google.visualization.GeoChart(document.getElementById('chart_div-{{ $id }}'));
|
||||
chart.draw(data, options);
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user