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

Feature 187 list did page #189

Merged
merged 24 commits into from
May 8, 2023

Conversation

ThePhisch
Copy link
Contributor

Added List DID Page:

  • string-searchable streamable table DIDListTable that displays the full DID (scopename)
  • String input to start the query, a choice of which combination of DID Types is to be queried for
  • If more than one DID Type is present, show DIDTypeTags
  • Clicking a DID will show an overview of information on the DID to the right (or bottom on mobile view) of the table
  • Only one DID can be selected for detail view. On page load, no DID is selected. After selecting a first DID, it is not possible to go back to the state where no DID is selected.
  • DIDMetaView component (consisting of non-streaming tables), using the new AvailabilityTag
  • Button (currently without effects) that is supposed to lead to the individual DID page. As per conversation with @bari12 , this individual page will also have subpages dedicated to subqueries like DID replica lists, etc.
  • New DTO interface defined in rucio-dto.tsx for the metadata.
  • Full responsive behaviour down to iPhone SE2
  • Dark Mode fully implemented

The most important unfinished end is how information is piped into the DIDMetaView component.

Anton Schwarz added 24 commits May 5, 2023 15:56
At the moment, it only handles datasets and containers properly. Files
have different metadata.

```
const DIDMetaViewModel = {
  name: string
  scope: string
  account: string
  did_type: DIDType
  created_at: Date
  updated_at: Date
  availability: DIDAvailability // Lost/Deleted/Available
  obsolete: bool
  hidden: bool
  suppressed: bool
  purge_replicas: bool
  is_open: bool
  monotonic: false
}
```
but as of now, with no filtering in scopename and no columns for DIDType
and Size.
The tables are wonky.
and included in ListDID
…epl inspection pages

This concludes the ListDID page for now. Of course, a number of tasks
remain:

* Dark Mode (especially for the custom tables)
* Full Responsiveness (the website has scroll in x-direction even on the
  large mobile setting)
* Handling Files/Datasets/Containers differently (eg files have file
  replica states/parent DIDs, while datasets have rules/dataset
  replicas/file replica states)
As per my conversation with Mario, I expect to receive a fixed number of
key-value pairs (with known keys) for the didmetadata. There are minor
differences between the metadatas for files and colections.

I only have one API endpoint (here: `/didmeta`) that returns data of the
same format irrespective of the datatype. But keys will have
None-values when they should not be set for the given datatype.

The further handling will need to be done on the webserver.
Testing this in storybook can be quite tedious, since it is just one
component for both collection and file view. Might need to reconsider?
(to test, you need to edit the `DIDMeta` object).
as per Martins request on Mattermost
There was an issue with the `search` button, which has 	`type=submit`,
which seems to lead to a page reload. Substituted green submit button
with a normal blue one, and the issue is gone. Will need to do some
restyling, I think.
Wanted to use a stream and then tanstack, decided against it. Reason is
that I only have one row (because we only query metadata for one DID),
so streaming rows is not necessary. In addition, this would mean working
*against* the framework, which I do not want to do.

We expect the backend to provide the `ListDID` component with a single,
complete object that can then be parsed by the `DIDMetaView` component.
A single boolean parameter can be used to communicate to the components
whether the data is ready to be rendered.
Filtering by DID (ie scopename) is possible now.

Also added inline DIDTypeTags (their visibility is not yet dependent on
whether multiple DID Types were queried).
DIDMetaView: for file view, make text of DID Filesize align left

ListDID: replace buttons with `Go To DID Page` button which will supply
more information.
This includes DIDListTable, DIDMetaView and ListDID components
Smallest supported width is iPhone SE 2, on this screen width, the grid
element of the DIDListTable would begin to overflow. In order to prevent
this from happening, I set a `min-w-0`.
@ThePhisch ThePhisch merged commit ada019e into rucio:master May 8, 2023
@ThePhisch ThePhisch mentioned this pull request Jun 14, 2023
8 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant