From 0a996ac5c77d2a3b29eaf711324228c937c52be5 Mon Sep 17 00:00:00 2001 From: bergware Date: Thu, 3 Apr 2025 23:24:26 +0200 Subject: [PATCH 01/36] Wireless fixes - Allow connection to hidden networks - Set automatic as default choice for manual input --- emhttp/plugins/dynamix/include/Wireless.php | 2 +- etc/rc.d/rc.wireless | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/emhttp/plugins/dynamix/include/Wireless.php b/emhttp/plugins/dynamix/include/Wireless.php index 747b7c76d..13032e258 100644 --- a/emhttp/plugins/dynamix/include/Wireless.php +++ b/emhttp/plugins/dynamix/include/Wireless.php @@ -185,8 +185,8 @@ case 'join': } if ($manual || $safe) { echo ""._('Security')."
diff --git a/emhttp/plugins/dynamix.vm.manager/sheets/UpdateVM.css b/emhttp/plugins/dynamix.vm.manager/sheets/UpdateVM.css deleted file mode 100644 index b86c887c1..000000000 --- a/emhttp/plugins/dynamix.vm.manager/sheets/UpdateVM.css +++ /dev/null @@ -1,296 +0,0 @@ -:root { - --add-vm-background: var(--black); -} - -.Theme--azure:root, -.Theme--white:root { - --add-vm-background: var(--gray-100); -} - -body { - -webkit-overflow-scrolling: touch; -} -#vmform table { - margin-top: 0; - table-layout: fixed; -} -#vmform div.title + table { - margin-top: 0; -} -#vmform table tr { - vertical-align: top; - line-height: 4rem; - height: 4rem; -} -#vmform table tr td:nth-child(1) { - width: 25%; - text-align: right; - padding-right: 10px; -} -#vmform table tr td:nth-child(2) { - width: 800px; -} -@media (max-width: 1280px) { - #vmform table tr td:first-child { - width: 35%; - padding-right: 4rem; - } -} -@media (min-width: 1281px) { - #vmform table tr td:first-child { - width: 30%; - padding-right: 4rem; - } -} -@media (min-width: 1921px) { - #vmform table tr td:first-child { - width: 25%; - padding-right: 4rem; - } -} -#vmform table tr td:last-child { - width: inherit; -} - -#vmform textarea{ - max-width:500px; - scrollbar-width:4px; -} - -#vmform textarea::-webkit-scrollbar{ - height:4px; - width:4px; -} - -#vmform .multiple { - position: relative; -} -#vmform .sectionbutton { - position: absolute; - left: 2px; - cursor: pointer; - opacity: 0.4; - font-size: 1.4rem; - line-height: 17px; - z-index: 10; - transition-property: opacity, left; - transition-duration: 0.1s; - transition-timing-function: linear; -} -#vmform .sectionbutton.remove { - top: 0; - opacity: 0.3; -} -#vmform .sectionbutton.add { - bottom: 0; -} -#vmform .sectionbutton:hover { - opacity: 1; -} -#vmform .sectiontab { - position: absolute; - top: 2px; - bottom: 2px; - left: 0; - width: 6px; - border-radius: 3px; - background-color: var(--gray-200); /* Condensed from: #dddddd */ - transition-property: background, width; - transition-duration: 0.1s; - transition-timing-function: linear; -} -#vmform .multiple:hover .sectionbutton { - opacity: 0.7; - left: 4px; -} -#vmform .multiple:hover .sectionbutton.remove { - opacity: 0.6; -} -#vmform .multiple:hover .sectiontab { - background-color: var(--gray-300); - width: 8px; -} -#vmform table.multiple:hover { - background-position: 0 0; -} -#vmform table.multiple td { - padding: 5px 0; -} -span.advancedview_panel { - display: none; - line-height: 16px; - margin-top: 1px; -} -.basic { - display: none; -} -.advanced { - /*Empty placeholder*/ -} -.switch-button-label.off { - color: inherit; -} -#template_img { - cursor: pointer; -} -#template_img:hover { - opacity: 0.5; -} -#template_img:hover i { - opacity: 1; -} -.template_img_chooser_inner { - display: inline-block; - width: 80px; - margin-bottom: 15px; - margin-right: 10px; - text-align: center; -} -.template_img_chooser_inner img { - width: 48px; - height: 48px; -} -.template_img_chooser_inner p { - text-align: center; - line-height: 8px; -} -#template_img_chooser { - width: 560px; - height: 300px; - overflow-y: scroll; - position: relative; - display:grid; - grid-template-columns: repeat(6, minmax(0, 1fr)); -} -#template_img_chooser div:hover { - background-color: var(--gray-150); /* Condensed from: #eee */ - cursor: pointer; -} -#form_content { - display: none; -} -#vmform .four { - overflow: hidden; -} -#vmform .four label { - float: left; - display: table-cell; - width: 15%; -} -#vmform .four label:nth-child(4n + 4) { -} -#vmform .four label.cpu1 { - width: 28%; - height: 16px; - line-height: 16px; -} -#vmform .four label.cpu2 { - width: 3%; - height: 16px; - line-height: 16px; -} -#vmform .mac_generate { - cursor: pointer; - margin-left: -5px; - color: var(--blue-700); /* Condensed from: #08c */ - font-size: 1.3rem; - transform: translate(0px, 2px); -} -#vmform .disk { - display: none; -} -#vmform .disk_preview { - display: inline-block; - color: var(--gray-300); /* Condensed from: #bbb */ - transform: translate(0px, 1px); -} -i.fa-plus-circle, -i.fa-minus-circle { - margin-left: 8px; -} -input[type="checkbox"] { - margin-left: 0; -} - -span.width { - display: inline-block; - width: 280px; -} - -span.column1 { - display: inline-block; - width: 140px; -} - -span.column2 { - display: inline-block; - width: 220px; -} - -input#btnvCPUSelect, -input.wlan0_info { - font-size: 1rem; - padding: 5px 10px; - margin: 0 0 0 10px; -} - -span.space { - display: inline-block; - width: 60px; -} - -span.label { - display: inline-block; - width: 110px; - text-align: right; - overflow: hidden; - text-overflow: ellipsis; -} - -span.ipvtap { - margin-left: 25px; - font-family: bitstream; -} - -select.narrow { - min-width: 90px !important; -} - -select.second { - margin-left: 12px; - max-width: 90px; - margin-right: 0; -} - -div.wlan0 { - text-align: left; -} - -input.trim { - width: 98px; - min-width: 98px; -} - -input.second { - margin-left: 8px; -} - -.autostart ~ .switch-button-background { - margin-top: 8px !important; - margin-left: 0 !important; -} - -.hidden { - display: none !important; -} - -.CodeMirror { - border: 1px solid var(--gray-150); - cursor: text; - margin-top: 15px; - margin-bottom: 10px; -} - -.CodeMirror pre.CodeMirror-placeholder { - color: var(--gray-400); -} diff --git a/emhttp/plugins/dynamix.vm.manager/sheets/AddVM.css b/emhttp/plugins/dynamix.vm.manager/styles/edit.css similarity index 97% rename from emhttp/plugins/dynamix.vm.manager/sheets/AddVM.css rename to emhttp/plugins/dynamix.vm.manager/styles/edit.css index ad897e805..2e942b58d 100644 --- a/emhttp/plugins/dynamix.vm.manager/sheets/AddVM.css +++ b/emhttp/plugins/dynamix.vm.manager/styles/edit.css @@ -53,14 +53,14 @@ body { width: inherit; } -#vmform textarea{ - max-width:500px; - scrollbar-width:4px; +#vmform textarea { + max-width: 500px; + scrollbar-width: 4px; } -#vmform textarea::-webkit-scrollbar{ - height:4px; - width:4px; +#vmform textarea::-webkit-scrollbar { + height: 4px; + width: 4px; } #vmform .multiple { @@ -173,7 +173,7 @@ span.advancedview_panel { height: 300px; overflow-y: scroll; position: relative; - display:grid; + display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; } @@ -308,4 +308,4 @@ input.second { .fileTree { position: relative; -} \ No newline at end of file +} From f73f786a7bbff651f071528b45a5d9a188e7c36e Mon Sep 17 00:00:00 2001 From: Zack Spear Date: Thu, 3 Apr 2025 15:49:07 -0700 Subject: [PATCH 12/36] fix: enhance jGrowl notification styles in default-dynamix.css by adding box-shadow for better visibility --- .../dynamix/styles/default-dynamix.css | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/emhttp/plugins/dynamix/styles/default-dynamix.css b/emhttp/plugins/dynamix/styles/default-dynamix.css index 9154115b1..45d9a3417 100644 --- a/emhttp/plugins/dynamix/styles/default-dynamix.css +++ b/emhttp/plugins/dynamix/styles/default-dynamix.css @@ -119,26 +119,6 @@ margin-left: auto; margin-right: auto; } -.jGrowl-notification.alert { - color: var(--dynamix-jgrowl-alert-text-color); - background-color: var(--dynamix-jgrowl-alert-bg-color); - border: 1px solid var(--dynamix-jgrowl-alert-border-color); -} -.jGrowl-notification.warning { - color: var(--dynamix-jgrowl-warning-text-color); - background-color: var(--dynamix-jgrowl-warning-bg-color); - border: 1px solid var(--dynamix-jgrowl-warning-border-color); -} -.jGrowl-notification.normal { - color: var(--dynamix-jgrowl-normal-text-color); - background-color: var(--dynamix-jgrowl-normal-bg-color); - border: 1px solid var(--dynamix-jgrowl-normal-border-color); -} -.jGrowl-notification.default { - color: var(--dynamix-jgrowl-text-color); - background-color: var(--dynamix-jgrowl-bg-color); - border: 1px solid var(--dynamix-jgrowl-border-color); -} .jGrowl-notification { opacity: 0.96; min-height: 1.2rem; @@ -147,6 +127,29 @@ margin: 5px 0; text-align: left; border-radius: 6px; +} +.jGrowl-notification.alert { + color: var(--dynamix-jgrowl-alert-text-color); + background-color: var(--dynamix-jgrowl-alert-bg-color); + border: 1px solid var(--dynamix-jgrowl-alert-border-color); + box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); +} +.jGrowl-notification.warning { + color: var(--dynamix-jgrowl-warning-text-color); + background-color: var(--dynamix-jgrowl-warning-bg-color); + border: 1px solid var(--dynamix-jgrowl-warning-border-color); + box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); +} +.jGrowl-notification.normal { + color: var(--dynamix-jgrowl-normal-text-color); + background-color: var(--dynamix-jgrowl-normal-bg-color); + border: 1px solid var(--dynamix-jgrowl-normal-border-color); + box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); +} +.jGrowl-notification.default { + color: var(--dynamix-jgrowl-text-color); + background-color: var(--dynamix-jgrowl-bg-color); + border: 1px solid var(--dynamix-jgrowl-border-color); box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); } .jGrowl-notification .jGrowl-header { From 35b3fd45098625480f5612d920044795dafac1b6 Mon Sep 17 00:00:00 2001 From: Zack Spear Date: Thu, 3 Apr 2025 15:49:13 -0700 Subject: [PATCH 13/36] fix: add comments to default-color-palette.css for clarity on color naming conventions and brand colors --- .../plugins/dynamix/styles/default-color-palette.css | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/emhttp/plugins/dynamix/styles/default-color-palette.css b/emhttp/plugins/dynamix/styles/default-color-palette.css index 506f214b3..3c69d869b 100644 --- a/emhttp/plugins/dynamix/styles/default-color-palette.css +++ b/emhttp/plugins/dynamix/styles/default-color-palette.css @@ -1,3 +1,7 @@ +/* + * Naming convention inspired by Tailwind CSS + * @see https://tailwindcss.com/docs/customizing-colors + */ :root { --font-sans: clear-sans, sans-serif; --font-bitstream: bitstream; @@ -36,8 +40,8 @@ --orange-200: #ff9900; --orange-300: #e68a00; --orange-400: #ce7c10; - --orange-500: #ff8c2f; - --orange-800: #f15a2c; + --orange-500: #ff8c2f; /* Unraid Brand Orange */ + --orange-800: #f15a2c; /* Unraid Brand Orange Dark */ --orange-900: #d63301; --red-100: #ffddd1; @@ -45,7 +49,7 @@ --red-500: #ff3300; --red-600: #f0000c; /* Condensed from: #ff0000 red */ --red-700: #de1100; - --red-800: #e22828; /* Condensed from: #e80000 #ef3d47 */ + --red-800: #e22828; /* Unraid Brand Red, Condensed from: #e80000 #ef3d47 */ --red-900: #941c00; --green-100: #dff2bf; From f1692d3e3f10312ed9545255165eac3e93778172 Mon Sep 17 00:00:00 2001 From: Zack Spear Date: Thu, 3 Apr 2025 15:51:37 -0700 Subject: [PATCH 14/36] refactor: simplify jGrowl notification styles in default-dynamix.css by using nested selectors for better organization and maintainability --- .../dynamix/styles/default-dynamix.css | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/emhttp/plugins/dynamix/styles/default-dynamix.css b/emhttp/plugins/dynamix/styles/default-dynamix.css index 45d9a3417..9138a146a 100644 --- a/emhttp/plugins/dynamix/styles/default-dynamix.css +++ b/emhttp/plugins/dynamix/styles/default-dynamix.css @@ -127,30 +127,34 @@ margin: 5px 0; text-align: left; border-radius: 6px; -} -.jGrowl-notification.alert { - color: var(--dynamix-jgrowl-alert-text-color); - background-color: var(--dynamix-jgrowl-alert-bg-color); - border: 1px solid var(--dynamix-jgrowl-alert-border-color); - box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); -} -.jGrowl-notification.warning { - color: var(--dynamix-jgrowl-warning-text-color); - background-color: var(--dynamix-jgrowl-warning-bg-color); - border: 1px solid var(--dynamix-jgrowl-warning-border-color); - box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); -} -.jGrowl-notification.normal { - color: var(--dynamix-jgrowl-normal-text-color); - background-color: var(--dynamix-jgrowl-normal-bg-color); - border: 1px solid var(--dynamix-jgrowl-normal-border-color); - box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); -} -.jGrowl-notification.default { - color: var(--dynamix-jgrowl-text-color); - background-color: var(--dynamix-jgrowl-bg-color); - border: 1px solid var(--dynamix-jgrowl-border-color); - box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); + + &.alert { + color: var(--dynamix-jgrowl-alert-text-color); + background-color: var(--dynamix-jgrowl-alert-bg-color); + border: 1px solid var(--dynamix-jgrowl-alert-border-color); + box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); + } + + &.warning { + color: var(--dynamix-jgrowl-warning-text-color); + background-color: var(--dynamix-jgrowl-warning-bg-color); + border: 1px solid var(--dynamix-jgrowl-warning-border-color); + box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); + } + + &.normal { + color: var(--dynamix-jgrowl-normal-text-color); + background-color: var(--dynamix-jgrowl-normal-bg-color); + border: 1px solid var(--dynamix-jgrowl-normal-border-color); + box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); + } + + &.default { + color: var(--dynamix-jgrowl-text-color); + background-color: var(--dynamix-jgrowl-bg-color); + border: 1px solid var(--dynamix-jgrowl-border-color); + box-shadow: 2px 2px 1px var(--dynamix-jgrowl-shadow-color); + } } .jGrowl-notification .jGrowl-header { font-weight: bold; From 16732d6a75e94f1be4425fa4c316e15997b2e85e Mon Sep 17 00:00:00 2001 From: Zack Spear Date: Thu, 3 Apr 2025 16:42:54 -0700 Subject: [PATCH 15/36] fix: add php-cs-fixer executable path to VSCode settings for improved code formatting --- .vscode/settings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index c92ef75ac..440e17605 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -82,5 +82,6 @@ ], "search.exclude": { "emhttp/webGui/**/*": true, - } + }, + "php-cs-fixer.executablePath": "${extensionPath}/php-cs-fixer.phar" } From b5e67b4293397a666a31b0d89ad65cc22bc60e71 Mon Sep 17 00:00:00 2001 From: Zack Spear Date: Thu, 3 Apr 2025 16:43:56 -0700 Subject: [PATCH 16/36] refactor: update feedback script for improved readability and maintainability by standardizing PHP tags, restructuring CSS classes, and enhancing layout organization --- emhttp/plugins/dynamix/scripts/feedback | 181 +++++++++++++++++------- 1 file changed, 126 insertions(+), 55 deletions(-) diff --git a/emhttp/plugins/dynamix/scripts/feedback b/emhttp/plugins/dynamix/scripts/feedback index 094e731c6..c824dd79e 100755 --- a/emhttp/plugins/dynamix/scripts/feedback +++ b/emhttp/plugins/dynamix/scripts/feedback @@ -1,5 +1,5 @@ #!/usr/bin/php -q -
-
- - - - -
-
+ -
+ -
- -
+ -
- - -

: .

-
+ -
- - -

: .

-
+ -
- -
+ - +
 
-
+
_(IPv4 DNS server assignment)_: @@ -787,7 +787,7 @@ _(Enable VLANs)_:
-
+
_(Interface description)_: : "> )"> @@ -889,7 +889,7 @@ _(IPv6 privacy extensions)_: