netcreateorg / netcreate-itest

Developing the 2.0 version of NetCreate
https://github.com/netcreateorg/netcreate-2018
Other
0 stars 0 forks source link

New Comment Alert #141

Closed benloh closed 5 months ago

benloh commented 6 months ago

New Comment Added Alert When a new comment is added on the network, it'll be useful to be able to see that a new comment has been added, even if the Comment View is currently off. Show a message alert? With an option to toggle Comment View?

Currently a new comment being added by a network computer will be displayed and updated in real time if the comment is already open. You'll see that the comment is marked (*) red to indicate it's new and unread. But it does NOT show an alert window or message. Is that necessary?


TO DO

jdanish commented 6 months ago

@benloh I'll add a follow-up issue that we think it will be helpful to distinguish between a new comment and a new reply (defined as a reply to my model in meme, or to my comment in either system).

The other idea we had is that a) popups would be distracting, but for both apps it'd be nice to display a number of new comments and number of new replies. In Net.Create, in the top right near the token, and in meme in the models list screen where you first log in.

benloh commented 6 months ago

@jdanish A couple of design questions here.

A. Real-time updates vs Historical updates or both?

For the new comment alert, are you thinking...

  1. Real-time updates where while you have Net.Create open, if someone else adds a comment or reply, you get a notice at the top of the screen? e.g.

Image

or

  1. Historical updates where the first time you log in after a period of inactivity you see some kind of count of the number of new comments and replies?

or both?

B. Actionable? Findable?

The other challenge with this is once you see the alert, what action, if any, should the user take?

Or perhaps it's not necessary to be able to take an action? This can get hairy pretty quickly.

jdanish commented 6 months ago

A. Real-time updates vs Historical updates or both?

I think both. It's quite possible that Kalani comments on my node either while I am editing, or in-between sessions and we'd want me to realize it, at least if I glance at the right spot.

B. Actionable? Findable?

It's messy, agreed. How about this (new idea): instead of a top right of whole interface indicator, just put an indicator on the node and / or edge table that there is a new comment within, and then the user can open the table and sort if needed to see what's new? In the case of MEME it'll still just be on the level of the model (from the main menu) so you still need to find it inside the model, but that's not THAT hard, I think?

Either way, once we have a way of opening the comment table, it'll help find the spot if needed.

jdanish commented 6 months ago

In case it is not obvious, the red dot / icon change in real-time is awesome. It's just the cases that you are busy doing something else or reading some other unrelated comment that want to make sure you can see there is a new one at a glance. Note that we ruled out popups as too distracting.

benloh commented 6 months ago

That screenshot I sent is actually from a working prototype. So let me get that out to you try. And then we can discuss / explore how to enhance that. I think we might want to tackle thinking through what a full comment list might be. That'd be the natural expansion of the alert.

jdanish commented 6 months ago

Ah, OK. So then the answer would be that ideally it will be actionable in some reasonable manner. Looking forward to it!

benloh commented 5 months ago

@jdanish thinking through new comment alerts...if you log out and back in, we want to see which comments have been added. The question is,

  1. Does this include all unread comments? Or...
  2. Should it only show comments that have been added since the last session even if there are other comments that are as yet unread? I would think it's simpler to just show all unread comments rather than trying to differentiate between new and unread? Unless...
  3. Do you expect everyone to have read every comment? Or is it OK to leave a bunch of comments unread? This has an impact on what we show and how we show it.
jdanish commented 5 months ago

This is why I think it is important to distinguish between comment types. I'd want to know a) there are some unread comments, but b) the really important ones are ones that respond directly to me (or my model in meme).

So, something like:

5 [total unread symbol] 3 [unread replies symbol]

I think we want to see all unread comments, but have an option to maybe mark them read if you don't actually read them?

I don't expect everyone to read them all and it is fine to leave some unread. I just like being able to clear them because I find it annoying personally to have that badge sitting there.

Note: I don't think anyone cares how many are newly unread since last login. So if I logged out with 3 unread, and log back in with 5 unread, that's fine. The 5 is what is important. I don't need to see "2 were added".

benloh commented 5 months ago

Thanks, that's helpful.

For the real time update, I just added a prototype that will show the currrent update along with "Recent Comments..." button. And a placeholder link for opening the comment.

Image

If you click on the button, you'll see all the comments added during the session.

Image

This works in the current comment-status branch.

jdanish commented 5 months ago

Yeah, that's cool. Also, you have too many comments.

benloh commented 5 months ago

This is why I think it is important to distinguish between comment types. I'd want to know a) there are some unread comments, but b) the really important ones are ones that respond directly to me (or my model in meme). So, something like: 5 [total unread symbol] 3 [unread replies symbol]

So thinking this through some more...

Comment Status View

  1. When you first open a graph, you'll see a pop up window that shows:
    > 5 unread comments
    > 3 unread replies
  2. You can click a disclosure triangle to view the list of comments:
    > 5 unread comments
    v 3 unread replies
       #32 BlueGroup "This is stupid"
       #33 RedGroup "I know you are but what am I?"
       #42 BlueGroup "I have the answer!"
  3. You can click any of those comments to view the source and the comment.
    • If the source (e.g. node/edge) is not open, open it
    • If the comment is not open, open it
    • Scroll down to the comment.
    • If a node or edge or comment is being edited, you cannot click on the comment.
  4. You probably want to review the comment status, so perhaps we make a permanent "Comments" button in the navbar so that you can re-open the comment status view at any time.

b) the really important ones are ones that respond directly to me (or my model in meme).

Are you saying that our comment status view would differentiate between general replies to other people vs replies directly to one of your comments? If so, how do we distinguish that? e.g. is it considered a reply only if you are the source of the root? Or what if you're in part of a thread? e.g. Sri makes a root comment, I reply, then you reply -- both you and I are replying to Sri's root, but you might be replying to Sri or to me -- we currently do not make that distinction since it's only one level deep. So do I get a notice that you replied to my comment? And does Sri get a notice too? I worry that this is getting too complex.

jdanish commented 5 months ago

Yes, though ...

You said:

When you first open a graph, you'll see a pop up window that shows:

Also:

You probably want to review the comment status, so perhaps we make a permanent "Comments" button in the navbar so that you can re-open the comment status view at any time.

That's why I am thinking that the status popup is just for new stuff when you are already logged in, that happens in real-time, but that the "comments" button is always visible. If it contains information, then it does double-duty because when I login I see the high level summary. Something like the attached, but with icons instead of N and R.

Screenshot 2024-04-15 at 1 51 20 PM

This would mean we need a social practice of "look at the top right" when we first log in. If we do, we notice there is some new stuff and can click through. If we don't, maybe we are busy, so that's OK since that number won't change / go away until we view it.

jdanish commented 5 months ago

Sorry, I like your sample of what the list looks like. Note that it starts to overlap with the overall functionality that we had in mind for the comment list, with the only difference being that the entity isn't displayed. Meaning, we could also imagine a version that has:

v 3 unread replies
       Node 1, #32 BlueGroup "This is stupid"
       Node 1, #33 RedGroup "I know you are but what am I?"
       Edge 1, #42 BlueGroup "I have the answer!"

It'll start getting crowded, though. Thoughts? I can ask the team for feedback or we can just try it depending on how hard it is?

benloh commented 5 months ago

it does double-duty because when I login I see the high level summary.

I was thinking we would auto-open the summary when you first open the graph if there are any unreads. That should be fairly easy to do.

It'll start getting crowded, though. Thoughts? I can ask the team for feedback or we can just try it depending on how hard it is?

I believe all the data is there so it should be fairly easy to do. It certainly makes sense to identify the source.

I was thinking of putting the "3N 2R" button to the LEFT of the user name mostly because it'll keep the user name in a consistent position. Otherwise alerts would constantly shift everything back and forth. But again, easy enough to try either way.

The other consideration is to figure out where/how to display a comment on the overall project. But we probably want to make the project name more prominent somewhere anyway and we can add the comment to that, more similar to MEME.

overlap with the overall functionality that we had in mind for the comment list

Yes, which is why I was putting all this together into a single design issue. I think the real question here is what you want that display to be. Are we simply listing every single comment and reply along with the source node/edge? That can be a really long list. I was thinking we could add a button or disclosure triangle to the comment status view to show ALL the comments. That way all the functionality is in one place.

benloh commented 5 months ago

I think this got lost in my reply because everything was marked as a reply.

b) the really important ones are ones that respond directly to me (or my model in meme).

Are you saying that our comment status view would differentiate between general replies to other people vs replies directly to one of your comments? If so, how do we distinguish that? e.g. is it considered a reply only if you are the source of the root? Or what if you're in part of a thread? e.g. Sri makes a root comment, I reply, then you reply -- both you and I are replying to Sri's root, but you might be replying to Sri or to me -- we currently do not make that distinction since it's only one level deep. So do I get a notice that you replied to my comment? And does Sri get a notice too? I worry that this is getting too complex.

jdanish commented 5 months ago

Putting the comment status / button to the left of the login makes sense. Let's try that.

Yes, a project name / comment similar to meme works for me for location of that.

Re: The comment "list" ... I am starting to think that in Net.Create, we may not need it because you can see the comments within the node / edge tables. Thinking about MEME, I think we'd want all comments also nested by specific entities, outcomes, and processes (similar to nodes / edges, but maybe they are a column rather than a full tab)...

I had originally been thinking we'd want to treat it as "data" and show "all" the information (e.g., assume you might sort comments by date) but now I am thinking that just knowing there is a comment on a specific thing, and then being able to see that thread makes the most sense.

We might also want some basic "find" that finds a specific comment, but ... maybe let's hold off on that and assume that we'll be looking at the thread on a specific thing (node, edge, entity, whatever) and not need to find "that comment about fish" ... and if we did, we'd look at "Fish".

For the last one ... I assume that if we have:

A: Sri (previously read)
... R1: Joshua (previously read)
... R2: Ben (new)
B: Kalani (previously read)

I would treat R2 as a reply to everyone above, so Sri and Joshua are notified of Ben's reply. My instinct is to say that Kalani is not notified because she was not in that same chain. Also, no one is told that Kalani replied to them when she posts her comment. But they do see it as "new" (lower priority), since we assume if she wanted them notified she'd have hit reply, not comment. So, in short, if you press "reply" it notifies everyone in that thread, but if you press "comment" no one is notified in net.create. However, in meme you'd be notified if you are the model owner. In net.create there is no single "owner" for commenting purposes. Or we'd have a "treat as owner" flag in both, maybe? So that a teacher in net.create could indicate in the template they are the "owner" from the standpoint of being notified?

However, if it is easier to say "Notify Kalani because she had a comment on the same node / edge" I'm OK with that, but this would still be treated as a "reply" whereas for Selena it'd just be "new" because she hasn't previously done any commenting on this node. So if Selena was going to ignore anything, she would ignore Kalani but I might want to know. Though I prefer the prior more nuanced solution.

benloh commented 5 months ago

So this suggests that we want to show three numbers:

Something like this?

screenshot_1490

jdanish commented 5 months ago

I was thinking about combining new and unread into one category (unread, since new is unread too) to save space.

Joshua

benloh commented 5 months ago

Ah right. We still have the "new" count in the real-time updates.

jdanish commented 5 months ago

Yup. And in most cases I think the real question is are they new to me (unread) or not.

benloh commented 5 months ago

Marked all items done. Remaining to dos have been converted into issues.