uselagoon / lagoon-ui Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
In the main page, I can't select any project using Safari browser. If I click in the project title, It just don't do nothing.
That was tested in desktop view with Safari v16.0, in macOS Monterrey v12.6
After discussion at Doghouse, the suggestion was that, as the project list grows, it'll become more difficult to find things. Suggestions included:
Obviously the idea was that these were alternative settings, not a replacement for the existing setup.
Not the most pressing problem at the moment, but I thought we should relay it to you guys as feedback.
It could be good to support more languages, especially for non-English speaking teams.
We should figure out a few things first:
Lagoon UI
to support translations?The UI doesn't always update or refresh properly when clicking buttons like "add task" or "new deployment" and this can lead to users clicking buttons twice because the first time didn't see a positive reaction.
The result of clicking buttons twice can result in multiple tasks or deployments being triggered.
I'm not sure if this is related to subscriptions in the API/UI getting exhausted (uselagoon/lagoon#1344). Could we just have the button actions in the UI force reload pages instead?
Additonally, if there is an error returned, exposing the error in a nice way so users don't have to dig through network tabs or console logs.
Now that we have the collapsible log parts (which is awesome btw) we lost the possibility to view and/or downloads the full logs of a build. In some cases this might be interesting (to search for an error, for example).
Could we add a "un-collapse all" button somewhere to un-collapse every log to be able to search or a button to download the whole log? Preferably both of course :)
Now that uselagoon/lagoon#1775 has landed, let's make use of it. It would be great to:
(caution, not a designer)
Both the project page and environment overview page use the same markup for the details, this can probably be improved by moving markup/css into their own components
The sign-out link is not working
Browser: Chrome
OS: Pop!_OS
Video of interaction not working:
https://user-images.githubusercontent.com/383346/228636694-c8e4ca37-e3d7-4782-9315-6aecc488e7ad.mp4
Steps to reproduce:
Since the results limit is a shared component, it's also a but on deployments and tasks pages.
All the "tables" in the environment pages have the same look/feel and share a lot of markup/css. This can probably be improved by moving common markup/css to into their own components.
The Lagoon UI does not provide currently the editing of projects while the GraphQL API provides this. For the following fields of a project:
Additionally this editing screen should only be shown when the user has the rights to update a project
Currently when a user changes the number of results to display on a page (Backups, Deployments, and Tasks), the component calls window.location
with the new results which causes a full page refresh.
But we're using React which means we should be able to update the data inline.
A potential fix would be to change the ResultsLimited
component that instead of having an internal onChange
event, it accepts an onChange
function as part of its props. Then each page that that uses the component can handle it's own state.
There is an interesting situation right now, that if a deployment takes a long time to start (which can happen for numerous reasons, e.g. there is a queue of deployments ahead of the one you put through, and QoS is in place) the deployment times can jump around.
There are 3 times that are important for a deployment
created
- the time the deployment was queued to startstarted
- the time the deployment actually startedfinished
- the time the deployment completedThe UI shows the difference between created
and now
when the deployment is not yet complete, and started
and finished
when complete. This can cause the deployment times to jump upon completion. This is confusing.
Perhaps it might be best to show on the deployment 2 times upon completion:
Perhaps in some easy to understand way. For bulk deployments, time spent queueing is not that important, but for regular single deployments it is.
Allow updating your own password while signed in to lagoon UI, currently only the 'forgot password' flow is available
Have Lagoon push a deploy marker for an environment if NEW_RELIC_ENABLE is true
https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/record-monitor-deployments
When looking at #58 a direct update to git-url-parse latest version (13.1.0) wasn't possible because of webpack issues:
We should dig into this and work out how to resolve this tree properly
There are a few places in the api/ui where Lagoon stores and retrieves files. Currently these are environment backups, task files and insights. The files are retrieved directly from S3 using a signed/short-lived link, meaning no Lagoon authorization is performed once a link is generated. The current system generates a link on page load valid for 5 minutes, in order to account for time that a user might be doing other tasks in between the page load and them clicking the link.
By moving the link generation from the page load to the moment they click the link, that would allow us to shorten the time a link is valid to reduce the risk of unauthorized access.
It would be nice to have a view over all running deployments from all project the user as access to.
Especially for multisite deployments, this would be helpful to see when all sites are deployed.
We've added a new advanced task definition argument type ENVIRONMENT_SOURCE_NAME_EXCLUDE_SELF that is currently unsupported in the UI - and defaults to simply displaying an input text box.
The UI should display a dropdown of options, as it does with ENVIRONMENT_SOURCE_NAME.
There are multiple calls to trim
in isFormValid
- this can be cleaned up and replaced with regex.
It would also be beneficial to have feedback in the UI detailing why the format of the key is invalid on validation failure.
One of the advantages of next.js framework is it's "out of the box" support for server side rendering. The following are blocking SSR from happening and there may be other issues:
As projects can have attributes - such as metadata, variables, tasks and notifications, now is the time to add a left nav to the /project page to allow easy pagination
If you copy and paste whitespace before or after the project name, then the project filter will find no projects
This is annoying.
Steps to reproduce the behavior:
project
Seeing as whitespace is not a valid project identifier, I would expect it to be stripped before searching
It would be neat to be able to show the current environment variables for a given project and environment. If the env var is defined in both places, mention which takes precedence.
Being also able to add/edit/delete env vars in the UI would be ace.
A message advising that that a deployment is required to apply the env vars would also be nice.
Browser support has been "best effort" so far, largely depending on how much time individual contributors put into testing different versions. It would be great to have a formal policy in place and testing gates in place to ensure users have a good UI experience.
At the moment, in order to download a backup from the Lagoon UI, you need to click "Retrieve" and then wait for an amount of time, refresh the page, and then click "Download".
It would be a better UX if the state of the button changed from "Retrieving" to "Download" without having to refresh the page.
There are a few places in the api/ui where Lagoon stores and retrieves files. Currently these are environment backups, task files and insights. The files are retrieved directly from S3 using a signed/short-lived link, meaning no Lagoon authorization is performed once a link is generated.
User may not understand that links used to download these files do not require authentication nor authorization and should be treated securely. The only mitigation if a user exposes the link inadvertently is that it is valid for a short amount of time (currently 5 minutes).
We could inform users of this situation by warning users in the UI. Instead of the download button being a link, it could open a popup with a warning and have the link in there.
Further UX/UI discussion is welcome.
At present, all the logs are just emitted out, with no interpretation of ANSI codes. This can make finding things like errors more difficult, and in general just makes the logs harder to read.
You can remove ANSI codes with most tooling, e.g. composer
has composer --no-ansi
, this strips the ANSI codes prior to printing. No colour however.
Render the default ANSI colours into HTML so that they are viewable in the UI of Lagoon
here is an example of the ANSI codes being emitted, but not rendered:
$ NODE_ENV=production webpack --mode production --progress
�[91m<s> [webpack.Progress] 0%
�[0m�[91m
�[0m�[91m<s> [webpack.Progress] 1% setup before run
�[0m�[91m<s> [webpack.Progress] 1% setup before run NodeEnvironmentPlugin
�[0m�[91m<s> [webpack.Progress] 1% setup before run
�[0m�[91m<s> [webpack.Progress] 2% setup run
�[0m�[91m<s> [webpack.Progress] 2% setup run webpack-cli
�[0m�[91m<s> [webpack.Progress] 2% setup run WebpackManifestPlugin
�[0m�[91m<s> [webpack.Progress] 2% setup run
�[0m�[91m<s> [webpack.Progress] 4% setup normal module factory
An example with colour
Perhaps something like https://www.npmjs.com/package/ansi-to-html could be used?
Trivial issue of the day. Can we sentence case this title please
lagoon-ui/src/pages/settings/index.js
Line 28 in 7fcf46a
If there is a malformed project gitUrl
, or if our parser library fails for some reason, it will throw an Error: URL parsing failed.
. We don't have any error handling for this, so it causes the entire page to fail.
It would be better to catch the error and fallback to the raw URL being shown on the page. This happens on the project and environment pages.
Here are some options:
DaisyUI: https://daisyui.com/components/
MaterialUI: https://mui.com/material-ui/
Ant design - https://ant.design/components/overview/
Chakra UI - https://chakra-ui.com/docs/components
In tandem with XXX - the UI should be able to display any warnings or deprecations generated by the build. These should be highlighted in the build logs page - maybe with a different color, and potentially highlighted on the deployments page with an indicator (as long as the build-deploy tool can pass one alongside the build to show it has warnings)
linked to uselagoon/build-deploy-tool#191
Describe the bug
The "Add Task" button doesn't get disabled after the first click, making it possible to accidentally queue multiple jobs before the use gets feedback that the task has been added.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The "Add Task" button is disabled after the first click.
As a website developer, I use Lagoon dashboard regularly and I have to manage several projects with multiple environments each. I've noticed that the majority of time I'm waiting for Lagoon UI to load just to copy the route URL to pass it to my QA team or the Client. I also have to remove some environments manually, and have to wait for the environment screen to load just to hit the "Delete" button. The wait time to load the environment screen can be as long as 1 minute - this means that I have to wait for this time just to perform a simple action.
Please consider adding this or similar functionality to dashboard - you will save time for a lot of developers.
At present there is a check to ensure there are no newlines in the key, however if there is an accidental newline (e.g. on the end), it should just be trimmed.
https://github.com/uselagoon/lagoon-ui/blob/main/src/components/SshKeys/AddSshKey.js#L19
At the moment, the sort is project ID (analogous to created) ascending. Meaning the oldest projects are listed first. This is fairly confusing when you have access to a non-trivial amount of projects.
Can we have sorts for:
I also think the default sort should be Project Created DESC, so the most recently created project is shown first. Either that or Project Name ASC.
Replicated from uselagoon/lagoon#3092
Presently, destructive or potentially standard tasks in UI will display a warning/ask for confirmation before submitting the task.
Custom tasks have no similar functionality.
It would be good to allow, as part of the custom task definition, the ability to define warning text which, if present, requires the user to confirm before running the task.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.