aliases are normalized and used in normalized state, but nonnormalized aliases contain everything
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
|
||||
use crate::{
|
||||
definitions::table_definition::{GeneratedColumnAlias, PostTableDefinitionRequest},
|
||||
schema::{ColumnCatalog, ColumnDraft, proto_columns, validate_identifier, validate_table_name},
|
||||
schema::{ColumnCatalog, ColumnDraft, proto_columns, validate_column_alias, validate_identifier, validate_table_name},
|
||||
{i18n::Locale, tr},
|
||||
};
|
||||
|
||||
@@ -361,10 +361,16 @@ impl TableDraft {
|
||||
);
|
||||
|
||||
for (source, alias) in &renames {
|
||||
if let Some(error) = validate_identifier(locale, alias, "label-column-alias", true) {
|
||||
if let Some(error) = validate_column_alias(locale, alias) {
|
||||
return Err(error);
|
||||
}
|
||||
if taken.iter().filter(|name| *name == alias).count() > 1 {
|
||||
let canonical = common::alias::canonical_alias(alias);
|
||||
if taken
|
||||
.iter()
|
||||
.filter(|name| common::alias::canonical_alias(name) == canonical)
|
||||
.count()
|
||||
> 1
|
||||
{
|
||||
return Err(tr!(
|
||||
locale,
|
||||
"draft-err-alias-taken",
|
||||
@@ -756,12 +762,9 @@ mod tests {
|
||||
source: "debit".to_string(),
|
||||
alias: "Md".to_string(),
|
||||
}];
|
||||
assert!(
|
||||
draft.validate(crate::i18n::Locale::default()).is_err(),
|
||||
"an alias is a column name"
|
||||
);
|
||||
assert!(draft.validate(crate::i18n::Locale::default()).is_ok());
|
||||
|
||||
draft.generated_aliases[0].alias = "note".to_string();
|
||||
draft.generated_aliases[0].alias = "NOTE🙂".to_string();
|
||||
assert!(
|
||||
draft.validate(crate::i18n::Locale::default()).is_err(),
|
||||
"a declared column holds the name"
|
||||
|
||||
@@ -27,7 +27,7 @@ use crate::{
|
||||
PutTableDefinitionRequest,
|
||||
},
|
||||
{i18n::Locale, tr},
|
||||
schema::{ColumnForm, proto_columns, validate_table_name},
|
||||
schema::{ColumnForm, proto_columns, validate_column_alias, validate_table_name},
|
||||
services::{authenticated_request, reject_cross_site},
|
||||
};
|
||||
|
||||
@@ -445,9 +445,8 @@ pub(crate) async fn set_column_alias(
|
||||
table: form.table.clone(),
|
||||
});
|
||||
|
||||
let alias = form.alias.trim().to_string();
|
||||
if alias.is_empty() {
|
||||
let message = tr!(Locale::from_headers(&headers), "td-err-choose-rename");
|
||||
let alias = form.alias;
|
||||
if let Some(message) = validate_column_alias(Locale::from_headers(&headers), &alias) {
|
||||
return refuse(state, headers, inputs, Page::Presentation, message).await;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user