Commit Graph

722 Commits

Author SHA1 Message Date
Konstantin Schaper
65f111b8b4 Add keyboard shortcuts documentation (#2129)
There is currently no documentation which shortcuts are available to the end user, neither within the application nor the documentation published on scm-manager.org. This PR adds the missing documentation in both places and introduces a new api for developers to add documentation when using `useShortcut`. It also improves the api for conditional shortcuts significantly.
2022-10-11 16:29:33 +02:00
Florian Scholdei
33f7dd994a Fix navbar at the top of the page (#2128) 2022-10-11 16:01:22 +02:00
Eduard Heimbuch
ca047b7953 Catch SvnCatCommand exception for trying to read content from nodes which are not files. 2022-09-30 13:03:07 +02:00
Konstantin Schaper
fe82c967b8 Fix creating a repository permission without a name breaking the repository (#2126)
If a POST request is submitted to the rest api for repostory permissions, the regex validator ignores the name field if it is null, which leads to an internal server error and breaks any further attempts to interact with that repository. An additional not-null constraint resolves this problem.
2022-09-30 10:27:41 +02:00
Florian Scholdei
89386928b6 Add feedback links to footer (#2125)
Add feedback links in "Support" section of the footer. The links refer to the creation of a new topic in the SCMM section of the forum.
2022-09-27 16:18:03 +02:00
Florian Scholdei
abad4d504a Keyboard shortcuts for global and repository-specific navigation (#2122)
The global navigation can be accessed with the following key combination:

Option-R = Repositories
Option-U = User
Option-G = Groups
Option-A = Administration

The navigation within a repository can be accessed with a combination with g:

gi = Information
gb = Branches
gt = Tags
gc = Code
gs = Settings
2022-09-26 10:36:09 +02:00
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
16fb69738f Adjust changelog for release 2.39.0 2022-09-14 15:31:10 +02:00
René Pfeuffer
35578985c9 Reduce the output from the realm trace log (#2121)
This reduces the amount of lines logged with log level
'trace' from the DefaultRealm. This is done by concatenating
the single permissions and roles in a single line.

A log with the new layout looks something like this (the [...]
would list all further permissions in the real log output):

TRACE sonia.scm.security.DefaultRealm - authorization summary:
username   : scmadmin
roles      : user
scope      :
permissions: repository:*:ChTG0dBeUH , group:autocomplete , repository:*:[...]

In contrast, with the old layout it looks like this:

TRACE sonia.scm.security.DefaultRealm - authorization summary:
username   : scmadmin
roles      :
 - user
scope      :
permissions:
 - repository:*:ChTG0dBeUH
 - group:autocomplete
 - repository:*:5DTFWwBTiY
 - repository:*:ASTGBIVz11D
 - user:changeApiKeys:scmadmin
 - user:changePassword:scmadmin
 - user:changePublicKeys:scmadmin
 - user:readAuthorizedKeys,writeAuthorizedKeys:scmadmin
 - *
 - user:read:scmadmin
 - user:autocomplete
 - repository:*:4rT7VPex5J
2022-09-14 14:35:35 +02:00
René Pfeuffer
e17934ae09 Fix lazy loading in the source view (#2120)
The lazy loading feature implemented for git was broken,
because the repeated usage in the BrowserResultCollapser
has overwritten the request in the command. Therefore
the command could no longer update the cache in the
BrowseCommandBuilder.

To fix this, we now use a browse command factory (represented
by a simple supplier) that will create a dedicated command
implementation for each request issued in the collapser.
2022-09-14 14:28:40 +02:00
Matthias Thieroff
54b7b96ac8 Fix encoding in global search (#2116)
Using plus symbol in global search led to a space in the query parameter of the URL. We now encode the query string properly in global search and additionally fixed the expert search documentation.
2022-09-14 08:05:31 +02:00
Eduard Heimbuch
30e26b8d4e Keep search context for search results pagination (#2115) 2022-09-09 09:41:37 +02:00
Konstantin Schaper
61676c6dd4 Handle missing encoding of square brackets in filenames (#2117)
Due to unexpected and largely unchangeable behavior by both react-router and the browser, square brackets are not correctly encoded in the url when clicking a file link in the source view where the filename contains either of these characters. The source view then tries to use the useSources hook to get the file content but fails, because the path param for the file path it gets from the url has unencoded square brackets in them which are illegal in urls except for declaring IPv6 addresses. We have created a catch for exactly this scenario at the latest possible point before the actual http request is fired, which is in the useSources hook. It seems like the square brackets are the only affected special characters so we force encoding on them specifically. Only the path portion of the URL is checked so the host portion of the url may still contain unencoded square brackets which are left untouched.
2022-09-09 08:19:04 +02:00
Eduard Heimbuch
9ea76073b2 Show warning for search requests without valid search context (#2114) 2022-09-06 18:24:34 +02:00
Eduard Heimbuch
6f2be13197 Introduce NoOpIndexReader to handle missing indexes without errors (#2113)
We stumbled upon errors accessing index from plugins which were not yet initialized. To prevent this errors we use our own No-Op IndexReader for missing indices.
2022-09-06 10:06:17 +02:00
René Pfeuffer
e0a56a1369 Implement commit search features for git (#2111)
Implements the required features for the commit search plugin for git.
2022-09-01 15:31:33 +02:00
Eduard Heimbuch
f672e175b5 Improve docker healthcheck (#2110)
The new docker health check respects the jetty configuration and uses the configured port and context path.
It supports ssl listeners and follows redirects.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2022-08-30 11:02:21 +02:00
Matthias Thieroff
3e236fe5ac Optimize global search result view (#2107)
Enhance search result view by sorting the categories after their translation (repositories will still be sticky on top). Further disable categories with no search results and be more explicit with the text displayed if no search results were found.
2022-08-18 09:04:45 +02:00
Konstantin Schaper
56ace2811b Implement reindex mechanism for search (#2104)
Adds a new button to repository settings to allow users to manually delete and re-create search indices. The actual re-indexing is happening in plugins that subscribe to the newly created event.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-08-17 13:22:34 +02:00
Eduard Heimbuch
e590a3ee68 Add changesets command to enable commit search (#2106)
Introduce changesets command to find all changesets for a single repository. This is required to index all changesets for the commit search.
2022-08-17 12:44:59 +02:00
Jan
f78524009e Fixed wrong indentation of extraVolumes and extraVolumeMounts (#2103) 2022-08-16 13:50:35 +02:00
Florian Scholdei
279c3e2b75 Fix broken compare view due to missing export (#2105) 2022-08-16 13:03:21 +02:00
Konstantin Schaper
d1deceeb1d Adjust changelog for release 2.38.0 2022-08-08 14:41:33 +02:00
Eduard Heimbuch
550ebefd93 Context sensitive search (#2102)
Extend global search to search context-sensitive in repositories and namespaces.
2022-08-04 12:14:46 +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
Eduard Heimbuch
4e220b5254 Implement more plugin list commands (#2094)
Implement commands to list available plugins and installed plugins separately.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2022-07-28 14:30:55 +02:00
René Pfeuffer
67a9dce7e6 Add namespace cli commands (#2093)
Adds the CLI commands that are available to handle repository permissions on repositories for namespaces.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-07-26 09:58:00 +02:00
Eduard Heimbuch
049b5ba54c Add CLI commands for global permission management (#2091)
Add CLI commands for permission management for users and groups.

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2022-07-21 09:56:47 +02:00
René Pfeuffer
3b4b1a1767 Add cli commands to modify repository permissions (#2090)
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2022-07-20 09:17:14 +02:00
Eduard Heimbuch
fc28da90b3 Enable plugin management via CLI (#2087)
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2022-07-19 09:02:00 +02:00
Eduard Heimbuch
67c083ee54 Reduce code smells (#2089)
Reduce code smells found by deepsource.io. We focused on the low-hanging fruits and not breaking any api.
2022-07-15 15:33:37 +02:00
René Pfeuffer
f61d0c113f Always encrypt password (#2085)
First, we make "encryptPassword" in the PasswordService
idempotent, so that the method will not change the password
when the method is called with an already encrypted string.
Then, in the user manager, we will always call this method
to encrypt the password, if this is not already the case.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-07-15 15:02:52 +02:00
René Pfeuffer
058230b6a7 Adjust changelog for release 2.37.2 2022-07-13 10:11:45 +02:00
René Pfeuffer
d7943a0551 Fix plugin wizard for foreign languages (#2086)
This fixes the plugin wizard, that throws a NullPointerException for other languages then Englisch or German.
2022-07-13 09:28:56 +02:00
Konstantin Schaper
fc2a40cab5 Fix users not being editable (#2084)
Since 2.34.0, users could not be edited. This pull request fixes the issue and adds unit tests.
2022-07-12 10:45:05 +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
3aa6e95018 Adjust changelog for release 2.37.0 2022-06-28 14:17:18 +02:00
Eduard Heimbuch
1240905008 Revert "Show dedicated Notfound page for invalid routes (#2070)"
This reverts commit ae8f3ee346cb8a3acf6637f501f8e6b68456082c.
2022-06-28 13:13:11 +02:00
René Pfeuffer
b0b2375f78 Mirror LFS files for git (#2075)
If a mirrored git repository uses LFS, SCM-Manager will now also load the binaries, so that the mirrored repository can be used without missing LFS files.
2022-06-24 11:55:36 +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
71f9a5a26b Enhance descriptions to differentiate between dumps with and w/o metadata. (#2074)
Users should easily understand which kind of import they should choose depending on their dump-file. The export and import with metadata is not experimental any longer. Labels and help text should be short and concise.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-06-22 13:21:37 +02:00
Konstantin Schaper
84f220e5b2 Replace lerna with turborepo (#2073)
This change allows our ui libraries to be built separately. It is therefore to utilize different build tools for individual projects, as well as using build caches for the local build.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Matthias Thieroff <matthias.thieroff@cloudogu.com>
2022-06-22 11:49:26 +02:00
Eduard Heimbuch
8b5347b251 Prevent corrupt lfs files during transfer (#2068)
Validate lfs file checksum to ensure that the file was transferred successfully. If an error occurs, the blob will be deleted to prevent corrupt files inside the storage.
2022-06-21 16:31:34 +02:00
Eduard Heimbuch
e1196ac6a0 Show dedicated Notfound page for invalid routes (#2070) 2022-06-20 17:49:41 +02:00
Matthias Thieroff
becac01096 Adjust changelog for release 2.36.0 2022-06-13 11:40:56 +02:00
René Pfeuffer
32dad5ffbf Do not close hg context for diff as string (#2067)
Normally, all resources (like the hg process) will be released after
the stream of the diff. But this may lead to errors, when
DiffCommandBuilder#getContent is used and other commands are used
afterwards.

So with this we introduce a new interface method in the DiffCommand
that can be implemented without closing resources. This method is
used for the computation of the diff as string.

We use this to distinguish between the computation of diffs as a
stream like in rest calls, and the computation as a single string
result that may we followed by other commands using the same context.
2022-06-13 08:19:28 +02:00
René Pfeuffer
19218c7237 Add wget to fix docker health check (#2066)
Installs the command wget in the debian docker container, so that the health check can run.
2022-06-09 22:38:38 +02:00
Phil-Ah
3bb3119faf Feedback button does not mask warp menu in EcoSystem (#2062)
The feedback button overlaps the warp menu when the SCM-Manager is used as a dogu in a Cloudogu EcoSystem on small screens. The default position is changed to avoid masking the warp menu. The z-index of the feedback button is reduced to avoid masking the open warp menu.
The DOM-sequence is changed to ensure users with keyboard navigation can access important parts of the page before the feedback button.
2022-06-09 10:14:15 +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
5267a0556a Remove branch validation on overview (#2064)
Branches that have already been checked as valid should not be displayed as faulty on branch overview.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2022-06-09 07:30:46 +02:00