Desktop Attributes#546
Conversation
subdavis
left a comment
There was a problem hiding this comment.
Remove comments and console.log
Possibly remove loadAttributes and its API call.
| }); | ||
| } else { | ||
| // Display new data and await transcoding to complete | ||
| console.log(meta); |
| > | ||
| <sidebar | ||
| v-bind="{ newTrackSettings, typeSettings }" | ||
| v-bind="{ newTrackSettings, typeSettings, datasetId:id }" |
There was a problem hiding this comment.
It's possible that provides.State would have been a better place to put this, especially considering everything in state belongs to exactly one dataset. I'm not going to dwell on this, it's good like it is for now.
There was a problem hiding this comment.
My brain was broken at the moment. I knew internally that this is something that would be in a global store in vuex terms and the provides stuff just slipped my mind for some reason. I'll look into modifying it and providing it from there.
| @@ -112,19 +112,25 @@ async function saveDetections(id: string, args: SaveDetectionsArgs) { | |||
| /** | |||
| * Unimplemented sections of the API | |||
There was a problem hiding this comment.
This comment is incorrect now.
| return client.post(`dataset/${datasetId}/attribute`, { addNew, data }); | ||
| } | ||
|
|
||
| // eslint-disable-next-line @typescript-eslint/no-unused-vars |
There was a problem hiding this comment.
these comments should be removed.
I like it how it is.
Type inference seems handy, but if it turns out to be unreliable, we can remove it.
I like it in its own file. |
|
Did the comment updates and I created a |
|
Something weird is going on. Track and detection attributes seem to erase each other. weird.movie.mp4 |
Wasn't thinking right. On girder the |
subdavis
left a comment
There was a problem hiding this comment.
Looks great.
One last thing: can we change the default visibility mode to always show the editable fields? Its fine that you can have the nice condensed view, but if you create a new attribute, it doesn't show up until you hit the eye, which I don't think it a good default.
This optimization should be opt-in rather than opt-out.
I agree that after adding a new attribute it should be immediately available. I think we can change it so that if you add a new attribute it will swap to show all the fields after adding it. The main concern I have is that there is a difference between viewing attributes and actively editing them. Some of my test datasets have 10-15 track and then another 10-15 detection attributes. They would all be displayed in the list by default meaning that it's difficult to view the data because of the sparseness especially if flipping through tracks or frames. I'm open to any other alternatives if you think of any, maybe the eye should be something else? |
|
I'm just sort of looking at the risks: "too busy, hard to parse, I'm overwhelmed" vs "I think this is broken it's not working I'm frustrated" seems like we shoud choose the first risk. It's a hard problem and I can't come up with a solution that will work for everyone. |
|
There's always the "show more" / "show less" option at the end of the list. Those are pretty ubiquitous, might be more intuitive than the eye, but I still think "show more" is a better default. |

Adding in the capability to load/create and edit track attributes within the desktop version.
TestData: https://viame.kitware.com/#/viewer/6006e01cf751cc24d135ec2b - has attributes on track #1 I believe. Remember that on web version you won't see attributes unless they are added to the global list of attributes. This isn't required for the desktop version.
Explanation:
TrackData[]into aMultiTrackRecord. Let me know if you feel strongly about this being injected directly into the parser. I like how the parser returns a clean Array right now.TrackData[]and gather up the used attributes as well as their values and number of times those values occur. It does a secondary pass of the attributes to try to determine the attribute type. It cascades fromnumbertobooleantotextbased on attempting to covert all of the possible set values for that attribute. Finally it counts the number of occurrences of the value and if it is text and all values are used at least twice it will infer that it is a set of discrete values.meta.jsonthat will override any settings that are calculated with the csv/json file itself.attributesto include thedatasetId. This is necessary for desktop to access the proper metadata file to update it when attributes are edited. Note these are typically one time things that occur when adding/editing/deleting an attribute from the system or on mount for the TrackDetailsView. The web version ignores this data, but in the future will be used to directly modify the metadata attributes field utilizing the same endpoints instead of storing it globally in girder.Questions:
TrackData[]->MultiTrackRecordconversion?attributeProcessor.tsbe it's own thing or moved intoutils.ts?TODO (Future PR):