Skip to:
Content

BuddyPress.org

Opened 10 years ago

Last modified 8 years ago

#5856 new defect (bug)

Activity Stream filters reset when Whats New textbox is clicked

Reported by: bowromir's profile Bowromir Owned by:
Milestone: Awaiting Contributions Priority: low
Severity: normal Version: 2.0
Component: Activity Keywords: 2nd-opinion reporter-feedback
Cc: bowe@…

Description

Since the heartbeat integration there's a few new lines of JS in buddypress.js that introduces an UX problem. As soon as an user clicks in the "Whats New" textbox the filters get reset.

		// Return to the 'All Members' tab and 'Everything' filter,
		// to avoid inconsistencies with the heartbeat integration
		var $activity_all = jq( '#activity-all' );
		if ( $activity_all.length  ) {
			if ( ! $activity_all.hasClass( 'selected' ) ) {
				// reset to everyting
				jq( '#activity-filter-select select' ).val( '-1' );
				$activity_all.children( 'a' ).trigger( "click" );
			} else if ( '-1' != jq( '#activity-filter-select select' ).val() ) {
				jq( '#activity-filter-select select' ).val( '-1' );
				jq( '#activity-filter-select select' ).trigger( 'change' );
			}
		}

I've disabled the heartbeat integration to try and prevent this from happening, but sadly this code still fires. I've removed the code for now, but it would be nice if this could somehow be fixed or disabled when the heartbeat integration is disabled.

Attachments (1)

Screenshot 2014-09-05 13.14.58.png (64.5 KB) - added by Bowromir 10 years ago.

Download all attachments as: .zip

Change History (8)

#1 @imath
10 years ago

  • Milestone changed from Awaiting Review to 2.2

Hi Bowe, thanks for your feedback.

I agree. I think we're too close to 2.1, but i propose to look at it for 2.2.

#2 @imath
10 years ago

  • Keywords 2nd-opinion added

After thinking about it, i'm not sure i still agree.

I've added the part you pasted in your ticket while working on the Activity HeartBeat feature. But i think it's also usefull without HeartBeat activated. I'm explaining.

Without this part, for instance if you click on the mention tab or scope, ajax refreshes the activity stream to display the mentions you received. Now if you publish a new activity update it is prepended to the list of mentions you received although it's not a mention.

So by resetting the scope to "all" as soon as the "what's new" textarea receives the focus, you make sure activity updates posted from the activity directory are not prepended in the wrong scope.

I'd like to have team's opinion about this, because IMHO we should keep it the way it is.

#3 @Bowromir
10 years ago

Good point Mathieu.. that's definitely an issue but to be honest I think there's better ways to solve that.. For instance only applying the "reset" after an update is posted and not when the update box is clicked. Then when an user refresh the page it goes back to how he/she has set it. I just don't think it's a good idea to hijack/overwrite something that can be set by the user. But I'd love to hear more opinions on this!

This leads me to another point which is very much related. I think we could do a better job at showing which filters are currently active. I've have had quite a few instances where clients/users got confused because they were not aware of the stream being filtered (because of the dropdown). Whilst this is a different issue I think they are related.

What I'd like to propose is showing an message when a filter is activated and display that before the stream starts:

"You are viewing Group Memberships activity. Click here to see all activity"

This will make it a lot clearer for users when they have a filter or tab activated. See the attached screenshot how Facebook is doing it.

I'm going to try and implement this myself on CFCommunity and report back when I have something.

#4 @boonebgorges
10 years ago

For instance only applying the "reset" after an update is posted and not when the update box is clicked. Then when an user refresh the page it goes back to how he/she has set it. I just don't think it's a good idea to hijack/overwrite something that can be set by the user.

I agree that doing *something* is important for the reasons imath notes, but I also agree with Bowromir's statement here: we can do better than just removing the filters. The natural interface to me (setting aside how hard it would be to implement for the time being) seems like:

  1. I click an activity filter tab - say, My Groups
  2. I decide to post an update, so I click in the box, type, and submit
  3. If the posted update is germane to the current filter (in this case, if I decided to post it in one of my groups using the "post in group" dropdown), it goes directly onto the activity stream as per normal
  4. If the posted update does *not* belong in the current filter, I am taken to "All" where I can see the update stream into the sitewide stream

Not sure how to do this with our current implementation.

What I'd like to propose is showing an message when a filter is activated and display that before the stream starts:

Bowromir, I like this idea very much. Sorta like dynamic breadcrumbs. Can I ask you to put it in a separate enhancement ticket when you've got more to say about it?

#5 @DJPaul
10 years ago

  • Milestone changed from 2.2 to Future Release

#6 @slaFFik
8 years ago

  • Keywords reporter-feedback added

@Bowromir
Will you have time to get back to this ticket with, perhaps, some sort of UI that you see?
Have you implemented this for CFCommunity?

@boonebgorges
In your 1-4 points I don't like the 4th - when user is redirected. IMO we should stay under the same filter, display a notice (with fadeOut or something) about successful posting - and that is it. Not sure we should make a decision on user's behalf - whether to stay here or move to a default All activity.

#7 @boonebgorges
8 years ago

In your 1-4 points I don't like the 4th - when user is redirected. IMO we should stay under the same filter, display a notice (with fadeOut or something) about successful posting - and that is it. Not sure we should make a decision on user's behalf - whether to stay here or move to a default All activity.

Sure. This seems sensible.

Note: See TracTickets for help on using tickets.