diff --git a/client-gui2 b/client-gui2 index ef4390c8..08a9b2e0 160000 --- a/client-gui2 +++ b/client-gui2 @@ -1 +1 @@ -Subproject commit ef4390c85e548cfd59987c281887e4ba818f68b8 +Subproject commit 08a9b2e01e129dcec7541d0b4f850758f96c7836 diff --git a/common/proto/tables_data.proto b/common/proto/tables_data.proto index 0ede6760..fdeffebd 100644 --- a/common/proto/tables_data.proto +++ b/common/proto/tables_data.proto @@ -208,6 +208,10 @@ message StageTableDataImportRequest { message TableDataImportRow { // Required. Data payload for one staged row. map data = 1; + // Link columns whose text must be resolved against the target table's exact + // row display value, including text made only of digits. Unlisted columns + // retain the normal table-write link semantics. + repeated string link_display_columns = 2; } message StageTableDataImportResponse { diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index 0bddda4a..9239615e 100644 Binary files a/common/src/proto/descriptor.bin and b/common/src/proto/descriptor.bin differ diff --git a/common/src/proto/komp_ac.tables_data.rs b/common/src/proto/komp_ac.tables_data.rs index 70930ffd..ae3aa9a6 100644 --- a/common/src/proto/komp_ac.tables_data.rs +++ b/common/src/proto/komp_ac.tables_data.rs @@ -109,6 +109,11 @@ pub struct TableDataImportRow { ::prost::alloc::string::String, ::prost_types::Value, >, + /// Link columns whose text must be resolved against the target table's exact + /// row display value, including text made only of digits. Unlisted columns + /// retain the normal table-write link semantics. + #[prost(string, repeated, tag = "2")] + pub link_display_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, } #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)] pub struct StageTableDataImportResponse { diff --git a/komp-app/src/import_export.rs b/komp-app/src/import_export.rs index 0e5fff17..9c1f3abc 100644 --- a/komp-app/src/import_export.rs +++ b/komp-app/src/import_export.rs @@ -425,7 +425,7 @@ pub fn row_to_table_data( }; data.insert(target_column.clone(), value); } - Ok(TableDataImportRow { data }) + Ok(TableDataImportRow { data, link_display_columns: Vec::new() }) } pub fn exportable_columns(schema: &TableStructureResponse) -> Vec { diff --git a/server b/server index 31aaa157..8ab030c7 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 31aaa15724c946d0a275f468d503991fcc90e44e +Subproject commit 8ab030c7710a696f25c2f3aaf5383a7053d8d78f diff --git a/web/src/pages/import_export/import/logic.rs b/web/src/pages/import_export/import/logic.rs index e12f4295..a0c41ff0 100644 --- a/web/src/pages/import_export/import/logic.rs +++ b/web/src/pages/import_export/import/logic.rs @@ -666,7 +666,7 @@ fn import_row( )?; data.insert(column.clone(), value); } - Ok(TableDataImportRow { data }) + Ok(TableDataImportRow { data, link_display_columns: Vec::new() }) } async fn render_step(