Skip to content
This repository was archived by the owner on Jul 28, 2025. It is now read-only.

Commit f791a3f

Browse files
committed
Merge branch '269-db-folder-does-not-respect-case-in-yaml'
2 parents 73269f8 + 211b490 commit f791a3f

File tree

5 files changed

+27
-5
lines changed

5 files changed

+27
-5
lines changed

src/components/Columns.tsx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import { Literal } from "obsidian-dataview/lib/data-model/value";
1717
import { DatabaseView } from "DatabaseView";
1818
import { obtainAllPossibleRows } from "helpers/VaultManagement";
1919
import rowContextMenuColumn from "components/RowContextMenu";
20+
import { containsUpper } from "helpers/WindowElement";
2021

2122
/**
2223
* Add mandatory and configured metadata columns of the table
@@ -144,12 +145,30 @@ export async function obtainColumnsFromRows(
144145
);
145146
// Obtain unique keys from source
146147
const keys = rows.reduce((acc, row) => {
147-
const keys = Object.keys(row).map((key) => key.toLowerCase());
148+
const keys = Object.keys(row).map((key) => key);
148149
// Remove duplicates
149150
return [...new Set([...acc, ...keys])];
150151
}, [] as string[]);
152+
153+
const uppercaseFields: string[] = [];
154+
let lowercaseFields: string[] = [];
155+
keys.forEach((key) => {
156+
if (containsUpper(key)) {
157+
uppercaseFields.push(key);
158+
} else {
159+
lowercaseFields.push(key);
160+
}
161+
});
162+
const uppercaseFieldsToFilter = uppercaseFields.map((ucf) =>
163+
ucf.toLowerCase()
164+
);
165+
lowercaseFields = lowercaseFields.filter(
166+
(field) => !uppercaseFieldsToFilter.contains(field)
167+
);
168+
169+
const uniqueKeys = [...new Set([...uppercaseFields, ...lowercaseFields])];
151170
// Add keys to columns
152-
keys
171+
uniqueKeys
153172
// Check metadata columns to not be added
154173
.filter((key) => validateColumnKey(key))
155174
.forEach((key, index) => {

src/components/modals/newColumn/handlers/AddExistingColumnHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export class AddExistingColumnHandler extends AbstractHandlerClass<AddColumnModa
1818

1919
promiseOfObtainColumnsFromRows.then((columnsRaw: Record<string, DatabaseColumn>) => {
2020
// Filter out the columns that are already in the table
21-
const currentColumns = (info.getValueOfAllColumnsAsociatedWith('id') as string[]).map(id => id.toLowerCase());
21+
const currentColumns = (info.getValueOfAllColumnsAsociatedWith('id') as string[]).map(id => id);
2222
const filteredColumns: Record<string, string> = {};
2323
Object.keys(columnsRaw).filter((columnName: string) => {
2424
return !currentColumns.includes(columnName.toLowerCase())

src/components/portals/DataviewFiltersPortal.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import Select, { SelectChangeEvent } from "@mui/material/Select";
99
import { DataviewFiltersProps } from "cdm/ComponentsModel";
1010
import { DatabaseColumn } from "cdm/DatabaseModel";
1111
import { obtainColumnsFromRows } from "components/Columns";
12-
import CrossIcon from "components/img/CrossIcon";
1312
import MenuDownIcon from "components/img/MenuDownIcon";
1413
import AddIcon from "@mui/icons-material/Add";
1514
import DeleteIcon from "@mui/icons-material/Delete";

src/helpers/WindowElement.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,8 @@ export function getParentWindow(el: Element) {
44

55
export function getParentBodyElement(el: Element) {
66
return el.doc.body;
7+
}
8+
9+
export function containsUpper(str: string) {
10+
return /[A-Z]/.test(str);
711
}

src/settings/handlers/columns/TemplateColumnsHandler.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export class TemplateColumnsHandler extends AbstractSettingsHandler {
5151
*********************************/
5252
new Setting(template_section)
5353
.setName('Use all fields')
54-
.setDesc('Add all possible columns of your actual source of the database')
54+
.setDesc('WARNING! This will override any previous columns')
5555
.addButton((button) => {
5656
button.setIcon("create-new")
5757
.setTooltip("Load columns from file")

0 commit comments

Comments
 (0)