Use central refresh system for dyndns widget

This commit is contained in:
Steve Beaver 2017-08-15 15:25:34 -04:00
parent e0e922da09
commit 27e6d49469
2 changed files with 33 additions and 31 deletions

View File

@ -116,6 +116,7 @@ if ($_REQUEST['getdyndnsstatus']) {
print('N/A ' . date("H:i:s"));
}
}
exit;
} else if ($_POST['widgetkey']) {
set_customwidgettitle($user_settings);
@ -272,34 +273,41 @@ if (!function_exists('get_dyndns_service_text')) {
<script type="text/javascript">
//<![CDATA[
function dyndns_getstatus_<?=$widgetkey_nodash?>() {
scroll(0,0);
var url = "/widgets/widgets/dyn_dns_status.widget.php";
var pars = 'getdyndnsstatus=<?=$widgetkey?>';
$.ajax(
url,
{
type: 'get',
data: pars,
complete: dyndnscallback_<?=$widgetkey_nodash?>
});
}
function dyndnscallback_<?=$widgetkey_nodash?>(transport) {
// The server returns a string of statuses separated by vertical bars
var responseStrings = transport.responseText.split("|");
for (var count=0; count<responseStrings.length; count++) {
var divlabel = '#widget-<?=$widgetkey?> #dyndnsstatus' + count;
$(divlabel).prop('innerHTML',responseStrings[count]);
events.push(function(){
// --------------------- EXPERIMENTAL centralized widget refresh system ------------------------------
// Callback function called by refresh system when data is retrieved
function dyndnscallback_<?=$widgetkey_nodash?>(s) {
// The server returns a string of statuses separated by vertical bars
var responseStrings = s.split("|");
for (var count=0; count<responseStrings.length; count++) {
var divlabel = '#widget-<?=$widgetkey?> #dyndnsstatus' + count;
$(divlabel).prop('innerHTML',responseStrings[count]);
}
}
// Refresh the status every 5 minutes
setTimeout('dyndns_getstatus_<?=$widgetkey_nodash?>()', 5*60*1000);
}
events.push(function(){
// POST data to send via AJAX
var postdata = {
ajax: "ajax",
getdyndnsstatus : "<?=$widgetkey?>"
};
// Create an object defining the widget refresh AJAX call
var dyndnsObject = new Object();
dyndnsObject.name = "DynDNS";
dyndnsObject.url = "/widgets/widgets/dyn_dns_status.widget.php";
dyndnsObject.callback = dyndnscallback_<?=$widgetkey_nodash?>;
dyndnsObject.parms = postdata;
dyndnsObject.freq = 1;
// Register the AJAX object
register_ajax(dyndnsObject);
// ---------------------------------------------------------------------------------------------------
set_widget_checkbox_events("#<?=$widget_panel_footer_id?> [id^=show]", "<?=$widget_showallnone_id?>");
});
// Do the first status check 2 seconds after the dashboard opens
setTimeout('dyndns_getstatus_<?=$widgetkey_nodash?>()', 2000);
//]]>
</script>

View File

@ -137,12 +137,6 @@ if ($_REQUEST['getupdatestatus']) {
header("Location: /index.php");
}
/* Adding one second to the system widet update period
* will ensure that we update the GUI right after the stats are updated.
*/
$widgetperiod = isset($config['widgets']['period']) ? $config['widgets']['period'] * 1000 : 10000;
$widgetperiod += 1000;
$filesystems = get_mounted_filesystems();
$skipsysinfoitems = explode(",", $user_settings['widgets'][$widgetkey]['filter']);
@ -692,7 +686,7 @@ events.push(function(){
versionObject.parms = postdata;
versionObject.freq = 100;
// Register the AJAX object
//Register the AJAX object
register_ajax(versionObject);
<?php endif; ?>
// ---------------------------------------------------------------------------------------------------