From 93bab0a9c4d5b3fc7b074996d62dcfbb9fd579e5 Mon Sep 17 00:00:00 2001 From: Daniel Kulp Date: Sat, 2 Nov 2024 10:40:18 -0400 Subject: [PATCH] Load vendor image for menu asynchronously to avoid pause if image cannot be downloaded --- www/menu.inc | 757 +++++++++++++++++++++++++++------------------------ 1 file changed, 400 insertions(+), 357 deletions(-) diff --git a/www/menu.inc b/www/menu.inc index 98e2bf69c..aca6d350d 100644 --- a/www/menu.inc +++ b/www/menu.inc @@ -6,10 +6,10 @@ $fpp_head_version = "v" . getFPPVersion(); $git_branch = getFPPBranch(); if (!preg_match("/^$git_branch(-.*)?$/", $fpp_head_version)) - $fpp_head_version .= " ($git_branch branch)"; + $fpp_head_version .= " ($git_branch branch)"; if (!isset($activeParentMenuItem)) { - $activeParentMenuItem = ""; + $activeParentMenuItem = ""; } ?> @@ -17,388 +17,431 @@ if (!isset($activeParentMenuItem)) { - - - - - - - Plugins - - - - - - -'; - } + global $pluginDirectory; + $menukey = $menu; + if ($menu == "output") { + $menukey = "input-output"; + } + if ($menu && file_exists($pluginDirectory)) { + $handle = opendir($pluginDirectory); + if ($handle) { + $first = 1; + while (($plugin = readdir($handle)) !== false) { + if (!in_array($plugin, array('.', '..'))) { + // Old naming convention ${MENU}_menu.inc + if (file_exists($pluginDirectory . "/" . $plugin . "/" . $menu . "_menu.inc")) { + if ($first) { + $first = 0; + echo ''; + } + + ob_start(); + -include_once($pluginDirectory . "/" . $plugin . "/" . $menu . "_menu.inc"); + $buffer = ob_get_clean(); + $buffer = str_replace(array("
  • ", "
  • ", ""), "", $buffer); + $buffer = str_replace("", "", ""), "", $buffer); - $buffer = str_replace("", ""), "", $buffer); - $buffer = str_replace("- - - - - - - Plugins - - - - - - -'; + // New single menu.inc file which has some logic in it to display relevant menus. + // See the example in the fpp-plugin-Template plugin + if (file_exists($pluginDirectory . "/" . $plugin . "/menu.inc")) { + ob_start(); + -include($pluginDirectory . "/" . $plugin . "/menu.inc"); + $buffer = ob_get_clean(); + $buffer = str_replace(array("
  • ", "
  • "), "", $buffer); + $buffer = str_replace("
    - - - - - - - Plugins - - - - - - -'; + } + + echo $buffer; + } + } } - - echo $buffer; - } } - } } - } } ?>
    - -
    -
    - " . $settings['HostName'] . ""); - - $currentHeaderSensor = "1"; - if (isset($settings['currentHeaderSensor'])) { - $currentHeaderSensor = $settings['currentHeaderSensor']; - } - - ?> - - - - -
    -
    -
    -
    - "; - } - if ($settings['Logo'] != "") { - echo ""; - } - if ($settings['LogoLink'] != "") { - echo ""; - } - echo ""; - echo "
    "; - if ( - isset($settings['cape-info']) && isset($settings['cape-info']['vendor']) && (isset($settings['cape-info']['vendor']['image']) || isset($settings['cape-info']['header_cape_image'])) - && $settings['FetchVendorLogos'] == 1 - ) { - $landing = $settings['cape-info']['vendor']['url']; - if (isset($settings['cape-info']['vendor']['landingPage'])) { - $landing = $settings['cape-info']['vendor']['landingPage']; - } - - isset($settings['cape-info']['header_cape_image']) ? - $image_url = $settings['cape-info']['header_cape_image'] : - $image_url = $settings['cape-info']['vendor']['image']; - - if ($settings['SendVendorSerial'] == 1) { - $iurl = $image_url . "?sn=" . $settings['cape-info']['serialNumber'] . "&id=" . $settings['cape-info']['id']; - } else { - $iurl = $image_url; - } - - if ($settings['SendVendorSerial'] == 1) { - $landing = $landing . "?sn=" . $settings['cape-info']['serialNumber'] . "&id=" . $settings['cape-info']['id']; - } - if (isset($settings['cape-info']['cs']) && $settings['cape-info']['cs'] != "" && $settings['SendVendorSerial'] == 1) { - $iurl = $iurl . "&cs=" . $settings['cape-info']['cs']; - } - if ($settings['hideExternalURLs']) { - $landing = ""; - } - ?> -
    - +
    + -
    - - - - -
    -
    - -
    - WARNING: /media is not mounted, is a USB flash drive inserted? -
    - -
    WARNING: is running low on space. Problems may occur - with saving settings or uploading content.
    - - -
    Settings have changed. FPPD Restart - Required - - - - - -
    - - - -
    FPPD not found. Rebuild - required
    - -
    FPP will not work with this browser. Chrome, Firefox, or - Edge is strongly recommended.
    -
    Base configuration has changed. Reboot - Required - - +
    +
    +
    - -
    - - -
    +
    + + + + +
    +
    + - -
    - - - - - - -
    + + +
    + + + +
    \ No newline at end of file