Commit Graph

722 Commits

Author SHA1 Message Date
Konstantin Schaper
af9aaec095 Add keyboard shortcut for global search (#2118)
Enable users to jump to the global search bar by pressing the "/" key from anywhere. Open modals block this shortcut. This PR also introduces a generic system for declaring global shortcuts by utilizing the third-party library mousetrap.
2022-09-15 14:16:22 +02:00
Konstantin Schaper
1d9cd12821 Revert changes to production environment introduced in #2098 2022-08-05 10:53:06 +02:00
Florian Scholdei
6c82142643 Fix paging for too large page numbers (#2097)
On some pages with pagination, the user is led to believe that no data is available if a page with page number which it too high is accessed. However, since we show the page number to the outside and the user can access it through the URL, we must also provide appropriate handling. The underlying data can change and so can the number of pages. Now, if a bookmark was saved from an older version, the link should still lead to a destination.
2022-08-02 10:30:07 +02:00
Konstantin Schaper
27dbcbf28d Integrate tailwind css and create new button library (#2098)
Introduce tailwind as new frontend styling library to replace bulma in the longer run. Also create the first new ui library `ui-buttons` which will be the new standard for buttons ins SCM-Manager. In this library we reconsidered which types of buttons should be used to create a clean and consistent ui.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-08-02 08:39:37 +02:00
Florian Scholdei
f3f19426c8 Unify password validation (#2077)
Passwords should be checked when created or changed in the frontend just as they are in the backend for REST and CLI.
Also extend the password validation to allow upto 1024 characters instead of 32.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-07-07 11:19:51 +02:00
Konstantin Schaper
84402b9722 allow card columns to omit the link (#2076)
The landing-page-plugin is using the CardColumnSmall component from ui-components to display event as tiles. Most events have a link, but some, like the RepositoryDeletedEvent do not. For a better UX it is therefore necessary, to have a CardColumnSmall that is not internally wrapped in a link.
2022-06-23 11:52:21 +02:00
Phil-Ah
6b276afb3b Icons in buttons are encapsulated in span to avoid text-decoration (#2065)
The is-text css-class adds an underline to text in buttons. To avoid icons from receiving this underline they will be encapsulated in a span.
2022-06-09 07:49:49 +02:00
Florian Scholdei
1f5ebc04d6 Arrow icon of secondary navigation is inconsistent (#2060)
The toggle icon in the secondary navigation points in the wrong direction.
In the changeset and code view, the current status is displayed with the icon. This should also be the case for this component.
2022-06-08 13:36:16 +02:00
Florian Scholdei
abaf5c8fba Missing profile link in footer (#2057)
Currently there is a link to Theme with the name Profile in the footer. Another link should be added which is called Theme and points to Theme. In addition, Profile should now point to Information.
2022-06-08 11:00:03 +02:00
Konstantin Schaper
5f9db5cf4d New diff view props for controlling hunk/line interaction (#2047)
Move hunk styling from review plugin to core and make reusable
2022-06-02 13:25:53 +02:00
Phil-Ah
b1e8bb7f98 Differentiate focused buttons in confirmation dialog (#2050)
Users need to understand which option they are choosing in an confirmation dialog. Buttons for primary and secondary actions should be visually discernible when one is focused/hovered.
The changes remove default-styling from buttons in confirmation dialogues. The style is set in the element using this dialog to better visually separate the primary and secondary action.

Resolves #2049
2022-06-01 18:10:42 +02:00
Konstantin Schaper
1b18191c57 Add plugin wizard initialization step (#2045)
Adds a new initialization step after setting up the initial administration account that allows administrators to initialize the instance with a selection of plugin sets.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: Matthias Thieroff <matthias.thieroff@cloudogu.com>
2022-05-31 15:15:30 +02:00
Konstantin Schaper
264e80f47c Improve visibility and contrast for focused line in syntax highlighting (#2031)
The styling for the focused line (e.g. permalink) in the source view with syntax highlighting was hard-coded and did not meet accessibility standards, especially in high-contrast mode. This pull request introduces two new css variables that are fine-tuned to meet contrast requirements for each theme. An additional "bar" with specifically high contrast has been added to the left of the focused line, because it was impossible to find one background color that would provide sufficient contrast with both the page background as well as all highlighting colors.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-05-10 11:17:10 +02:00
Florian Scholdei
4c94235414 Remove card-table action area (#2016)
In .card-tables there was an action area that had a darker background. Now this area only contains the delete action. Also, users mistakenly assumed that the hovered area could be clicked. It has therefore been removed and the icons themselves have received a hover effect.
2022-05-06 10:01:01 +02:00
Phil-Ah
6cf8afac01 Fix jumping and broken tool tips (#2026)
The way the tool tip implements passed class names is mistakable. The passed classes broke the tool tip and are removed. The same issue led to a broken tool tip for the code search and is fixed as well. Unnecessary code is removed from help.

Fixes #2025
2022-05-05 21:51:20 +02:00
Matthias Thieroff
a0737a2c90 Fix freezing browser if syntax highlighting large files (#2010)
We unified syntax highlighting and extracted it into a low level module. Syntax highlighting from now on takes place in a web worker, so that the user interface stays responsive. The web worker stops automatically if the number of nodes which should be highlighted exceeds the defined limit we believe the browser can handle.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2022-04-25 16:34:40 +02:00
Eduard Heimbuch
c8207d89da Fix routing for entity names with parenthesis (#1998)
If entities like users, groups or repository namespaces contains parenthesis the frontend router gets confused and doesn't work properly. To fix this issue we escape the chars in the url which may cause such problems because they are reserved by the http url schema.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
Co-authored-by: Florian Scholdei <florian.scholdei@cloudogu.com>
2022-04-13 13:06:02 +02:00
Matthias Thieroff
f34c794308 Avoid unnecessary re-rendering of markdown view (#1999)
Avoid unnecessary re-rendering of markdown view which e.g. caused an embedded secure code warrior video to reload on every page interaction.

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2022-04-12 19:21:16 +02:00
Florian Scholdei
5eacb9da6a Small tweaks in darkmode (#1976)
* The scss variable $popover-border-color is now also used throughout the internal styles
* Derived css variable is exported only once
* Scss definitions are now organized and structured with descriptive comments
* Fix incorrect styling due to a too dark and at the same time very thick border in the CreateButton component
* Darken $border-light a little, so that it is not brighter than the border in dark mode
2022-04-12 12:45:23 +02:00
Phil-Ah
c265383f37 Enable wrapping of actions in code view table (#1995)
At certain screen sizes the table in code view breaks if more than one action is available in a row. The fix enables the list of actions to wrap if the table is displayed on smaller sizes.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: Matthias Thieroff <matthias.thieroff@cloudogu.com>
2022-04-11 16:47:32 +02:00
Eduard Heimbuch
34b4fd9740 Show cli client link in footer 2022-04-08 11:08:41 +02:00
Florian Scholdei
5505b3ce11 Correct styling of syntax highlighter .section elements (#1984)
Fixes styling of syntax highlighter .section elements which causes unsightly rendering due to a global definition by bulma.
2022-03-30 09:40:48 +02:00
Konstantin Schaper
4d203ff36f codify extension points docs (#1947)
This pull request converts the current incomplete textual documentation of the available frontend extension points to in-code definitions that act both as documentation and as type helpers for improving overall code quality. All extension points available in the SCM-Manager core are now available, but no plugin was updated and only those parts of the core codebase had the new types added that did not require runtime changes. The only exception to this is the breadcrumbs, which was a simple change that is fully backwards-compatible.
2022-03-29 15:04:14 +02:00
Eduard Heimbuch
9f9bfd6635 Fix user creation via UI 2022-03-10 17:18:17 +01:00
Florian Scholdei
9c3e9cd76d Introduce darkmode theme (#1969)
This commit introduces a new more relaxed theme, the dark theme!
In addition, the theme can now be selected according to the system defaults.
And the other themes, as well as the general structure were unified/simplified.

Co-authored-by: Philipp Ahrendt <philipp.ahrendt@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
Co-authored-by: Matthias Thieroff <matthias.thieroff@cloudogu.com>
2022-03-08 09:47:36 +01:00
Eduard Heimbuch
151c7bf772 Fix frontend tests and story shots after code splitting was enabled 2022-03-02 09:27:55 +01:00
Eduard Heimbuch
033238f173 Improve tooltip text padding 2022-02-24 11:44:03 +01:00
Phil-Ah
78b507921d Enhance ui-elements to be more accessible on smaller screens (#1950)
Enable breaking of content to be fully available on small screens or highly zoomed displays. This should help improve accessibility.

Co-authored-by: Florian Scholdei <florian.scholdei@cloudogu.com>
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2022-02-18 14:48:21 +01:00
Eduard Heimbuch
b85dc8f0e6 Split frontend code by routes (#1955)
Split large frontend components into own bundles. This way we decrease loading times and load the bundles right as they are used. We replace SystemJS with our own implementation to load the lazy modules right as there are required.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2022-02-18 14:47:37 +01:00
Matthias Thieroff
1fe7b0a01e Improve accessibility (#1956)
Fixes several accessibility issues:

- Provide a style for empty table column headers
- Add aria references and aria-labels
- Remove aria references if the referenced element is not rendered
2022-02-17 14:00:16 +01:00
Eduard Heimbuch
1c2e00455d Improve tooltip accessibility (#1954)
There has been the requirement to improve accessibility for our tooltips by allowing tooltips to be closed via the escape key as well as allowing users to hover over the tooltip text. These combined requirements were not possible with the previous implementation that used a bulma-tooltip extension. That meant we had to implement the full tooltip html and css from scratch. A declared goal was to keep the new implementation as close to the previous look-and-feel as possible. The redundant dependency has been removed in the process.

This is the fixed re-commit of #1938 (Commit 67bd96ea81)

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2022-02-16 10:51:30 +01:00
René Pfeuffer
cf52209c1d Revert "improve tooltip accessibility (#1938)" (#1949)
This reverts commit 67bd96ea81, because the changes to the tooltips caused a rendering error for ahead/behind tags for branches.
2022-02-15 12:08:43 +01:00
Eduard Heimbuch
5cbf9e4b32 Link directly to file sources from file history view (#1945)
Link directly to the selected file with the file history sources link instead of the root dir.
2022-02-02 16:13:10 +01:00
Konstantin Schaper
ac06cb7827 fix storyshots 2022-02-02 14:26:27 +01:00
Konstantin Schaper
4e3c1ffe02 fix copy button not having pointer cursor 2022-02-02 13:49:14 +01:00
Sebastian Sdorra
c74e9984f6 Handle Plugin Center Authentication failures (#1940)
If the plugin center authentication fails,
the plugins are fetched without authentication
and a warning is displayed on the plugin page.

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2022-01-31 15:41:12 +01:00
Konstantin Schaper
67bd96ea81 improve tooltip accessibility (#1938)
There has been the requirement to improve accessibility for our tooltips by allowing tooltips to be closed via the escape key as well as allowing users to hover over the tooltip text. These combined requirements were not possible with the previous implementation that used a bulma-tooltip extension. That meant we had to implement the full tooltip html and css from scratch. A declared goal was to keep the new implementation as close to the previous look-and-feel as possible. The redundant dependency has been removed in the process.
2022-01-28 15:32:35 +01:00
Konstantin Schaper
de36c0d09d Fix markdown toggle & only show source copy button on hover (#1939)
A recent update added a button that lets users copy source code. In markdown files, the toggle button covers the copy button visually which does not look good and makes it hard/impossible to use. Additionally, larger markdown files with multiple code blocks have too many visible buttons that clutter the screen. This PR moves the markdown toggle above the actual display and only shows the copy button upon hovering the code that is to be copied.
2022-01-28 14:01:43 +01:00
René Pfeuffer
099c0ad6f6 Fixes input dialog for password field (#1934)
Fixes an javascript error in the create user dialog where the "event" from the password field is a simple string, no event.
2022-01-26 10:05:22 +01:00
Konstantin Schaper
d0cf976a54 Improve modal accessibility
Implement initial focus for modals. Change all modals including forms to put initial focus on the first input. When Enter is pressed on any input (CTRL + Enter for Textareas), the form is submitted if it is valid.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-01-21 14:25:19 +01:00
René Pfeuffer
f2a1effc77 Sorted autocomplete (#1918)
Users, groups, repositories and repository roles have been sorted in the rest layer by default if no other sort option was given. In the layers "below" (aka the manager classes or the dao), the collections have been unsorted. This led to the effect, that the autocomplete resource, which did not sort all values beforehand, returned unsorted results. As a sideeffect, direct matches for an input could occur at a random position or not at all (as reported in #1695), when there were enough other matches.

With this pull request the databases for users, groups, repositories and repository roles will use instances of TreeMap instead of LinkedHashMap internally, so that these values are sorted implicitly (by id respectively name for users, groups and repository roles and namespace/name for repositories).

Due to this change the default sort applied in the rest layer could be removed.
2022-01-18 09:46:10 +01:00
René Pfeuffer
070d5105d3 Cleanup Autocomplete component (#1917)
Extract common properties for both autocomplete variations.
2022-01-12 09:10:18 +01:00
René Pfeuffer
e9f22e89ec Autocomplete for namespaces (#1916)
Changes the "namespace" input in the repository creation form or the "rename repository" dialog to an
autocomplete input. Of course this is only available for the "custom" namespace strategy.
2022-01-11 16:17:57 +01:00
Florian Scholdei
586a060043 Fix high contrast mode issues (#1910)
Additionally adds css variables to be used by plugins

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2022-01-07 16:54:17 +01:00
René Pfeuffer
61b0cf9843 Fixup for markdown copy button (#1902)
Somehow the essential changes were missing in the
original commit (788787d).
2022-01-06 15:20:56 +01:00
Eduard Heimbuch
82ac06f896 Add property to make breadcrumb not clickable (#1907)
Make breadcrumb not clickable with new property. This is useful to show the breadcrumb for path that does not exist yet.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2022-01-05 14:30:14 +01:00
Matthias Thieroff
a756b86f77 Add ability to render storyshots async (#1906) 2022-01-04 12:32:37 +01:00
René Pfeuffer
37f89bed77 Fix colors in autocomplete component (#1905)
Further fixes for the high contrast mode, modly regarded to the autocomplete component.

This is a fixup for #1892

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-12-22 14:07:03 +01:00
Matthias Thieroff
bc86ed4474 Display search result fixes (#1901)
Fix syntax highlighting on non highlighted fields. Fix ellipsis on new lines in code syntax highlighting. Fix ellipsis on content start or end in non code fields.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-12-21 15:10:08 +01:00
Eduard Heimbuch
fb7aecd5e1 Revert popover changes 2021-12-17 16:27:58 +01:00