Delete/move note with attachments

Important introduction

When designing a system and its UI/IX, one can have 2 different approaches/views:

  1. Technology-centric (process-oriented)
  2. User-centric, functionality-centric (result-oriented)

It’s about who needs to adapt to which way. In the former, humans must learn and adapt to how computers operate. In the latter, the human needs and way of doing/thinking are on top, and the UI/UX/software does whatever is needed to translate this human way into the computer-understandable form.

Examples:
Programming languages: assembler vs. higher-level languages like Ruby.
Doors: a block of wood to barricade the medieval door vs. button in the app, that sends a signal and that automatically opens the door.
Cars: manual shift vs. automatic shift.

The first approach has its place, but generally speaking, the second one is better, especially in consumer products. It is the approach that will lead to the product being easier to use, more appealing, and more popular.

People want to do FunctionX as effortlessly as possible (with just enough control, not too much and not too little) with software parts handling all the necessary steps, not doing all of the technical steps manually. At the end of the day people want function and don’t care how it is done underneath.

  • That’s why one can drag-and-drop files and directories from one file manager window to another, even though that is a drastic omission of actual reality (especially with moving recursive directories located on different disks (or even one of them on the internet drive)).
  • That’s why you can copy-paste files from one folder to another even though copying files has nothing to do with the system clipboard.
  • The mere fact that the term “folder” is used instead of the “directory”. Just to make it more understandable to humans even if it makes it not correct.

And thankfully Obsidian developers understand that. Eg. that’s the reason why Obsidian moved from Edit/View modes to one WYSIWYG mode. This is a good development (as well as leaving more control for people who need it).

And here we finally come to my issues and suggestions.

From the same point of view, Obsidian is still lacking in some areas. Namely:

  1. deleting notes
  2. moving notes

The core issue is that people (Obsidian users) care less about the physical (electrical) files and the combination of such files which constitutes “the note (abstract)”. They care and operate on the level of the abstract “note” (which included both the physical note file as well as all the images and attachments).

Use case1 - Deleting notes

Sometimes I want to delete only one note file. But more often than not, when I want to delete a note, I want to delete an abstract “note” - I want to remove it together with all the images/attachments (that are not used elsewhere).

When I copy&paste an article to create a note, I do it with images (Local Images plugin is helpful). I view text+images+attachments as one thing. And when I want to delete the note, I also want to delete the whole abstract “note” (note + attachments).

This is exactly the same even if I wrote the note manually, combined information from multiple sources and added illustrations, but then decided that I don’t need it anymore.

Optimally there should be 3 options (2 new):

  1. It’s good to leave the current “Delete current note file only” as an option.
  2. Add “Delete current note with unlinked attachments”. This should be the default hotkey action.
  3. Add “Delete current note including all attachments, even if linked from elsewhere”.

Use case2 - Moving notes

SettingsFiles & Links

  • Default location for new attachments = In subfolder under current folder
  • Subfolder name = “attachments”

Similarly, when I want to move a note, I want to move the abstract “note” and not only the physical note file without its attachments.

Proposed solution

The solution to the case of “Deleting notes” is straightforward: delete attachments that are linked only from the note currently under deletion.

The “Moving notes” is a bit more complicated:

  1. Sometimes the files don’t need to be moved (depending on the Default location for new attachments setting and whether the attachment is linked elsewhere.
  2. if the person changes mentioned settings somehow.

Basically should check if the current attachment path is legal and if it isn’t, move the attachment to the new primary attachment path. The current attachment path can be legal even if the note is moved, because:

  1. maybe the attachment is linked elsewhere and it is located in another note’s folder/subfolder
  2. maybe the settings are such that all attachments are stored in one common folder (vault’s or a specific). If settings are not changed, the attachment doesn’t need to be moved anywhere.

If speaking in a form of pseudocode:

function isAttachmentPathLegal (notePath, attachmentPath) {
    (...)
    return result;
}

function returnPrimaryAttachmentPath (notePath) {
    (...)
    return result;
}

function moveAttachment (oldAttachmentPath, attachmentName, newAttachmentPath) {
    (...)
    return result;
}

function syncAttachmentPath (oldAttachmentPath, attachmentName, newNotePath) {
    let primaryAttachmentPath = returnPrimaryAttachmentPath(newNotePath);
    if (primaryPath == attachmentPath){
          moveAttachment(oldAttachmentPath, attachmentName, primaryAttachmentPath);
    }
}

----------------------------------------------------------------------------

if (isAttachmentPathLegal(newNotePath, currentAttachmentPath) == false) {
    syncAttachmentPath(currentAttachmentPath, currentAttachmentName, newNotePath)
} 
else // isAttachmentPathLegal(newNotePath, currentAttachmentPath) == true
{
    // leaveAttachmentBe();
}

I hope this was more helpful than not (I apologize if there are bugs :slight_smile: ).

The code takes into account the possibility of changing the Default location for new attachments and/or Subfolder name settings (I don’t know what happens to the attachment files in case the settings are changed; if there is already a sync process that moves files to their new valid locations) in which case the previously correct path becomes invalid.

Optimally there should be 2 options (1 new):

  1. It’s good to leave the current “Move current note file only” as an option.
  2. Add “Move current note including attachments”. This should be the default hotkey action.

Additional considerations

  • The lack of functionality of “deleting notes together with attachments” is disappointing, but is still understandable and wanting it feels like a valid and important, but feature request nevertheless.
  • But not having the “Move current note incl. attachments” (as default) feels like a proper bug, at least on the emotional and conceptual level. “What do you mean that I told Obsidian to move the note, but it did not move my whole (abstract concept of the) note?! This is a bug and must be fixed”. This is an absolute necessity for somebody like me, who uses folders/subfolders a lot and actively moves notes around. I was considering filling 2 different reports (deleting = feature request; moving = bug), but then decided against it, as combining the issues under one umbrella felt more fitting at the time of the writing. Tell me if I should create a new bug report instead. As you can see from my whole note, I understand that the situation is not trivial and implementing it is not straightforward. But I still hope you empathize with the needs of us the folder-centric users and make this feature request a priority.
  • Should something be done about the attachments after cloning/copying the note?.. I didn’t have time to think about this deeply.
2 Likes

+1 on this

Would love to see this feature as well.

Digital storage tends to clutter up easily.

Being able to rely on any system requires that it be cleaned up every once in a while to keep it current.