mirror of
https://github.com/discourse/discourse.git
synced 2024-11-28 19:53:53 -06:00
FIX: Don't let table-build automatically fill empty headers with default values (#27894)
* FIX: Don't let table-build automatically fill empty headers with default values The old table builder would fill empty headers with default values A~Z when editing. This commit makes table-builder respect the old empty headers related meta topic: https://meta.discourse.org/t/editing-a-table-with-empty-headers-fills-them-in-with-the-default-text-column-a-column-b/268472
This commit is contained in:
parent
271cbcefa9
commit
63ca30ccb4
@ -90,7 +90,10 @@ export default class SpreadsheetEditor extends Component {
|
||||
|
||||
@action
|
||||
insertTable() {
|
||||
const updatedHeaders = this.spreadsheet.getHeaders().split(","); // keys
|
||||
const updatedHeaders = this.spreadsheet
|
||||
.getHeaders()
|
||||
.split(",")
|
||||
.map((c) => c.trim()); // keys
|
||||
const updatedData = this.spreadsheet.getData(); // values
|
||||
const markdownTable = this.buildTableMarkdown(updatedHeaders, updatedData);
|
||||
|
||||
@ -205,7 +208,7 @@ export default class SpreadsheetEditor extends Component {
|
||||
// headings
|
||||
headings = this.extractTableContent(row).map((heading) => {
|
||||
return {
|
||||
title: heading,
|
||||
title: heading || " ",
|
||||
width: Math.max(
|
||||
heading.length * rowWidthFactor,
|
||||
this.defaultColWidth
|
||||
@ -221,7 +224,9 @@ export default class SpreadsheetEditor extends Component {
|
||||
}
|
||||
});
|
||||
|
||||
headings.forEach((h, i) => (h.align = this.alignments?.[i] ?? "left"));
|
||||
headings.forEach((h, i) => {
|
||||
h.align = this.alignments?.[i] ?? "left";
|
||||
});
|
||||
|
||||
return this.buildSpreadsheet(rows, headings);
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ describe "Table Builder", type: :system do
|
||||
let(:composer) { PageObjects::Components::Composer.new }
|
||||
let(:insert_table_modal) { PageObjects::Modals::InsertTable.new }
|
||||
fab!(:topic) { Fabricate(:topic, user: user) }
|
||||
fab!(:topic2) { Fabricate(:topic, user: user) }
|
||||
fab!(:post1) { create_post(user: user, topic: topic, raw: <<~RAW) }
|
||||
|Make | Model | Year|
|
||||
|--- | --- | ---|
|
||||
@ -12,6 +13,12 @@ describe "Table Builder", type: :system do
|
||||
|Nissan | Skyline | 1999|
|
||||
|Honda | S2000 | 2001|
|
||||
RAW
|
||||
fab!(:post2) { create_post(user: user, topic: topic2, raw: <<~RAW) }
|
||||
| | | |
|
||||
|--- | --- | ---|
|
||||
|Some | content | here|
|
||||
|1 | 2 | 3|
|
||||
RAW
|
||||
|
||||
let(:topic_page) { PageObjects::Pages::Topic.new }
|
||||
|
||||
@ -108,6 +115,25 @@ describe "Table Builder", type: :system do
|
||||
end
|
||||
end
|
||||
|
||||
it "should respect the original empty header" do
|
||||
topic_page.visit_topic(topic2)
|
||||
topic_page.find(".btn-edit-table", visible: :all).click
|
||||
expect(page).to have_selector(".insert-table-modal")
|
||||
insert_table_modal.type_in_cell(0, 0, " updated")
|
||||
insert_table_modal.click_insert_table
|
||||
|
||||
updated_post = <<~RAW
|
||||
| | | |
|
||||
|--- | --- | ---|
|
||||
|Some updated | content | here|
|
||||
|1 | 2 | 3|
|
||||
RAW
|
||||
|
||||
try_until_success do
|
||||
expect(normalize_value(post2.reload.raw)).to eq(normalize_value(updated_post))
|
||||
end
|
||||
end
|
||||
|
||||
context "when adding an edit reason" do
|
||||
it "should add the edit reason to the edit history" do
|
||||
edit_reason = "Updated Nissan model"
|
||||
|
Loading…
Reference in New Issue
Block a user