Beta Version 13.5.9 Available for Testing on December 16th, 2023

This should fix the latest problem found by @Malcolm when renaming the Body field to Text.

This beta version is no longer available. Look for a later beta release or the most recent Mac App Store release.

  • Renaming any field is working.

  • Renaming the body field is working.

  • Adding a field is working

  • Deleting a field is working.

  • Not able to delete Body.

  • Not able to delete Title

User feedback issues

Confusing, possibly wrong, feedback to User

I added a Boolean field.
It reported that no notes were updated.
I then set the boolean to true in one note.

I renamed the field.
It reported that three notes were updated.
However, as I moved through the notes to see why three were updated I noticed that the other notes now all displayed the boolean field as false. Checking the notes in BBEdit they contained the field label and the value false.

Issues
The issue here is the confusing report. As a user the explicit facts are less important to me than the big picture. For example, in a collection that I have been using I probably don’t know how many notes have info in any field. Telling me that some number of notes were updated is less important to me than knowing that the renaming process has completed and was successful. If there are 30 notes in the collection and only 20 contained the field X, then telling me that 20 notes were updated ( when I don’t know how many notes contained field X ) could make me think that the update was incomplete.

I don’t think you need to report the count to the user. It’s a helpful diagnostic during development but unnecessary for users.

Incomplete Updating in the User Interface

I added a Boolean field.
It reported that no notes were updated.
I reloaded the collection and the note displayed a false value for the boolean field. This was true for all notes. . All other notes included the false value.
Checking the notes in BBEdit they contained the field label and the value false.

Issues

  1. As above, too much detail is confusing. I want confirmation that the new field was added, nothing more.
  2. The collection should have been reloaded automatically.

Thanks so much for the additional testing and the additional feedback. It is so valuable! I really appreciate it.

Hopefully I’ve incorporated all of your feedback into the new version just released! Let me know if not! And thanks once more for all the testing and feedback!

That’s great!

All of my tests have succeeded.

Add, Remove, and Rename all work for me.

That’s a really nice addition to the toolkit.

The only improvement that I raised that I don’t see happening is the reload of the collection. Perhaps it is happening under the hood but what I see in the UI suggests that it isn’t. I think that the collection should be refreshed after any change like this. It’s a recommended step in the Knowledge base and it makes sense that these functions should do it rather than the user.

1 Like

The collection reload should be happening in the background. There’s nothing visible to indicate that it is happening / has happened. Is there something you’re seeing indicated that a reload did not happen?

In my test I added a boolean field. The boolean field is added. The data is present.

The new data state is not being rendered in display mode for the current note, in other words, the display is unchanged.

When I reload the collection the display of the current note includes the new boolean field.

This is an interesting case.

In general, Notenik fields are blank by default, and blank fields are not saved to disk, and are not shown on the Display tab.

Boolean fields, though, can’t really be blank: they must be true or false.

A Note without an explicit value for a Boolean field will show that field as false – in other words, a blank value, or an empty value, or a missing value, all default to false.

But then what happens when such a Note is saved to disk? Should it be saved without a value for the Boolean field (which will later be interpreted to mean false), or should it be saved with an explicit value of false?

What’s happening now is that it is being saved with an explicit value of false.

However, reloading a collection causes note files to be re-read – but not rewritten.

So the value of false on disk is not showing up until the Note is next saved.

Does this make sense?

So Boolean fields are a bit of an exception to the rule(s), in terms of field types.

Not sure what I could/should do to make it any better.

OK, then this is just an edge case.

My concern was that the current state of the collection was loaded and if it is, then we can tick this one off.

I could see that you were explicitly saving false, rather than having an empty field. I don’t think that you should do anything differently. The behaviour is accurate and reliable. It just happens to be a little bit different to the behaviour of other fields that are empty.

Finally, you explanation has just made me aware that I have been getting mixed up with SAVE and RELOAD. So my observations haven’t been accurate in that regard, sorry.

Yes, reloading files from disk is generally a quick operation, while rewriting all the notes in a collection can take longer, so it’s not something to be done as casually.