better UX/UI

This commit is contained in:
Priec
2026-08-17 21:35:59 +02:00
parent e13447e3d6
commit 9b2b429dc6
12 changed files with 282 additions and 83 deletions

View File

@@ -201,11 +201,12 @@ pub(crate) struct AliasForm {
pub alias: String,
}
/// Moving one column past its neighbour.
/// Saving a complete, staged column order.
///
/// It carries no alias at all -- not even the one it is moving -- so a reorder
/// cannot rename anything, whatever the browser still had on screen. See
/// [`AliasForm`] for why that separation is worth two forms.
/// It carries ids only and no aliases, so a reorder cannot rename anything,
/// whatever the browser still had on screen. The handler validates that this
/// is an exact permutation of the table's current ids and supplies fresh
/// aliases from the backend. See [`AliasForm`] for why that separation matters.
#[derive(Clone, Debug, Default, serde::Deserialize)]
pub(crate) struct OrderForm {
#[serde(default)]
@@ -215,10 +216,7 @@ pub(crate) struct OrderForm {
#[serde(default)]
pub expected_row_version: i64,
#[serde(default)]
pub column_id: i64,
/// `up` or `down`. Anything else moves nothing.
#[serde(default)]
pub direction: String,
pub column_ids: Vec<i64>,
}
/// The copy-profile panel. An empty `table_names` copies the whole profile,