summaryrefslogtreecommitdiff
path: root/opendc-web/opendc-web-ui/src/pages
AgeCommit message (Collapse)Author
2022-11-13refactor(web/ui): Drop dependency on SassFabian Mastenbroek
This change updates the OpenDC web UI to not rely on Sass for stylesheets. CSS in combination with PostCSS has become powerful enough for our use-cases as indicated by the small differences between the CSS and SCSS versions of our files. By switching to CSS, we can make use of Turbopack to build the project, which is a re-implementation of Webppack in Rust and is able to build projects much faster.
2022-10-27fix(web/ui): Drop dependency on Roboto fontFabian Mastenbroek
This change removes the dependency on the Roboto font which was downloaded for every page of OpenDC. Since we do not actually use this font in any of our page, we can safely drop the dependency.
2022-10-27build(web/ui): Update to Next 13 and React 18Fabian Mastenbroek
This change updates the web interface to use Next 13 and React 18. This release has a couple breaking changes (related to links) which we have fixed accordingly.
2022-09-20refactor(web/ui): Use PatternFly Charts for plotsFabian Mastenbroek
This change updates the OpenDC web interface to use the PatternFly Charts package to render the results of a portfolio. Previously, we used Recharts, but this package does not support SSR, whereas the PatternFly Charts package matches our design framework.
2022-09-20feat(web/ui): Redesign projects pageFabian Mastenbroek
This change updates the design of the projects page to use a gallery overview.
2022-09-20refactor(web/ui): Move project selector into mastheadFabian Mastenbroek
This change moves the project selector into the masthead since it affects the whole application. This follows the PatternFly guidelines.
2022-09-20fix(web/ui): Only display selected metricsFabian Mastenbroek
This change fixes an issue with the web interface where all available metrics were shown to the user, instead of the metrics belonging to the portfolio.
2022-09-20build(web/ui): Update dependenciesFabian Mastenbroek
This change updates the dependencies of the OpenDC web interface were possible. We remain on React 17 until PatternFly adds support for the new React version.
2022-04-06feat(web/ui): Add support for unauthenticated user accessFabian Mastenbroek
This change updates the web UI and API to support unauthenticated user access. Such functionality is helpful when there is just a single user that wants to try OpenDC.
2022-04-04refactor(web/ui): Fix compatibility with new APIFabian Mastenbroek
This change updates the web interface in React to be compatible with the new API written in Kotlin. Several changes have been made in the new API to ensure consistency.
2022-02-17fix(web/ui): Fix creation of topologiesFabian Mastenbroek
This change fixes an issue with the creation of topologies in the frontend. Previously, the frontend relied on Redux to update the state. However, since we removed the reliance on Redux, we also need to create a new topology using the functions from React Query to actually send a request to the API server.
2021-08-17feat(ui): Add context selectorsFabian Mastenbroek
This change adds context selectors for the OpenDC frontend where the user can select different projects, portfolios or topologies from the context selection bar.
2021-07-22feat(ui): Toggle to Floor Plan on room selectFabian Mastenbroek
2021-07-22fix(ui): Load correct topology viewFabian Mastenbroek
This change fixes an issue where the only the default topology view would be shown to the user.
2021-07-20refactor(ui): Perform Saga mutations through React QueryFabian Mastenbroek
This change updates the OpenDC frontend to perform mutations of the topology done in Sagas through the React Query cache, so that non-Saga parts of the application also have their topology queries updated.
2021-07-20refactor(ui): Move page components in separate filesFabian Mastenbroek
2021-07-19refactor(ui): Restructure components per pageFabian Mastenbroek
This change updates the source structure of the OpenDC frontend to follow the page structure.
2021-07-19refactor(ui): Encode state in topology actionsFabian Mastenbroek
This change updates the OpenDC frontend to reduce its reliance of global state during the execution of actions. Actions that modify the topology now require parameters to be passed via the action constructor instead of relying on the global interactionLevel state.
2021-07-16refactor(ui): Isolate world coordinate spaceFabian Mastenbroek
This change updates the topology view in the OpenDC frontend to isolate the world coordinate space. This means that zooming and panning should not affect the coordinates in world space (but only in camera space). In turn, this allows us to remove the dependency on Redux for the camera controls.
2021-07-16feat(ui): Support panning of the datacenter topologyFabian Mastenbroek
This change enables support for panning the visualized datacenter topology by using the mouse or holding shortcuts. Previously, this could only be done through repeated key presses.
2021-07-15feat(ui): Migrate to PatternFly 4 design frameworkFabian Mastenbroek
This change is a rewrite of the existing OpenDC frontend in order to migrate to the PatternFly 4 design framework. PatternFly is used by Red Hat for various computing related services such as OpenShift, Red Hat Virtualization and Cockpit. Since their design requirements are very similar to those of OpenDC (modeling computing services), migrating to PatternFly 4 allows us to re-use design choices from these services. See https://www.patternfly.org/v4/ for more information about PatternFly.
2021-07-15feat(ui): Add initial support for PatternFly 4 frameworkFabian Mastenbroek
This change adds support in our Next.js application for the PatternFly 4 design framework. This framework is built by RedHat and provides several components that are useful for the space in which OpenDC operates.
2021-07-15refactor(ui): Extract OpenDC landing page from web interfaceFabian Mastenbroek
This change extracts the landing page from the web interface in order to separate the development of the two. This allows the landing page to be developed independently of the actual OpenDC web application.
2021-07-08ui: Simplify normalization of topologyFabian Mastenbroek
This change updates the OpenDC frontend to use the normalizr library for normalizing the user topology.
2021-07-08ui: Use React Query defaults to reduce duplicationFabian Mastenbroek
2021-07-07ui: Fetch scenarios and portfolios using React QueryFabian Mastenbroek
2021-07-07ui: Migrate project APIs to React QueryFabian Mastenbroek
This change updates the OpenDC frontend to use React Query for fetching and mutating project data. Previously, this state was tracked and synchronized via Redux. Migrating to React Query greatly simplifies the state synchronization logic necessary in the frontend.
2021-07-07ui: Split App container into separate componentsFabian Mastenbroek
This change splits the App container into separate pages, as a starting point for removing much of the unnecessary state from Redux.
2021-07-05ui: Fix linting errorsFabian Mastenbroek
2021-05-18ui: Re-add support for SentryFabian Mastenbroek
This change re-adds the support for Sentry. This was lost during the migration from CRA to Next.js.
2021-05-18ui: Migrate to FontAwesome 5 React libraryFabian Mastenbroek
This change updates the frontend to use the FontAwesome 5 React library that renders SVG icons as opposed to CSS icon fonts. This migration resolves a couple of issues we had with server-side rendering of the previous FontAwesome icons.
2021-05-18ui: Migrate to Auth0 as Identity ProviderFabian Mastenbroek
This change updates the frontend codebase to move away from the Google login and instead use Auth0 as generic Identity Provider. This allows users to login with other accounts as well. Since Auth0 has a free tier, users can experiment themselves with OpenDC locally without having to pay for the login functionality. The code has been written so that we should be able to migrate away from Auth0 once it is not a suitable Identity Provider for OpenDC anymore.
2021-05-17ui: Restructure OpenDC frontendFabian Mastenbroek
This change updates the structure of the OpenDC frontend in order to improve the maintainability of the frontend.
2021-05-17ui: Simplify projects pageFabian Mastenbroek
This change simplifies the logic and components of the projects page and reduces its dependency on Redux for simple operations.
2021-05-17ui: Migrate from CRA to Next.jsFabian Mastenbroek
This change updates the web frontend to use Next.js instead of Create React App (CRA). Next.js enables the possibility of rendering pages on the server side (which reduces the time to first frame) and overall provides a better development experience. Future commits will try to futher optimize the implementation for Next.js.
2021-05-12ui: Move component styling into CSS modulesFabian Mastenbroek
This change updates the frontend codebase by moving the component styling into CSS module files as opposed to the global styles which we used before. In addition, I have changed the syntax to the newer SCSS syntax, which is more similar to CSS. These changes reduces the styling conflicts that can occur between components and allows us to migrate to systems that do not support importing global styles in components. Moreover, we can benefit from treeshaking using CSS modules.
2021-05-10ui: Update React dependenciesFabian Mastenbroek
This change updates the React dependencies to version 17, in order to keep up to date with React.
2021-05-10ui: Do not clutter component tree with Redux connectsFabian Mastenbroek
This change refactors the frontend to use hooks for obtaining state within the Redux store as opposed to using Higher-Order Components (HOCs). This eliminates a lot of clutter in the components.
2021-04-25build: Migrate to flat project structureFabian Mastenbroek
This change updates the project structure to become flattened. Previously, the simulator, frontend and API each lived into their own directory. With this change, all modules of the project live in the top-level directory of the repository. This should improve discoverability of modules of the project.