diff --git a/internal/web/static/base.css b/internal/web/static/base.css index 9e7580a..13746b4 100644 --- a/internal/web/static/base.css +++ b/internal/web/static/base.css @@ -741,3 +741,25 @@ table.gpu-list { width: auto; flex: 1 1 22rem; } @media (prefers-reduced-motion: reduce) { .nvswitch i, .backplane, .gpu-chip.joined, .gpu-chip.lost { animation: none; } } + +/* People: an account row on one line, its rarer actions in a menu. */ +form.add-to { display: flex; gap: .35rem; align-items: center; flex-wrap: nowrap; } +form.add-to select { width: auto; max-width: 13rem; margin: 0; padding: .25rem .4rem; font-size: .8rem; } +form.add-to button { padding: .25rem .6rem; font-size: .78rem; } +details.row-menu { position: relative; display: inline-block; } +details.row-menu > summary { list-style: none; cursor: pointer; padding: .1rem .55rem; border-radius: 6px; + color: var(--muted); font-weight: 700; letter-spacing: .05em; user-select: none; } +details.row-menu > summary::-webkit-details-marker { display: none; } +details.row-menu > summary:hover, details.row-menu[open] > summary { color: var(--fg); background: var(--card); } +details.row-menu .menu { position: absolute; right: 0; top: calc(100% + .25rem); z-index: 5; min-width: 8rem; + display: flex; flex-direction: column; gap: .15rem; padding: .35rem; border-radius: 8px; + background: var(--card); border: 1px solid var(--line); box-shadow: 0 10px 24px rgba(0,0,0,.18); } +details.row-menu .menu form { display: block; } +details.row-menu .menu button { width: 100%; text-align: left; padding: .3rem .5rem; border-radius: 5px; } +details.row-menu .menu button:hover { background: var(--bg); } +details.add-inline { margin: .25rem 0 .4rem; } +details.add-inline > summary { list-style: none; cursor: pointer; display: inline-block; font-size: .8rem; + color: var(--accent); padding: .1rem .2rem; } +details.add-inline > summary::-webkit-details-marker { display: none; } +details.add-inline[open] > summary { color: var(--muted); } +details.add-inline form.add { margin-top: .3rem; } diff --git a/internal/web/templates/admin_users.html b/internal/web/templates/admin_users.html index 3738ac4..25eaf94 100644 --- a/internal/web/templates/admin_users.html +++ b/internal/web/templates/admin_users.html @@ -176,21 +176,29 @@ project in the team — an account can only be approved into a project.

{{end}} -
- - - - -
+ {{/* Folded until wanted: a box open under every team was most of the + tree's height and read as something to fill in. */}} +
+ + project +
+ + + + +
+
{{end}} -
- - - - -
+
+ + team +
+ + + + +
+
{{end}} @@ -254,6 +262,11 @@ access than it had, so they need a shell on the control plane — {{/* The actions every account row carries: suspend or reinstate, remove. */}} {{define "state-actions"}}{{$u := .U}}{{$d := .D}} {{if ne $u.ID $d.AdminID}} + {{/* In a menu: two red links on every row made the list look alarmed, + and they are the two things done least often. */}} +
+ ⋯ + +
{{else}}you{{end}} {{end}} @@ -303,7 +318,7 @@ access than it had, so they need a shell on the control plane — {{ago $u.LastLoginAt}} -
+