[x] Merge "Projects" page and "Experiments" page into one page "Experiments" with four tabs: "Projects and Slices", "My Slices", "Manage Tokens", "Manage SSH Keys";
[x] Add a new tab on User Profile page called "My Slices" for users to view all their slices (The "My Roles & Projects" and "My SSH Keys" tabs on User Profile page are also only allow users to view roles/ projects/ keys). To manage (create/ delete/ update) projects/ slices/ keys, "Experiments" -> "Projects and Slices" -> Project Detail page is the right place to go;
[x] On project detail page, add a new tab "Slices" to show this project's slices in a table view along with the "Create Slice" button (basically same as current Experiments page -> My Slices tab UI).
[x] On Slice Builder page, change the "Step 1" project tag selection to display the corresponding project/ permissions directly;
[x] On Slice Viewer page, add the project name and link on top;
[x] Komal has added project_name in addition to project_id in the GET /slices response. The project name with a link to the project should be added to the slices table on "My Slices" tabs. no need for this column for Project Detail page -> Slices.
The proposed solution above will enable ability to manage slices by project, but also keep users access to view all slices.
Previous discussion
Komal and Paul suggests the Chameleon way to manage slices by project. And Komal suggested the following workflow:
- User logs in
- Portal calls Core API to fetch user's projects
- By default, selects 1st project for the Portal view, this could be displayed somewhere on the top
- Auto Generates token using the default project
- Issues a query for the slices in that project from Orchestrator API
- Displays the existing slices in that project / or create a new slice under using the selected project
- User could switch between projects and configure a specific project as their default as well
?**Will this be an issue**:
Users won't know if the project has slices (how many slices a project has) before they choose a project due to the following API limitations:
- Core API have no access to the slice information for a project;
- Orchestrator API can access a slice's project id from id token at CF level. Komal has added `project_id` to the response body of GET /slices (but the project information stored in id token is limited to only project id, no project name or other information);
Unless portal calls Orchestrator once for every project, but it's not time-efficient and it could make portal super slow, especially for users with numerous projects, especially for Facility Operators with access to all projects.
Proposed Portal UI update:
[x] Merge "Projects" page and "Experiments" page into one page "Experiments" with four tabs: "Projects and Slices", "My Slices", "Manage Tokens", "Manage SSH Keys";
[x] Add a new tab on User Profile page called "My Slices" for users to view all their slices (The "My Roles & Projects" and "My SSH Keys" tabs on User Profile page are also only allow users to view roles/ projects/ keys). To manage (create/ delete/ update) projects/ slices/ keys, "Experiments" -> "Projects and Slices" -> Project Detail page is the right place to go;
[x] On project detail page, add a new tab "Slices" to show this project's slices in a table view along with the "Create Slice" button (basically same as current Experiments page -> My Slices tab UI).
[x] On Slice Builder page, change the "Step 1" project tag selection to display the corresponding project/ permissions directly;
[x] On Slice Viewer page, add the project name and link on top;
[x] Komal has added
project_name
in addition toproject_id
in the GET /slices response. The project name with a link to the project should be added to the slices table on "My Slices" tabs. no need for this column for Project Detail page -> Slices.The proposed solution above will enable ability to manage slices by project, but also keep users access to view all slices.
Previous discussion