Replace 'Volumes' page with 'Departments' page
Once a second department is added to the dataset served by the API, users should be able to navigate between different departments on the website. Therefore, the current 'Volumes' page should be replaced with a new 'Departments' page.
On this page, users should be able to browser through a list of departments and select them. When selecting a department, the list of its volumes should be unfolded, allowing the user to select a volume and navigate to its regesta list.
To completely migrate the feature, the following aspects need to be taken care of:
- Implement a new
DepartmentOverviewComponent
that takes over the role of theVolumeOverviewComponent
in thedepartments
module.- The
VolumeOverviewComponent
should be refactored to a reusable component that is used by the department list to dynamically load the volumes of a department when it is unfolded. - It would be possible to load the volumes together with the departments within one GraphQL query. In this case, the list of volumes is passed to the volume component. We should test which variant provides the better user experience - the initial load on the departments view will suffer, but we would avoid additional loading times.
- The
- Once the new page is implemented, the
/volumes
route should be removed. - The navigation bar entry
Volumes
should be replaced withDepartments
and its link should be updated. - The feature preview on the landing page should be renamed and rephrased. The icon can be re-used since it also fits departments.
- The introduction text on the landing page needs to be updated since the project does not only cover data from RI XIII Friedrich III anymore.
- All other potential links to
/volumes
should be updated to lead to thedepartments
view.
Finally, changes to the regesta search page are required since it relies on the query parameter for selecting volumes. Once more than one department is provided, this will be problematic because users will not only receive results from the volume they select, but also for the same volume from another department.
- The regesta search should receive a new URL parameter for the department number. It should be retrieved from the URL and be used for any queries send to the GraphQL-API.
- The departments view component should pass not only the volume number, but also the department number to the router when the user is navigated to the regesta list.