In Bases I need to be able to reorder line items based on my own visual needs, whether in cards mode, or table mode.
Proposed solution
Allow drag and drop ordering and allow this to be preserved in a ranked property. Have the rank property automatically update when items are manually reordered.
I am afraid this is not going to be easy since bases are generated every time based on the info in your notes. There is no state preserved when you close and reopen a base.
You could add a numeric attribute “order” to all the notes in a base, assign a unique number to each note, and then sort based on it,
I disagree. Bases now have two core functionality:
Set the property name to get info from. Ex: cover image field.
Change the property value after manual operation with it, when property is visible on the table.
The manual ordering can be done with the same 1 and 2 functions: set the order field, update it when manual ordering was applied and items drug’n dropped.
+1 this can be as simple as allowing a property to set for order values that can be managed by front-end. Right now thats the workaround (maintakn numbers by hand in a field and sort by that field in tbe view) without automated update method.
I am using a .base file for project management, where each line item is used to store documentaion, dev logs, or other info for each request. I would like the capability to sort line items manually (when no filters applied), and have it remember that sorting in the future.
Proposed solution
Implement an option to allow for manual sort. This could be an additional hidden property or hidden within the metadata of the .base file (preferred method). This should be updated whenever a user drags an item in the .base file to ensure the current arrangement can be recalled.
Support, I need to adjust the sequence of functions. When the number of documents is very large, whether you put a serial number before the document name or a serial number in an attribute, it’s a nightmare.
I recognize the technical challenge, but I still think it’s entirely achievable. A possible solution could be similar to the workaround you suggested.
Whenever a new base or view is created, a numeric property specific to that view is created and assigned to every item, with each receiving a sequential number reflecting its position. This property reflects the order of items at any given moment. When items are rearranged through drag and drop, the numeric values adjust accordingly. When filters are applied, non-matching items lose the property, and the remaining items are renumbered to reflect their new positions. If items reappear due to changes in the filters, they are reassigned the property and placed at the bottom of the current order.
The dynamic updating of the numeric values of each item based on its position in the base should be fairly straightforward with the help of the DOM.
Since the order is stored in the items’ properties rather than the base itself, it persists even though bases do not preserve state. When the base is generated, it simply reads the property and restores the order automatically.
I hope this was clear and I’m happy to elaborate further if needed.
I agree that this would be super helpful. I too would like to use bases for project management. Ordering tasks and projects is a key feature needed for that.
I agree that there are some technical challenges, but I don’t think it’s insurmountable. Likely you would have some numeric field that you add as a property to the base (which adds it to all files in the base). This can be initialized to the existing sort order (like file name alphabetical). As users drag and drop items, the property is updated on drop. You would need some algorithm to figure out the new value on drop. Ideally, this would only need to update the value of the dropped file. E.g. use the average / middle value of the previous and next file.
This could even work, regardless of which view or base a file show up in. You would have one stable ordering of all uses. If you wanted a different order, that is not affected by that first sort property, you would create another such sort property. A base would define which sort property is used and manipulated, just as it does define which property to read for sorting today.