Commit Graph

463 Commits

Author SHA1 Message Date
Sebastian Sdorra
8e16fa11c9 Add extension point for repository creators (#1657)
Adds an extension point for repository creator such as repository create, repository import or repository mirror.
2021-05-14 09:15:35 +02:00
Konstantin Schaper
640a270e1d refactor form fields to enable usage with react-hook-form (#1656)
React Hook Form is a library that makes working with forms easier and reduces boilerplate. For it to be used in our project, some of the form fields had to be adjusted.
2021-05-14 09:08:57 +02:00
Sebastian Sdorra
b975fb655d Feature/global notifications (#1646)
Add global notifications
2021-05-05 14:43:16 +02:00
Sebastian Sdorra
de28cac4ab Fix flickering form elements on repository initialization (#1645) 2021-05-05 07:20:36 +02:00
Eduard Heimbuch
7464baf767 Fix missing license headers 2021-04-30 16:13:19 +02:00
Eduard Heimbuch
f154ba7d83 Fix compatibility with old redux api (#1618) 2021-04-21 10:11:15 +02:00
René Pfeuffer
1e83c34823 Enable Health Checks (#1621)
In the release of version 2.0.0 of SCM-Manager, the health checks had been neglected. This makes them visible again in the frontend and adds the ability to trigger them. In addition there are two types of health checks: The "normal" ones, now called "light checks", that are run on startup, and more intense checks run only on request.

As a change to version 1.x, health checks will no longer be persisted for repositories.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-04-21 10:09:23 +02:00
Eduard Heimbuch
84c1e7ed37 Add new extension point for repository avatars (#1614)
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-04-15 11:14:42 +02:00
Florian Scholdei
43c5c44905 Add header to toplevel error boundary (#1613)
In the event of a reload due to a change of focus, possible error boundaries were displayed without the SCM-Manager header. This change complements the appropriate header.
2021-04-07 16:18:36 +02:00
Florian Scholdei
84ba05bab8 Correct positioning and coloring of button groups in modals (#1612) 2021-04-07 13:04:30 +02:00
René Pfeuffer
0a6e6e6c85 Fix rename of namespace with UTF-8 (#1611) 2021-04-06 09:19:31 +02:00
Eduard Heimbuch
08549a37b1 Do not show repositories on the overview if a not existing namespace is selected (#1608) 2021-03-25 12:23:21 +01:00
Eduard Heimbuch
73c1609d92 Add flag to global config to enable/disable api keys as additional authentication method (#1606)
Add flag to global config to enable/disable API keys as additional authentication method.

Fixes #1599
2021-03-25 12:06:22 +01:00
Eduard Heimbuch
22a0362892 Feature/unicode groupname validation (#1600)
Allow all UTF-8 characters except URL identifiers as user and group names and for namespaces.

Fixes #1513

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-03-25 09:59:23 +01:00
Eduard Heimbuch
97bad3e3a5 Fix repository create route from namespace overview page (#1602) 2021-03-23 11:51:47 +01:00
Eduard Heimbuch
e132aab7c4 Show "CUSTOM" on permission roles instead of empty entry (#1597) 2021-03-23 08:47:29 +01:00
René Pfeuffer
d8092bec71 Add "links" collection to index resources, again (#1594)
With the introduction of react-query, it looks like the indexResources attribute of the repository initialization extension properties lost its collection links, which was replaces by _links. In this fix we copy this collection, so that the template plugin still can use links.

Fixes #1593
2021-03-17 09:36:25 +01:00
Sebastian Sdorra
9ef076fb2f Fix missing redirect after login (#1592)
Each unauthorized error was caught by the token expired handler, which has reset the whole query state and this leads sometimes to a missing redirect after login.
2021-03-16 16:13:43 +01:00
Eduard Heimbuch
89e938c6d7 Encode revision for extension point to fix breaking change (#1585)
Encode revision on extension points to fix a breaking change which slipped through with release 2.14.0.
2021-03-16 08:39:31 +01:00
Sebastian Sdorra
89548d45bd Filepath search (#1568)
Add search for files to the sources view. The search is only for finding file paths. It does not search any file metadata nor the content. Results get a rating, where file names are rated higher than file paths. The results are sorted by the score and the first 50 results are displayed.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-03-04 10:39:58 +01:00
Florian Scholdei
bafe84b79a Fix wrapping of title and actions in source view (#1569)
The title of a file and the action buttons had to share the space. Now the title takes it needs and the actions move down if necessary. This behavior is similar to the list of files in changeset view (content component).
2021-03-04 09:54:08 +01:00
Sebastian Sdorra
4ec01ff4d1 Fix endless loading spinner for sources of empty repositories (#1565) 2021-03-03 11:00:26 +01:00
Florian Scholdei
8e2c2aaa5e Prevent breadcrumb overflow and shrink large elements (#1563)
- Restore left margin on copy permalink
- Move slash to the right to make it resemble the console
- Shrink large elements
- Add new storyshot
- Fix separation of toggle icon and file title
2021-03-03 10:57:15 +01:00
Konstantin Schaper
311528fd45 Add permalink button to markdown headings (#1564)
* add permalink button to markdown headings
2021-03-03 09:52:18 +01:00
René Pfeuffer
0695ca3bac Add import protocol (#1558)
Adds a protocol for repository imports (either from an URL, a dump file or a SCM-Manager repository archive).
This protocol documents single steps of an import, the time and the user and is accessible via a dedicated REST
endpoint or a simple ui.

The id of the log is added to the repository imported event, so that plugins like the landingpage or mail can link to these logs.
2021-02-26 13:52:29 +01:00
Eduard Heimbuch
972cfd312b Small improvements on export information 2021-02-25 14:17:08 +01:00
Eduard Heimbuch
db2ce98721 Feature/import export encryption (#1533)
Add option to encrypt repository exports with a password and add possibility to decrypt them on repository import. Also make the repository export asynchronous. This implies that the repository export will be created on the server and can be downloaded multiple times. The repository export will be deleted automatically 10 days after creation.
2021-02-25 13:01:03 +01:00
Sebastian Sdorra
367d7294b8 Enable refetch on focus (#1559)
During the integration of react-query we had to disable the refetch on focus option, because it has cleared our input fields on refocusing the browser tab. This problem comes mostly from a wrong use of routes. Often routes were used with the component prop and a anonymous function e.g.:

```jsx
<Route path="/my/route" component={() => <AwesomeComponent />} />
```

This triggers not only rerendering but remounting of the route component every time the parent is rerendered. With the ongoing work on the migration from redux to react-query, we have removed the usage of routes with component functions. So we can now safely enable the option refetch on mount of react-query.
2021-02-25 08:30:23 +01:00
Konstantin Schaper
3a8d031ed5 Introduce stale while revalidate pattern (#1555)
This Improves the frontend performance with stale while
revalidate pattern.

There are noticeable performance problems in the frontend that
needed addressing. While implementing the stale-while-revalidate
pattern to display cached responses while re-fetching up-to-date
data in the background, in the same vein we used the opportunity
to remove legacy code involving redux as much as possible,
cleaned up many components and converted them to functional
react components.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-02-24 08:17:40 +01:00
Eduard Heimbuch
1e1b73ace5 Feature/import navigation lock (#1536)
Use navigation lock on repository import to prevent that the current user accidentally leaves the page and aborts the running import.
2021-02-16 11:35:06 +01:00
Eduard Heimbuch
ac5d145266 Repository export read-only lock (#1519)
* Lock repository for read-only access only while exporting
* Create read-only check api

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-02-04 15:29:49 +01:00
Florian Scholdei
57c9484d41 Enrich styleguide with new features, rules and changes
The styleguide for usage of visual elements has not been updated for a long time. In the course of this story it should be adapted to the current standards and rules. In addition, heavy violations were rectified directly.
2021-01-28 12:46:42 +01:00
Eduard Heimbuch
d91c71ace1 Add the repository import and export with metadata for Subversion repositories (#1501)
* Add store exporter to collect the repository metadata
* Add EnvironmentInformationXmlGenerator
* Collect export data and put into compressed tar archive output stream
* Create full repository export endpoint.
* Add full repository export to ui
* Ignore irrelevant files from config store directory
* write metadata stores to file since a baos could teardown the server memory
* Migrate store name for git lfs files (#1504)

Changes the directory name for the git LFS blob store by
removing the repository id from the store name.

This is necessary for im- and exports of lfs blob stores,
because the original name had the repository id as a part
of it and therefore the old store would not be found when
the repository is imported with another id.

Existing blob files will be moved to the new store location
by an update step.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>

* Introduce util for migrations (#1505)

With this util it is more simple to rename
or delete stores.

* Rename files in export

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-01-28 11:40:35 +01:00
Florian Scholdei
a35c227a55 Repository contact information is editable
The RepositoryForm is called within the creation and editing of a repository. It contains a validator, which is supposed to check, among other things, whether the namespace and name were specified when the repository is created. This information is missing in the edit mode. I therefore initially set valid.namespaceAndName to true. It is changed to false again before the creation mask becomes active.
2021-01-28 11:31:16 +01:00
René Pfeuffer
01fd83fd6b Order proxy settings in frontend (#1502)
Group the single settings for proxies more meaningful.
2021-01-22 14:50:15 +01:00
Florian Scholdei
f4d4d3a8c6 Add missing subtitles (#1496)
Add the last missing subtitles in the scmm core.
2021-01-13 09:25:58 +01:00
Eduard Heimbuch
adf7bac665 Subversion repository export
Add the repository export function for Subversion repositories. The repository will be exported as dump file which can be downloaded directly or inside a gzip compressed archive.
2021-01-08 09:19:33 +01:00
Florian Scholdei
c579de108f Option to create a permanent link to a source file
Adds a new button next to the breadcrumbs in the source view that allows users to create a permanent link to the active path (file or folder).
2021-01-07 10:15:50 +01:00
Eduard Heimbuch
92232c0b4c fix jumping ui in repository settings actions 2020-12-16 11:52:24 +01:00
Florian Scholdei
214cf527d4 Feature/harmonize translation keys (#1478)
Harmonize translation keys

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2020-12-16 11:24:13 +01:00
René Pfeuffer
8e3b0e4145 Archive repository (#1477)
This adds a flag "archived" to repositories. Repositories marked with this can no longer be modified in any way. To do this, we switch to a new version of Shiro Static Permissions (sdorra/shiro-static-permissions#4) and specify a permission guard to check for every permission request, whether the repository in question is archived or not. Further we implement checks in stores and other activies so that no writing request may be executed by mistake.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2020-12-16 10:58:29 +01:00
Eduard Heimbuch
b167d90fea Namespace filter leads to empty page (#1476)
* Namespace filter leads to empty page

Fix bug where an empty page was shown if the repository namespace filtered overview page was called directly. Also now the namespace filter and the search action can be used together.

Co-authored-by: Florian Scholdei <florian.scholdei@cloudogu.com>
2020-12-16 09:46:53 +01:00
Florian Scholdei
88b93dc8b8 Feature/profile navigation (#1464)
- Fix bug where profile settings wasn't shown if user cannot change password
- Add missing "ApiKey" entry in the single user menu

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2020-12-16 09:23:05 +01:00
Konstantin Schaper
3c9c0c1792 Merge branch 'develop' into feature/import_svn_from_dump 2020-12-14 11:40:46 +01:00
Konstantin Schaper
fed16f296a support permalinks to lines in source code view (#1472)
This features adjusts the syntax checker to render a little link icon next to a hovered line. When clicked,
a permanent link to this line is created and copied to the user's clipboard. When visiting the link,
the focused row is highlighted.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2020-12-14 09:15:18 +01:00
Eduard Heimbuch
e8dd7dc68d Add compress checkbox to ImportFromBundleForm 2020-12-10 14:46:47 +01:00
Eduard Heimbuch
ed940d5f23 Create form for import from bundle 2020-12-10 13:58:47 +01:00
René Pfeuffer
19edb3e869 Fix translation 2020-12-03 13:19:40 +01:00
Sebastian Sdorra
d0c84dec69 Pass down the repository type, because the RepositoryDto needs it for validation 2020-12-03 10:44:23 +01:00
Eduard Heimbuch
715c76e2f4 set repository name suggestion in import form just at leaving the input field 2020-12-03 09:38:23 +01:00