Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Recently Viewed" items section for the left pane #6053

Closed
ozyx opened this issue Dec 13, 2022 · 8 comments · Fixed by #6103
Closed

"Recently Viewed" items section for the left pane #6053

ozyx opened this issue Dec 13, 2022 · 8 comments · Fixed by #6103
Labels
type:feature Feature. Required intentional design
Milestone

Comments

@ozyx
Copy link
Member

ozyx commented Dec 13, 2022

Mockup

The following is copied from the initial design by @charlesh88 in our internal docs:

Overview

  • Per-user tracking of all items navigated to while the user interacts with the application.
  • Only deliberate navigation actions should be tracked. Actions that should NOT add an object to the Recent items list include:
    • Drag-dropping or clicking an object in the tree while editing.
    • Previewing or "viewing large" from any context.
    • Selecting an item in the locator.
  • The list is sorted by navigated-to-datetime-descending: the most recent item is added to the top of the list.
  • If an item not at the top of the list is navigated to, it should be shuffled to the top if the user navigates to it.
  • Items are never duplicated in the list.
  • Links in the recent list should not store or restore Time Conductor or other application settings, such as minimized tree or Inspector.
  • We'll need to determine how many items should be tracked in the recents list, suggest that it default to no more than 20.
  • Recent items might want to manifest in a new "Recently viewed" section of Search results, but I think that is a post-v1 feature we can add later.
  • Items in the list are displayed as level 1 tree items regardless of their location in another object's composition. The design shows this example.
  • If an item in the list contains children, display that item's expand arrow as would normally be done in the tree. The design shows this example.

Design

  • The design solution utilizes a draggable splitter to allow the user to control the space allocated to the recents list.
  • The user can minimize the list by clicking its " - " button.
  • The app should remember the minimized/expanded state of the recents through refreshes via machine local storage or other methodology.
  • The minimized/expanded state of the recents list should not be persisted in the URL
@ozyx ozyx added this to the Target:2.1.5 milestone Dec 13, 2022
@ozyx ozyx self-assigned this Dec 13, 2022
@ozyx
Copy link
Member Author

ozyx commented Dec 13, 2022

Question for @charlesh88:

If an item in the list contains children, display that item's expand arrow as would normally be done in the tree.

Is this meant to be functional, e.g. if I expand the arrow will it show the children or is it meant simply to signal that this object has children?

@ozyx
Copy link
Member Author

ozyx commented Jan 23, 2023

Testing Instructions

Navigation

Navigate

  1. Click on some objects to populate the Recent objects list
  2. Click on the object name and verify it navigates to the correct object (do this for objects and aliases)
  3. Verify also that the URL hash changes correctly
  4. Click on a location Breadcrumb object and verify that it navigates to the correct object
  5. Verify also that the URL hash changes correctly (known issue here: Navigating to an object from a Breadcrumb doesn't update the URL hash #6151 )

Recent Objects CRUD ops

Create

Displays objects and aliases uniquely

  1. Start from a fresh OpenMCT instance, clear cache and localstorage
  2. Create some objects. Create nested folders, objects within those folders, and create object aliases/links as well.
  3. Click on some objects. Verify that the navigated object is pushed to the top of the Recent Objects list.
  4. Click on an object and then click on its alias (link)
  5. Verify that two entries in Recent Objects are created
  6. Verify that the entry for the alias has an "alias" arrow on the icon
  7. Verify that the Location breadcrumbs shown differ. The breadcrumb should show the relative path to the object or alias.

Persists on refresh

  1. Refresh the page
  2. Verify that Recent Objects persists

Enforces a max length of 20 objects

  1. Click on objects until 20 different items are in the "Recent Objects" pane
  2. Click on another object (not already existing in the Recent Objects list).
  3. Verify that the last item in the Recent Objects list is pushed out

Update

Move

  1. Navigate to an object in the tree.
  2. Right click on the object in the tree, select "Move"
  3. Move the object somewhere else
  4. Verify that its entry in Recent Objects list has been removed (since it was moved)

Duplicate

  1. Navigate to an object in the tree.
  2. Right click on the object in the tree, select "Duplicate"
  3. Duplicate the object somewhere else
  4. Navigate to the duplicated object
  5. Verify that an entry is added to the Recent Objects list and its name and path are correct and it is not an alias.

Rename

  1. Create an object within a folder
  2. Navigate to the folder, then navigate to the object
  3. Right click on the folder in the tree, select "Edit Properties"
  4. Rename the folder
  5. Verify that the entries in Recent Objects that reference the folder are updated properly (check recent object name and also the paths)

Delete

  1. Create an object within a folder
  2. Navigate to the folder, then navigate to the object
  3. Right click on the folder in the tree, select "Delete"
  4. Verify that the deleted object and all of its children are removed from Recent Objects

@khalidadil
Copy link
Contributor

khalidadil commented Jan 24, 2023

I'm seeing some issues with the locator feature in the recent items menu (videos sent to @ozyx).

I'm also seeing an issue when moving an object in the tree somewhere else (Move test) without selecting the object. It looks like it removes it from the recent objects list instead of updating the path to the new location.

Testathon on 01/24/2023

@jvigliotta
Copy link
Contributor

Loooookin' GOOD!

One thing with regard to "Move" action. Similar to what @khalidadil saw.

  • Move: "A" folder in the image below, had both "B" and "C" in it. While viewing "C" I right clicked "B" in the tree and selected "C" as its new parent. "B" (which was in the recent items list before) just disappeared from the recent items list. NOW you notice "C" is collapsed. I replicated this, with "C" open (but empty, shouldn't matter either way) and it DID stay in the recent items list.
    Screen Shot 2023-01-24 at 4 05 46 PM

@unlikelyzero unlikelyzero added type:feature Feature. Required intentional design and removed type:enhancement labels Jan 27, 2023
@jvigliotta
Copy link
Contributor

Verified Fixed - Testathon 1/31/23

@unlikelyzero
Copy link
Collaborator

Need one more review

@ozyx
Copy link
Member Author

ozyx commented Feb 1, 2023

Updated "Move" action instructions to acknowledge moving an item will remove it from Recent Objects due to composition remove

@khalidadil
Copy link
Contributor

Re-verified Fixed in Testathon on 02/06/23

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:feature Feature. Required intentional design
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants