It’s currently very easy to accidentally hit the “X” next to a list item in a Base, and without an Undo feature, this can make it kind of anxiety-inducing to even have a Base open. Doubly so on mobile, where an undo feature would be hard to access.
Proposed solution
Like with normal pages, I would love to just toggle on a “Reading view”. And embedded Bases could inherit this property from the page they’re embedded into.
As the Obsidian team has said this feature isn’t currently planned, here’s how to do it with CSS.
Read-only base
Prevent edits while still being able to click on links:
/* All your base are belong to you
- Prevents editing items in base rows but allows link clicking
- Allows using views, filters, properties, and sorting */
.bases-tbody {
pointer-events: none;
& :is(a, .metadata-link, .mod-date + .clickable-icon, .internal-link .multi-select-pill-content) {
pointer-events: auto;
}
}
Customize your own
Total lockdown:
/* All your base are belong to read-only
- Locks down all base rows
- Allows using views, filters, properties, and sorting */
.bases-tbody {
pointer-events: none;
}
Lockdown with exceptions:
/* Somebody set up us the bomb
- Locks down base rows but with the exceptions listed in `is()`
- Allows using views, filters, properties, and sorting */
.bases-tbody {
pointer-events: none;
& :is() {
pointer-events: auto;
}
}
Specified read-only items:
/* Make your time
- Prevents editing base items that are listed in `is()` */
.bases-tbody :is() {
pointer-events: none;
}
Quick overview, I have a table displaying customer data (names, addresses, etc) which I don’t want to modify from within bases/table view, I only want to view. When displaying a list within the table, each list item has an X to remove it, which means it could be possible to accidentality delete list entries by mistake.
I want to be able to prevent this happening, some ideas:
Being able to view in source/preview, same as notes, can only modify in source mode.
Being able to “lock” columns to prevent changes
Apologies if I’ve missed that this is already a function