| Age | Commit message (Collapse) | Author |
|
This change removes the use of next/image from the project. Although it
is recommended by the Next.js project to use this component, it is not
compatible currently with static export.
|
|
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.
|
|
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.
|
|
This change adds context selectors for the OpenDC frontend where the
user can select different projects, portfolios or topologies from the
context selection bar.
|
|
|
|
This change updates the OpenDC frontend to perform the construction of
the topology directly in the reducers instead of performing the
mutations in Redux Sagas as side effects. This allows us to nicely map
actions to mutations in the reducers.
|
|
|
|
This change fixes an issue where the only the default topology view
would be shown to the user.
|
|
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.
|
|
|
|
This change updates the source structure of the OpenDC frontend to
follow the page structure.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
This change fixes an issue where the topology generated by the frontend
was not accepted by the API server.
|
|
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.
|
|
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.
|
|
This change updates the OpenDC frontend to combine the fetching of
project relations. This means that for a single project, we make only
one additional request to retrieve all its topologies.
|
|
This change updates the OpenDC frontend to use the normalizr library for
normalizing the user topology.
|
|
|
|
|
|
This change updates the OpenDC frontend to fetch schedulers and traces
using React Query, removing its dependency on Redux.
|
|
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.
|
|
This change removes the current active identifiers from the Redux state.
Instead, we use the router query to track the active project, portfolio
and topology.
|
|
This change splits the App container into separate pages, as a starting
point for removing much of the unnecessary state from Redux.
|
|
This pull request updates the OpenDC frontend to use Next.js 11.
* Upgrade to Next.js 11
* Enable React Strict mode
* Enable ESLint
* Fix ESLint issues
|
|
|
|
This change adds stricter validation of data that enters and leaves the
database. As a result, we clearly separate the database model from the
data model that the REST API exports.
|
|
This change re-adds the support for Sentry. This was lost during the
migration from CRA to Next.js.
|
|
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.
|
|
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.
|
|
This change updates the API to use Flask Restful instead of our own
in-house REST library. This change reduces the maintenance effort and
allows us to drastically simplify the API implementation needed for the
OpenDC v2 API.
|
|
This change updates the structure of the OpenDC frontend in order to
improve the maintainability of the frontend.
|
|
This change updates the frontend so that the modal state is not stored
inside Redux but instead is stored using the useState hook. This
simplifies the design of the modal components.
|
|
This change simplifies the logic and components of the projects page and
reduces its dependency on Redux for simple operations.
|
|
|
|
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.
|
|
This change updates the Redux store initialization to ensure that the
Redux logger is last in the middleware change. If we do not do this,
Redux Logger might log thunds and promises, but not actual actions.
See https://github.com/LogRocket/redux-logger/issues/20
|
|
This change removes the socket.io websocket connection/client in favour
of the OpenDC REST API. The socket.io websocket implementation was
intended to be used for interactive and collaborative datacenter design
and exploration.
However, we do not support this functionality at the moment
(collaborative design and exploration) and having the entire API run
over this websocket connection is fragile and not standard practice.
To improve maintainability, we therefore remove the websocket
implementation in favour of the OpenDC REST API implementation using
the fetch API. If we want to implement collaboration in the future, we
will develop appropriate extensions in conjuction with the existing REST
API. For this, we should look for standard and existing implementation
of this functionality.
|
|
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.
|
|
This change updates the React dependencies to version 17, in order to
keep up to date with React.
|
|
|
|
|
|
This change removes the prevent default from the mouse scroll since
Chrome does not allow it anymore.
|
|
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.
|
|
|
|
This change updates the workaround used to access runtime variables in
the React frontend, in order to improve the ergonimics when using the
development mode of CRA (Create React App).
|
|
|
|
|