215 Commits

Author SHA1 Message Date
René Pfeuffer
a79a6e2ebb Adjust changelog for release 2.26.0 2021-11-04 13:49:20 +01:00
Eduard Heimbuch
6f61fefec5 Improve a11y (#1841)
Improve accessibility by removing unnecessary tags without hrefs. Also remove many eslint errors and warnings.
2021-11-04 09:16:08 +01:00
Sebastian Sdorra
0efdd2a483 Add experimental high contrast mode (#1845)
Add an experimental high contrast color theme to SCM-Manager. The high contrast mode uses a dark background and color with a high contrast for a better accessibility.
The change adds the theme to ui-styles and theme switcher to the storybook of ui-components.
2021-11-04 08:33:11 +01:00
Matthias Thieroff
07f0b22031 Fix process stop for windows builds 2021-11-03 17:03:57 +01:00
René Pfeuffer
41cbe536c9 Remove unnecessary environment (#1844)
The 'NOVE_ENV' is set by the gradle run task already
and therefore is redundant here.
2021-11-03 15:10:02 +01:00
Sebastian Sdorra
241dcb6f0c Add viewer for pdf files (#1843)
Adds an viewer for pdf files to the source code browser.
2021-11-03 14:47:14 +01:00
René Pfeuffer
cab09680f8 Fix initial mirror sync if empty (#1842)
Fixes an error, when the initial synchronization of a git mirror had no branches.
2021-11-03 10:51:06 +01:00
Florian Scholdei
b896df5046 Add alternative text to controls to allow screen readers to read them aloud (#1840)
Add alternative text to controls to allow screen readers to read them aloud.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-11-03 10:11:40 +01:00
Eduard Heimbuch
b78742ed0b Read all errors with screen reader (#1839)
Make error notifications accessible for screen readers.
2021-11-03 08:14:54 +01:00
René Pfeuffer
e1a2d27256 Implement file lock for git (#1838)
Adds a "file lock" command that can be used to mark files as locked by a specific user. This command is implemented for git using a store to keep the locks.

Additionally, the Git LFS locking API is implemented.

To display locks, the scm-manager/scm-file-lock-plugin can be used.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-11-01 16:54:58 +01:00
Eduard Heimbuch
a0e9ba2134 Adjust changelog for release 2.25.0 2021-10-21 14:14:26 +02:00
Eduard Heimbuch
e44867b6b9 Fix diff link templating for repositories named as "source" or "target" (#1834)
Fix templated links for repositories or namespaces which are named "source" or "target".
2021-10-21 09:54:25 +02:00
René Pfeuffer
27b9d2c78a Resolved branch revision in Source Extension Point (#1803)
This adds the "resolved revision" of the HEAD (of the current branch, if branches are supported) to the extension point repos.sources.extensions. This "resolved revision" holds the current HEAD revision of the repository (or the selected branch, if branches are supported). This means you can check, whether the release has changed since an extension has been rendered for the first time.

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2021-10-20 13:29:47 +02:00
Konstantin Schaper
d41b293109 remove query keys when deleting individual entities (#1832)
When deleting individual entities, their query keys should be removed, not only invalidated. This is to prevent situations, where an entity is deleted via the web interface and react-query attempts a re-fetch before a redirect to the collection view can occur. This could lead to a not found error.
2021-10-20 13:15:17 +02:00
René Pfeuffer
6a881b3d98 Fixes recursive browse for git (#1833)
The recursive browse command failed to list files
that started with a name of a folder. These were
listed as children of the folder that has the same
name as the prefix of the file.
2021-10-20 11:28:35 +02:00
René Pfeuffer
39e367bd70 Prevent deletion of default branch (#1827)
Adds a pre receive repository hook that prevents the deletion of the default branch.
Mirrored repositories will change their default branches to another branch, when it is deleted.
2021-10-19 17:31:35 +02:00
Konstantin Schaper
57aacba03a New extension points for repository overview (#1828)
The landing-page-plugin is being reworked and integrated into the repository overview. This requires new extension points and slightly adjusted components to better match the repository overview page visually. Also, binder options can now be passed as an object which offer a new priority option that causes sorting in descending order.
2021-10-19 09:31:40 +02:00
Eduard Heimbuch
35f4cb3e61 Always show SCM-Manager footer (#1826) 2021-10-18 16:23:30 +02:00
Florian Scholdei
3cb8fb52bb Correct import in RepositoryGroupEntry (#1825)
* Move GroupEntries to ui-webapp

* Add changelog entry
2021-10-12 14:01:19 +02:00
Sebastian Sdorra
516b733ec2 Avoid refetch of markdown content (#1823)
* Update react-query to 3.25.1
* Avoid refetching of markdown content on toggle between source and md view
2021-10-11 15:24:12 +02:00
Konstantin Schaper
5902afc005 Adjust changelog for release 2.24.0 2021-10-07 15:01:17 +02:00
René Pfeuffer
41b8f091c0 Add recursive deletion in modify command (#1821)
Adds a method in the ModifyCommand to delete not only files, but also directories recursively.
2021-10-07 14:40:48 +02:00
Sebastian Sdorra
d1de7bf214 Clear external group cache on explicit logout or user deletion (#1819)
Clears the external group cache whenever a user gets logged out by the logout rest method or the user gets deleted.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-10-06 14:34:10 +02:00
Sebastian Sdorra
1318f40e6d Fix bugs in svn and source tree for folders with a % in the name (#1818)
* Update svnkit to 1.10.3-scm1 to fix handling of path with % in the name
* Fix source tree and breadcrumb navigation for folders with a % in the name
2021-10-04 11:19:25 +02:00
Sebastian Sdorra
f5d9855a24 Add extension points for source tree (#1816)
This change will add an extension point which allows to wrap the source tree. This is required in order to use a context provider e.g. to capture a selected file. Another extension point allows to add a row between the row of a file.
In order to implement the extension points ui-extensions has now a wrapper property and passes the children of an extension point to implementing extension.
2021-09-30 16:41:04 +02:00
René Pfeuffer
2b85081032 Make EMail computation available for DisplayUser (#1815)
Adds an internal api call to determine a email address for a DisplayUser instance
in class EMail. This was available only for the User class before, but there is no
reason, why this should be limited.

Additionally one can also set the author for the merge command as DisplayUser,
which will trigger the fallback mechanisms for the email address, if it is missing.

This is introduced to make merge commits possible for users without email addresses
in the review plugin (scm-manager/scm-review-plugin#149).
2021-09-30 14:32:31 +02:00
Eduard Heimbuch
922dc27c49 Add delete method for configuration store (#1814)
Add method to delete configuration stores completely.
2021-09-30 08:54:22 +02:00
René Pfeuffer
f6de626cd5 Fix edge cases in mirror command (#1812)
- The clone of the repository failed, if no master branch had
  been mirrored, because this was what the HEAD was set to, and
  jgit fails with an exception if the HEAD branch does not exist.
- The HEAD branch had to be corrected to an existing branch,
  because otherwise a rejected 'master' branch could not be
  deleted and was synchronized in a second sync if the working
  directory had been cached.
2021-09-28 09:54:14 +02:00
Sebastian Sdorra
24effd9041 Fix deletion of repositories from search index (#1813) 2021-09-27 13:15:29 +02:00
Florian Scholdei
2cb006d040 Replace styled-components with bulma helpers (#1783)
Use Bulma helpers whenever possible instead of custom styled components.
This pull request replaces primarily color definitions, spacing and flex instructions.
2021-09-15 17:40:08 +02:00
Eduard Heimbuch
8a65660278 Auto mapper binding (#1807)
Bind mapper implementations automatically to related mappers using the annotation processor. With this change it is not longer required to bind mapper explicitly using mapper modules which reduces some boilerplate code.
2021-09-14 09:26:47 +02:00
Eduard Heimbuch
4cd7fb622a Initialize mercurial logger (#1804)
Use own logger for mercurial internal commands. This prevents log overflow by javahg's JULLogger.
2021-09-10 10:27:21 +02:00
Eduard Heimbuch
1fa591a381 Adjust changelog for release 2.23.0 2021-09-08 13:20:37 +02:00
Sebastian Sdorra
92fa67e937 Fix missing encoding of useBranch hook (#1798) 2021-09-08 07:45:41 +02:00
René Pfeuffer
13d72d45c6 Prevent multiple instances of working copy pool (#1797)
The working copy pool has to be a singleton, because
otherwise there could be multiple instances with their
own caches and therefore no reuse and maybe more relevant
working directories that will never be deleted.
2021-09-06 08:40:22 +02:00
Sebastian Sdorra
856315a15f Fix broken login page if login info response could not be parsed (#1795) 2021-09-06 08:33:24 +02:00
Eduard Heimbuch
43e1ea06c8 Fix HalRepresentationWithEmbedded type (#1793)
Fix HalRepresentationWithEmbedded type since _embedded can be null.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-09-02 15:47:15 +02:00
Sebastian Sdorra
ea7964d224 Add support for enum fields during indexing (#1792)
* Add support for enum fields during indexing

* Add missing value extractor for enums
2021-09-01 15:40:38 +02:00
Konstantin Schaper
9ad501b4c6 fix redundant git repo closing (#1789)
Both the GitLogCommand and the GitModificationsCommand incorrectly closed the underlying git repository. This caused the git repository to be opened once but closed twice, which in turn flooded the logs with avoidable warnings and affected performance. The redundant closing of the git repo has been removed from both commands.
2021-09-01 09:44:11 +02:00
Sebastian Sdorra
61c2ebe80e Keep quick search input on page reload (#1788) 2021-08-31 13:30:15 +02:00
Eduard Heimbuch
58f792a285 Fetch clone modal data on first opening (#1784)
Get the data of the clone modal the first time it is opened. This way, we display a loading spinner for a fraction of a second when the modal is first opened. But we also prevent fetching a lot of data that is probably not needed.
2021-08-31 07:39:02 +02:00
Sebastian Sdorra
0a26741ebd One index per type and parallel indexing (#1781)
Before this change the search uses a single index which distinguishes types (repositories, users, etc.) with a field (_type).
But it has turned out that this could lead to problems, in particular if different types have the same field and uses different analyzers for those fields. The following links show even more problems of a combined index:

    https://www.elastic.co/blog/index-vs-type
    https://www.elastic.co/guide/en/elasticsearch/reference/6.0/removal-of-types.html

With this change every type becomes its own index and the SearchEngine gets an api to modify multiple indices at once to remove all documents from all indices, which are related to a specific repository, for example.

The search uses another new api to coordinate the indexing, the central work queue.
The central work queue is able to coordinate long-running or resource intensive tasks. It is able to run tasks in parallel, but can also run tasks which targets the same resources in sequence. The queue is also persistent and can restore queued tasks after restart.

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2021-08-25 15:40:11 +02:00
Konstantin Schaper
44f25d6b15 Fix disabled local proxy configuration being used over global config (#1780)
The original proxy configuration implementation only used the global configuration if the local proxy configuration was not provided (i.e. null). This PR adds the corner case where a local configuration is provided, but disabled. In this case, the global proxy configuration will be used as a fallback as well.
2021-08-25 08:19:52 +02:00
Florian Scholdei
5c9b270e6e Remove deletion of modalRoot node (#1779)
Remove deletion of empty modalRoot node to allow a different modal to continue to exist
2021-08-24 11:26:16 +02:00
Sebastian Sdorra
1d80ecd976 Fix changelog generation 2021-08-24 07:54:55 +02:00
Sebastian Sdorra
519748106e Fix too heavy logging of SchemeBasedWebTokenGenerator (#1777)
Reduce log level of `could not create token from authentication header from warn to debug, because it is normal that these message is logged if multiple SchemeBasedWebTokenGenerator are registered.

Fixes #1772
2021-08-23 20:07:52 +02:00
Sebastian Sdorra
03449de238 Fix repository viewer for filenames which contains a hash (#1776)
Add missing url encoding for file links in the repository viewer.

Fixes #1766
2021-08-23 20:05:10 +02:00
Sebastian Sdorra
da2b34e528 Preserve request method on force base url (#1778)
The redirect which is used to force base url uses now 307 instead of 302 in order to preserve the request method.

Closes #1771
2021-08-23 20:02:12 +02:00
Sebastian Sdorra
7f9f4e566c Proxy support for pull, push and mirror commands (#1773)
Apply proxy support for jGit by extracting the required functionality from the DefaultAdvancedHttpClient into its own class HttpURLConnectionFactory. This new class is now used by the DefaultAdvancedHttpClient and jGit.
The HttpURLConnection also fixes proxy server authentication, which was non functional in DefaultAdvancedHttpClient.
The proxy support for SVNKit is implemented by using the provided method of the BasicAuthenticationManager.
For mercurial the support is configured by writing the required settings to a temporary hgrc file.
2021-08-19 11:27:51 +02:00
Sebastian Sdorra
a7bb67f36b Fix branch selector display revision if selected instead of first branch (#1767)
The select component displays the first option if the value is not part of the options. This behaviour breaks the BranchSelector which uses Select since version 2.22.0 (before it used the deprecated DropDown component). The BranchSelector has to display the revision if one is selected, which is not part of the options.
This change will add a addValueToOptions property to the Select component and restore the old behaviour.
2021-08-16 14:54:50 +02:00