diff --git a/src/usr/local/www/index.php b/src/usr/local/www/index.php index a06b44e712..1a29bda65d 100644 --- a/src/usr/local/www/index.php +++ b/src/usr/local/www/index.php @@ -117,7 +117,12 @@ foreach (glob("/usr/local/www/widgets/widgets/*.widget.php") as $file) { $widgettitle = ucwords(str_replace('_', ' ', $basename)); } - $known_widgets[$basename . '-0'] = array('basename' => $basename, 'title' => $widgettitle, 'display' => 'none'); + $known_widgets[$basename . '-0'] = array( + 'basename' => $basename, + 'title' => $widgettitle, + 'display' => 'none', + 'multicopy' => ${$basename . '_allow_multiple_widget_copies'} + ); } ##if no config entry found, initialize config entry @@ -322,7 +327,11 @@ if ($user_settings['widgets']['sequence'] != "") { 'col' => $col, 'display' => $display, 'copynum' => $copynum, + 'multicopy' => ${$basename . '_allow_multiple_widget_copies'} ); + + // Update the known_widgets entry so we know if any copy of the widget is being displayed + $known_widgets[$basename . '-0']['display'] = $display; } // add widgets that may not be in the saved configuration, in case they are to be displayed later @@ -379,8 +388,11 @@ $available = $known_widgets; uasort($available, function($a, $b){ return strcasecmp($a['title'], $b['title']); }); foreach ($available as $widgetkey => $widgetconfig): + // If the widget supports multiple copies, or no copies are displayed yet, then it is available to add + if (($widgetconfig['multicopy']) || ($widgetconfig['display'] == 'none')): ?>
+ diff --git a/src/usr/local/www/widgets/include/dyn_dns_status.inc b/src/usr/local/www/widgets/include/dyn_dns_status.inc index 628fbc675b..43dc05c068 100644 --- a/src/usr/local/www/widgets/include/dyn_dns_status.inc +++ b/src/usr/local/www/widgets/include/dyn_dns_status.inc @@ -23,5 +23,6 @@ //set variable for custom title $dyn_dns_status_title = gettext("Dynamic DNS Status"); $dyn_dns_status_title_link = "services_dyndns.php"; +$dyn_dns_status_allow_multiple_widget_copies = true; ?> diff --git a/src/usr/local/www/widgets/include/gateways.inc b/src/usr/local/www/widgets/include/gateways.inc index b2a157775a..ec3e7dc988 100644 --- a/src/usr/local/www/widgets/include/gateways.inc +++ b/src/usr/local/www/widgets/include/gateways.inc @@ -22,4 +22,5 @@ //set variable for custom title $gateways_title = gettext("Gateways"); $gateways_title_link = "status_gateways.php"; +$gateways_allow_multiple_widget_copies = true; ?> diff --git a/src/usr/local/www/widgets/include/interface_statistics.inc b/src/usr/local/www/widgets/include/interface_statistics.inc index 25edeb362d..f1c4a8fbc6 100644 --- a/src/usr/local/www/widgets/include/interface_statistics.inc +++ b/src/usr/local/www/widgets/include/interface_statistics.inc @@ -22,4 +22,5 @@ //set variable for custom title $interface_statistics_title = gettext("Interface Statistics"); $interface_statistics_title_link = "status_interfaces.php"; +$interface_statistics_allow_multiple_widget_copies = true; ?> diff --git a/src/usr/local/www/widgets/include/interfaces.inc b/src/usr/local/www/widgets/include/interfaces.inc index e17add4a24..fd96ef6320 100644 --- a/src/usr/local/www/widgets/include/interfaces.inc +++ b/src/usr/local/www/widgets/include/interfaces.inc @@ -22,5 +22,6 @@ //set variable for custom title $interfaces_title = gettext("Interfaces"); $interfaces_title_link = "status_interfaces.php"; +$interfaces_allow_multiple_widget_copies = true; ?> diff --git a/src/usr/local/www/widgets/include/log.inc b/src/usr/local/www/widgets/include/log.inc index c55fb446d0..e17dd7ea0c 100644 --- a/src/usr/local/www/widgets/include/log.inc +++ b/src/usr/local/www/widgets/include/log.inc @@ -22,5 +22,6 @@ //set variable for custom title $log_title = gettext("Firewall Logs"); $log_title_link = "status_logs_filter.php"; +$log_allow_multiple_widget_copies = true; ?> diff --git a/src/usr/local/www/widgets/include/openvpn.inc b/src/usr/local/www/widgets/include/openvpn.inc index 65ce59b420..43ac8099bb 100644 --- a/src/usr/local/www/widgets/include/openvpn.inc +++ b/src/usr/local/www/widgets/include/openvpn.inc @@ -21,4 +21,5 @@ $openvpn_title = gettext("OpenVPN"); $openvpn_title_link = "status_openvpn.php"; +$openvpn_allow_multiple_widget_copies = true; ?> diff --git a/src/usr/local/www/widgets/include/picture.inc b/src/usr/local/www/widgets/include/picture.inc new file mode 100644 index 0000000000..19a5d2ba09 --- /dev/null +++ b/src/usr/local/www/widgets/include/picture.inc @@ -0,0 +1,24 @@ + diff --git a/src/usr/local/www/widgets/include/rss.inc b/src/usr/local/www/widgets/include/rss.inc new file mode 100644 index 0000000000..be40ec4bca --- /dev/null +++ b/src/usr/local/www/widgets/include/rss.inc @@ -0,0 +1,24 @@ + diff --git a/src/usr/local/www/widgets/include/services_status.inc b/src/usr/local/www/widgets/include/services_status.inc index 7d13c5391f..f3719d6e40 100644 --- a/src/usr/local/www/widgets/include/services_status.inc +++ b/src/usr/local/www/widgets/include/services_status.inc @@ -23,5 +23,6 @@ //set variable for custom title $services_status_title = gettext("Services Status"); $services_status_title_link = "status_services.php"; +$services_status_allow_multiple_widget_copies = true; ?> diff --git a/src/usr/local/www/widgets/include/smart_status.inc b/src/usr/local/www/widgets/include/smart_status.inc index 6b236b20a2..2658b8d2cc 100644 --- a/src/usr/local/www/widgets/include/smart_status.inc +++ b/src/usr/local/www/widgets/include/smart_status.inc @@ -22,4 +22,5 @@ //set variable for custom title $smart_status_title = gettext("S.M.A.R.T. Status"); $smart_status_title_link = "diag_smart.php"; +$smart_status_allow_multiple_widget_copies = true; ?> diff --git a/src/usr/local/www/widgets/include/system_information.inc b/src/usr/local/www/widgets/include/system_information.inc new file mode 100644 index 0000000000..d882f0b673 --- /dev/null +++ b/src/usr/local/www/widgets/include/system_information.inc @@ -0,0 +1,24 @@ + diff --git a/src/usr/local/www/widgets/include/thermal_sensors.inc b/src/usr/local/www/widgets/include/thermal_sensors.inc index 192214af87..28d8fd2eda 100644 --- a/src/usr/local/www/widgets/include/thermal_sensors.inc +++ b/src/usr/local/www/widgets/include/thermal_sensors.inc @@ -23,6 +23,7 @@ //set variable for custom title $thermal_sensors_widget_title = gettext("Thermal Sensors"); //$thermal_sensors_widget_link = "thermal_sensors.php"; +$thermal_sensors_allow_multiple_widget_copies = true; //returns core temp data (from coretemp.ko or amdtemp.ko driver) as "|"-delimited string. diff --git a/src/usr/local/www/widgets/include/wake_on_lan.inc b/src/usr/local/www/widgets/include/wake_on_lan.inc index 1120b4bca1..d7cda1f4cb 100644 --- a/src/usr/local/www/widgets/include/wake_on_lan.inc +++ b/src/usr/local/www/widgets/include/wake_on_lan.inc @@ -23,5 +23,6 @@ //set variable for custom title $wake_on_lan_title = gettext("Wake-on-Lan"); $wake_on_lan_title_link = "services_wol.php"; +$wake_on_lan_allow_multiple_widget_copies = true; ?>