diff --git a/emhttp/plugins/dynamix/ArrayOperation.page b/emhttp/plugins/dynamix/ArrayOperation.page index 8228ed86f..662454837 100644 --- a/emhttp/plugins/dynamix/ArrayOperation.page +++ b/emhttp/plugins/dynamix/ArrayOperation.page @@ -47,21 +47,21 @@ function check_encryption() { $status = _('Wrong key'); else return; - echo "",_('Encryption status').":$statuspermit reformat"; - echo "",_('Encryption input').":"; - echo "permit reformat"; + echo ""; + echo ""; - echo "",_('Passphrase'),":"._('show passphrase').""; - echo "",_('Retype passphrase'),":"; - echo "",_('Keyfile'),":"; + echo "
"; + echo ""; + echo ""; } function maintenance_mode() { echo ""; echo ""; - echo "",_('Maintenance mode'),""; + echo ""; echo "",_('Maintenance mode')," - ",_('if checked, Start array but do not mount disks'),""; echo ""; } @@ -538,7 +538,8 @@ window.onunload = function(){
- + +
@@ -575,31 +576,31 @@ window.onunload = function(){ - - - - - - + + + + 1):?> + + + + -
**_(Started)_**
+
_(Error code)_:
+
_(Duration)_:
+
_(Error code)_:
+
_(Duration)_:
+
_(Error code)_:
+
_(Duration)_:
. + value="_(Pause)_" onclick="pauseParity(this.form)" value="_(Resume)_" onclick="resumeParity(this.form)" disabled> - **** .**** .
**** .
_(WARNING: canceling may leave the array unprotected)_!
_(Disk-Clear in progress)_. + value="_(Pause)_" onclick="pauseParity(this.form)" value="_(Resume)_" onclick="resumeParity(this.form)" disabled> - **_(Pause)_** _(will pause Disk-Clear)_.**_(Resume)_** _(will resume Disk-Clear)_.
**_(Cancel)_** _(will stop Disk-Clear)_.
_(Parity-Check in progress)_. + value="_(Pause)_" onclick="pauseParity(this.form)" value="_(Resume)_" onclick="resumeParity(this.form)" disabled> - **_(Pause)_** _(will pause Parity-Check)_.**_(Resume)_** _(will resume Parity-Check)_.
**_(Cancel)_** _(will stop Parity-Check)_.
_(Read-Check in progress)_. + value="_(Pause)_" onclick="pauseParity(this.form)" value="_(Resume)_" onclick="resumeParity(this.form)" disabled> - **_(Pause)_** _(will pause Read-Check)_.**_(Resume)_** _(will resume Read-Check)_.
**_(Cancel)_** _(will stop Read-Check)_.
+
**_(Delete)_** _(will delete the encryption keyfile)_.
_(Yes, I want to do this)_
- - +
+
**_(Spin Up)_** _(will immediately spin up all disks)_.
**_(Spin Down)_** _(will immediately spin down all disks)_.
- +
@@ -821,16 +830,16 @@ endswitch;
- +
**_(Delete)_** _(will delete the encryption keyfile)_.
- - - +
**_(Reboot)_** _(will activate a *clean* system reset)_.
**_(Shutdown)_** _(will activate a *clean* system power down)_.
_(Reboot in safe mode)_
+ +
**_(Reboot)_** _(will activate a *clean* system reset)_.
**_(Shutdown)_** _(will activate a *clean* system power down)_.
diff --git a/emhttp/plugins/dynamix/nchan/device_list b/emhttp/plugins/dynamix/nchan/device_list index 152aaaca4..70731800b 100755 --- a/emhttp/plugins/dynamix/nchan/device_list +++ b/emhttp/plugins/dynamix/nchan/device_list @@ -525,7 +525,7 @@ while (true) { if ($zfsPool) { $current_subpools = array_filter($pools, function($element) use ($pool,$_tilde_) {return str_contains($element,"{$pool}{$_tilde_}");}); $current_subpools_list = str_replace("{$pool}{$_tilde_}","", implode(',', $current_subpools)); - $echo[$a][] = ""; + $echo[$a][] = ""; } $echo[$a][] = ""; } else { diff --git a/emhttp/plugins/dynamix/sheets/ArrayOperation.css b/emhttp/plugins/dynamix/sheets/ArrayOperation.css index 8f018c359..b530ca658 100644 --- a/emhttp/plugins/dynamix/sheets/ArrayOperation.css +++ b/emhttp/plugins/dynamix/sheets/ArrayOperation.css @@ -1,26 +1,118 @@ -tr#copy, -tr#file { - display: none; -} -td.gap { - padding-left: 26px !important; -} -td.wrap { - white-space: normal !important; -} -span#pass { - display: none; - margin-left: 20px; -} -input[type="checkbox"] { - margin-left: 0; -} +.ArrayOperation-Table { + --table-gap: 0.5rem; -input.subpool { - font-size: 1rem; - padding: 5px 10px; -} + box-sizing: border-box; -.hidden { - display: none; -} + * { + box-sizing: border-box; + } + + input[type="text"], + input[type="password"], + input[type="number"], + input[type="url"], + input[type="email"], + input[type="date"], + input[type="file"], + input:not([type="submit"]), + input:not([type="button"]), + input:not([type="checkbox"]), + input:not([type="radio"]), + input:not([class*="narrow"]), + textarea, + .textarea, + select, + .ui-dropdownchecklist-selector-wrapper { + margin-bottom: var(--table-gap); + } + + /* mobile and tablet */ + @media (max-width: 769px) { + tbody { + display: flex; + flex-direction: column; + gap: var(--table-gap); + } + + tr { + display: flex; + flex-wrap: wrap; + gap: var(--table-gap); + } + + td { + display: block; + padding: var(--table-gap) 0 !important; /* override `table.array_status tr > td` padding-left */ + height: auto; /* override `table tbody td` */ + + input[type="button"], + input[type="reset"], + input[type="submit"], + button, + button[type="button"], + a.button, + .sweet-alert button { + margin: 0; + } + } + + td:empty:not(.line) { + display: none; + } + + .line { + flex-basis: 100%; + margin-top: var(--table-gap); + } + } + /* mobile */ + @media (max-width: 549px) { + td { + flex-basis: 100%; + } + } + /* tablet */ + @media (min-width: 550px) and (max-width: 769px) { + td:first-child { + flex-basis: 100%; + } + + --base-col-02-width: 35%; + --base-col-03-width: calc(100% - var(--base-col-02-width)); + + /* minus half the gap, otherwise the last column will be too wide and break to a new line prematurely */ + td:nth-child(2):not(.line) { + flex-basis: calc(var(--base-col-02-width) - var(--table-gap) / 2); + } + + td:nth-child(3):not(.line) { + flex-basis: calc(var(--base-col-03-width) - var(--table-gap) / 2); + } + } + + /* desktop */ + @media (min-width: 770px) { + td { + padding: var(--table-gap) 0; /* override `table.array_status tr > td` padding-left */ + } + + input[type="text"], + input[type="password"], + input[type="number"], + input[type="url"], + input[type="email"], + input[type="date"], + input[type="file"], + input:not([type="submit"]), + input:not([type="button"]), + input:not([type="checkbox"]), + input:not([type="radio"]), + input:not([class*="narrow"]), + textarea, + .textarea, + select, + .ui-dropdownchecklist-selector-wrapper { + max-width: 400px; + } + } +} \ No newline at end of file diff --git a/emhttp/plugins/dynamix/styles/default-base.css b/emhttp/plugins/dynamix/styles/default-base.css index ad2c5b34f..a143d5671 100644 --- a/emhttp/plugins/dynamix/styles/default-base.css +++ b/emhttp/plugins/dynamix/styles/default-base.css @@ -196,6 +196,11 @@ a.button, background-size: var(--button-background-size); } +.button-small { + font-size: 1rem; + padding: 5px 10px; +} + /* necessary evil until we re-write button styles */ .buttons-no-margin, .buttons-spaced { @@ -1112,9 +1117,6 @@ table.dashboard i.control { padding: 2px; border-radius: 5px; } -[name="arrayOps"] { - margin-top: 12px; -} span.error { color: var(--red-600); background-color: var(--red-300); @@ -1970,6 +1972,35 @@ span#wlan0 { scrollbar-width: thin; } +.text-wrap { + text-wrap: wrap; +} +.text-nowrap { + text-wrap: nowrap; +} +.text-balance { + text-wrap: balance; +} +.text-pretty { + text-wrap: pretty; +} + +.whitespace-normal { + white-space: normal; +} +.whitespace-nowrap { + white-space: nowrap; +} +.whitespace-pre { + white-space: pre; +} +.whitespace-pre-line { + white-space: pre-line; +} +.whitespace-pre-wrap { + white-space: pre-wrap; +} + @media (min-width: 1330px) { .clone-settings { position: absolute;