From 11c944d794747bf00256facca11950332dd40b3c Mon Sep 17 00:00:00 2001 From: Dmitry S Date: Thu, 8 Jul 2021 12:18:46 -0400 Subject: [PATCH] (core) Accept values entered into Reference columns showing RowIDs without waiting. Summary: - Normally Reference columns can only be used for data entry once the target table has loaded. When it shows RowID, we shouldn't need to wait. - Also, fix pasting values between cells of a RowID-showing column. Test Plan: Added a test for entering data before data has loaded. Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D2902 --- app/client/lib/tableUtil.js | 2 +- app/client/widgets/ReferenceEditor.ts | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/client/lib/tableUtil.js b/app/client/lib/tableUtil.js index 20bd864f..30d13f66 100644 --- a/app/client/lib/tableUtil.js +++ b/app/client/lib/tableUtil.js @@ -107,7 +107,7 @@ function makePasteHtml(tableData, selection, includeColHeaders) { let rawValue = col.rawGetter(rowId); let fmtValue = col.fmtGetter(rowId); let dataOptions = {}; - if (rawValue != fmtValue) { + if (rawValue !== fmtValue) { dataOptions['data-grist-raw-value'] = JSON.stringify(rawValue); } return dom('td', dataOptions, fmtValue); diff --git a/app/client/widgets/ReferenceEditor.ts b/app/client/widgets/ReferenceEditor.ts index b56ac2bc..abd711a5 100644 --- a/app/client/widgets/ReferenceEditor.ts +++ b/app/client/widgets/ReferenceEditor.ts @@ -128,7 +128,12 @@ export class ReferenceEditor extends NTextEditor { if (matches.length > 0) { return matches[0].value; } else { - return this.textInput.value; + const value = this.textInput.value; + if (this._visibleCol === 'id') { + // If the value is a valid number (non-NaN), save as a numeric rowId; else as text. + return +value || value; + } + return value; } }