Page MenuHomePhabricator

D19813.diff
No OneTemporary

D19813.diff

diff --git a/src/applications/diffusion/management/DiffusionRepositoryStorageManagementPanel.php b/src/applications/diffusion/management/DiffusionRepositoryStorageManagementPanel.php
--- a/src/applications/diffusion/management/DiffusionRepositoryStorageManagementPanel.php
+++ b/src/applications/diffusion/management/DiffusionRepositoryStorageManagementPanel.php
@@ -99,15 +99,20 @@
$versions = mpull($versions, null, 'getDevicePHID');
- foreach ($bindings as $binding_group) {
- $all_disabled = true;
- foreach ($binding_group as $binding) {
- if (!$binding->getIsDisabled()) {
- $all_disabled = false;
- break;
- }
- }
+ // List enabled devices first, then sort devices in each group by name.
+ $sort = array();
+ foreach ($bindings as $key => $binding_group) {
+ $all_disabled = $this->isDisabledGroup($binding_group);
+
+ $sort[$key] = id(new PhutilSortVector())
+ ->addInt($all_disabled ? 1 : 0)
+ ->addString(head($binding_group)->getDevice()->getName());
+ }
+ $sort = msortv($sort, 'getSelf');
+ $bindings = array_select_keys($bindings, array_keys($sort)) + $bindings;
+ foreach ($bindings as $binding_group) {
+ $all_disabled = $this->isDisabledGroup($binding_group);
$any_binding = head($binding_group);
if ($all_disabled) {
@@ -228,4 +233,16 @@
return $this->newBox(pht('Cluster Status'), $table);
}
+ private function isDisabledGroup(array $binding_group) {
+ assert_instances_of($binding_group, 'AlmanacBinding');
+
+ foreach ($binding_group as $binding) {
+ if (!$binding->getIsDisabled()) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
}

File Metadata

Mime Type
text/plain
Expires
Sat, May 18, 7:01 AM (4 w, 1 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6294431
Default Alt Text
D19813.diff (1 KB)

Event Timeline