Project

General

Profile

Idea #8286

Updated by Tom Clegg about 8 years ago

h2. Background 

 Users find the fact that certain important shared projects are not visible to them unnerving, and often conclude the project no longer exists.  

 Using the search bar or "search all projects" is a temporary workaround, but is not intuitive. 

 It would be wonderful to be able to "star" shared projects that one wants to appear in the dropdown to avoid this problem. 

 This is a subset of the more general feature described by #5668 where _any_ object can be starred/favorited. 

 h2. Implementation 

 API side: 
 * Functional test: User UA creates project PA and shares it with user UB. User UB stars it. User UA deletes PA. Confirm: the deletion is successful; user UB's "star" link also gets deleted; user UA can see the log entry for the deletion of the "star" link. 
 * Functional test: User UA creates project PA and shares it with user UB. User UB stars it. User UA unshares PA. Confirm: UB cannot see PA. Now, user UA re-shares PA with UB. Confirm: user UB still has a "star" link for PA. 

 Workbench side: 
 * If a user is logged in, the "show project" page has a "star" icon ("fa-star-o" or "fa-star") to the left of the project title. 
 * If a "star" link exists (link_class="star", tail_uuid=current_user.uuid, head_uuid=project_uuid), the icon is "fa-star"; clicking the icon deletes the "star" link and changes the icon to "fa-star-o". 
 * If no link exists, the icon is "fa-star-o"; clicking the icon creates a new "star" link and changes the icon to "fa-star". 
 * Clicking the "star" icon creates/removes a "star" link 
 * When building the project dropdown menu (for the breadcrumb/nav dropdown, and for the dropdown in the search/select modal), instead of retrieving the set of all readable projects and arranging them in a tree structure: 
 ** retrieve all star links with @filters=[["link_class","=","star"],["tail_uuid","=",current_user.uuid],["head_uuid","is_a","group"]]@ and @select=["head_uuid"]@ 
 ** retrieve all groups with @filters=["uuid","in",returned_head_uuids]@, @order=["name"]@ 
 ** just display them flat, in the order they appear in the API response; remove the "build project tree" code. 

Back