Commit Graph

659 Commits

Author SHA1 Message Date
Eduard Heimbuch
dd0975b49a Feature/mirror (#1683)
Add mirror command and extension points.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2021-06-04 14:05:47 +02:00
Florian Scholdei
5cb2f077d9 Fix annotate overflow and doubled spacing in code views (#1678)
Fix annotate overflow: Total div size was smaller than minimum size of individual children (+ margin).
Fix doubled spacing in code content views: Spacing duplicates through .panel-block as default for styling, various containers and inner syntax highlighter definition. Unfortunately, the latter is not easy to change, since it is also used with inline syntax highlighter.
2021-06-02 08:57:36 +02:00
Eduard Heimbuch
8ed2c1509f Fix endless loop in Select component 2021-06-01 15:20:41 +02:00
Eduard Heimbuch
a954e019ec Fix endless loop on render Select component 2021-05-28 10:07:55 +02:00
Sebastian Sdorra
dabc7d7e8e New configuration form (#1674)
This change introduces a new hook useConfigLink and a new component ConfigurationForm.
These combination should replace the old Configuration component, which is not typed and which could not be used with react-hook-form.
2021-05-27 15:46:08 +02:00
Florian Scholdei
42745c9e34 Notifications for health checks (#1664)
Add list of emergency contacts to global configuration. This user will receive e-mails and notification if some serious system error occurs like repository health check failed.
2021-05-20 08:30:20 +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
Konstantin Schaper
7286a62a80 Implement api for extension point typings (#1638)
Currently, the only way to explore available extension points is through our documentation or by browsing the source code. Once you find them, there is no guard rails and the usage is prone to user errors. This new api allows the declaration of extension points as types in code. This way, exposing an extension point is as easy as exporting it from a module. Both the implementation and the developer who uses the extension point work with the same shared type that allows auto-completion and type-checks for safety. This feature is backwards-compatible as the generic methods all have sensible defaults for the type parameters.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-05-12 16:05:30 +02:00
Eduard Heimbuch
b6b304f338 Use correct syntax for config routes (#1652) 2021-05-12 13:46:28 +02:00
Sebastian Sdorra
b975fb655d Feature/global notifications (#1646)
Add global notifications
2021-05-05 14:43:16 +02:00
Eduard Heimbuch
579b58ba5f Show hg binary verification error messages (#1637)
Show hg verification error messages on global hg config page if trying to save invalid hg binary.
2021-05-03 19:04:08 +02:00
Eduard Heimbuch
7464baf767 Fix missing license headers 2021-04-30 16:13:19 +02:00
Konstantin Schaper
32b268e6f5 add extension point for custom link protocol renderers in markdown (#1639)
This PR allows for custom link protocols to be declared and rendered in markdown.
A new extension point markdown-renderer.link.protocol allows for renderers to hook into the api and implement any custom protocol.

Example:

[description](myprotocol:somelink)
binder.bind("markdown-renderer.link.protocol", { protocol: "myprotocol", renderer: MyProtocolRenderer })
This renderer functions similar to link renderers and receives the href and the description. The latter as the children property.

This PR also fixes two bugs where external- and anchor links were not correctly rendered in pull requests by the review-plugin.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-04-29 13:15:22 +02:00
René Pfeuffer
2b38f55991 Make code larger (#1631)
Sets the font size for code to 1rem like other text
2021-04-26 12:10:54 +02:00
Konstantin Schaper
67a0f5c16c remove console log 2021-04-22 09:24:46 +02:00
Eduard Heimbuch
e72b21702b Fix storyshots 2021-04-22 07:20:45 +02:00
Eduard Heimbuch
8897ea8c2f Fix code block for syntax highlighter 2021-04-21 16:36:08 +02:00
Florian Scholdei
05ef203038 Fix validation in "Add Entry" components (#1625) 2021-04-21 14:36:52 +02:00
Eduard Heimbuch
b5d4d7f75c Feature/remark rehype (#1622)
Make remark compatible with rehype plugins so we can sanitize the content with rehype-sanitize-plugin.

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2021-04-21 12:05:37 +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
Eduard Heimbuch
d94ebb2e3e Validate filepath and filename to prevent path traversal (#1604)
Validate filepath and filename to prevent path traversal in modification
command and provide validations for editor plugin.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-03-25 12:50:24 +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
Konstantin Schaper
cf2e0b6f2b Collapse external nav links correctly in a menu (#1596) 2021-03-17 19:45:15 +01:00
Sebastian Sdorra
ce0e94098e Fix navigate to detail after search (#1589)
Sometimes fails the navigation to a detail page after search.
This happens because of the OverviewPageActions which pushes the value of the filter to history.
This happens on change and on render, which could lead to a navigation back to the overview even after a click on an item in the overview.
2021-03-16 11:41:38 +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
René Pfeuffer
84c8e02bf1 Feature Partial Diff (#1581)
With this pull request, diffs for Git are loaded in chunks. This means, that for diffs with a lot of files only a part of them are loaded. In the UI a button will be displayed to load more. In the REST API, the number of files can be specified. This only works for diffs, that are delivered as "parsed" diffs. Currently, this is only available for Git.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-03-12 13:52:17 +01:00
Konstantin Schaper
e66553705f Create api for markdown ast plugins (#1578)
Currently we only have the option to adjust rendering of the markdown output, but no option to change the generated ast tree before rendering takes place (i.e. to adjust the structure like when replacing text with links). This PR adds a new api to create ast plugins that can be integrated with the markdown view component. This is intended to be backwards-compatible and work independently from the underlying implementation.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-03-11 10:28:18 +01:00
Eduard Heimbuch
861e1d34ca Fix endless running test (#1572)
Fix endless running ui tests.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-03-05 10:10:02 +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
0072808c7d Upgrade react-markdown to prevent xss from stored markdown (#1567)
Prevent XSS attacks from stored markdown, by updating react-markdown to v5 which sanitizes html.
2021-03-03 15:06:34 +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
Florian Scholdei
61814a5027 Clarify that FileUpload component does not upload directly (#1566)
Clarify that FileUpload component does not upload directly:
Changed label from “Upload” to “Select File” and icon from direct to a kind of upload.
2021-03-03 10:01:29 +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
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
fa46440960 Fix filter redirect on paginated overview page (#1535)
Fix unnecessary redirect on paginated overview pages which cuts the page number from url.
2021-02-16 08:05:09 +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
Konstantin Schaper
c8b167b4ec refactor table component so that it can be styled by styled-components
Applying styles to table elements like tr or td is currently very cumbersome because they are encapsulated in the Table component itself. We need to apply a word break to table cells so that for example long branch names properly fit into the layout. This PR changes the Table component to allow it to be styled with styled-components.
2021-01-26 10:52:14 +01:00
René Pfeuffer
e7d79835c6 Remove test for old behaviour 2021-01-25 16:18:46 +01:00
René Pfeuffer
6b5781144e Fix storyshots for test ids 2021-01-25 15:43:48 +01:00
Konstantin Schaper
36b4a849e2 Apply test ids to production builds for usage in e2e tests (#1499)
Our e2e tests get executed against production builds and therefore need access to the test-ids. Prior to this change, test-ids were removed in prod builds.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-01-25 12:49:19 +01:00
Florian Scholdei
06161c616d Remove breadcrumb ending slash 2021-01-19 11:31:54 +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
Konstantin Schaper
831c8b0271 add markdown codeblock renderer extension point (#1492)
Introduces a new extension point that allows developers to overwrite the default syntax highlighting renderer for specific code blocks defined in markdown. The extension point is dynamic and follows the pattern "markdown-renderer.code.{language}".
This feature lays the groundwork for the scm-markdown-plantuml-plugin.
2021-01-07 09:25:31 +01:00
Florian Scholdei
8eb599ff94 Remove empty space in title section on admin pages (#1490) 2021-01-06 09:17:40 +01:00