Commit Graph

2800 Commits

Author SHA1 Message Date
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
0ba8300051 Fix duplicate entries in branch selector (#1794) 2021-09-02 15:09:45 +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
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
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
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
Sebastian Sdorra
c03a9f6fcb Fix error message for parse error on search result page (#1768)
Show same parse error on detail page as on omni search.
2021-08-16 13:19:03 +02:00
Sebastian Sdorra
d1ea249539 Improve search syntax page (#1770)
Remove non-searchable fields from syntax site, do no translate field names, use field name for title if no translation is available, refactor syntax page to respect error states
2021-08-16 13:17:25 +02:00
Sebastian Sdorra
8330f8fddd Fix submission of empty search queries (#1769)
Fixes submission of OmniSearch with an empty query or one which contains only a single character.
2021-08-16 13:11:44 +02:00
Sebastian Sdorra
1b280e0aa4 Keep search result type if searched from result page (#1764)
Whenever OmniSearch was used, the user was redirected to the repository results. However, if you are looking for a different type and want to refine your search after the first results, it makes sense to stay on the same type when searching again.
So whenever a search is started from the search result page the selected type keeps selected.
2021-08-11 09:41:10 +02:00
Konstantin Schaper
ddd2fc1055 Add additional help to quick search and an advanced search documentation page (#1757)
Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-08-09 12:07:28 +02:00
René Pfeuffer
f2249cea73 Update to eslint-plugin 2.13.0 2021-08-06 10:34:30 +02:00
Eduard Heimbuch
842b0b7698 Show empty file (#1762)
Show empty file instead of an endless loading spinner.
2021-08-06 08:31:36 +02:00
Sebastian Sdorra
8ce69d9848 Allow enrichment of embedded repositories on search hits (#1760)
* Introduce RepositoryCoordinates

RepositoryCoordinates will be used for the enrichment of the embedded repositories of search result hits. This is required, because if we used the normal repository for the enrichment, we would get a lot of unrelated enrichers would be applied.

* Add builder method to HalEnricherContext

With the new builder method it is possible to add an object to the context with an interface as key.

* Add enricher support for embedded repository by applying enricher for RepositoryCoordinates

* Use embedded repository for avatars
2021-08-05 15:12:48 +02:00
Sebastian Sdorra
21a6943980 Refactor Search API and allow analyzer per field (#1755)
The Search api is now simpler, because it provides useful defaults. Only if you want to deviate from the defaults, you can set these values. This is mostly reached by using the builder pattern. Furthermore it is now possible to configure an analyzer per field. The default analyzer is still the one which is derived from the index options, but it is possible to configure a new indexer with the analyzer attribute of the indexed annotation. The attribute allows the configuration for code, identifiers and path. The current implementation uses the same analyzer code, identifiers and path. The new implemented splits tokens on more delimiters as the default analyzer e.g.: dots, underscores etc.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-08-05 08:21:46 +02:00
Florian Scholdei
4fa5ad1f0d Show repository avatar in quick search (#1759) 2021-08-05 07:47:38 +02:00
Florian Scholdei
2a481a75b3 Add bounding box for plugin avatar (#1749)
* Add bounding box for plugin avatar

* Add changelog entry
2021-08-03 10:11:48 +02:00
CES Marvin
124e7f1b18 Prepare for next development iteration 2021-07-30 13:02:59 +00:00
CES Marvin
ed953b6209 Release version 2.22.0 2021-07-30 12:35:36 +00:00
Eduard Heimbuch
bae25e43be Fix Tooltip stories 2021-07-29 09:15:29 +02:00
Eduard Heimbuch
d6402ad1cb Redesign repository overview (#1740)
Change repository overview layout to use single rows instead cards. Also remove quick links and add clone action to repository entry. The default repository link now leads to the sources view.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-07-28 15:04:00 +02:00
Eduard Heimbuch
1f5d982463 Export login button component / Fix login extension point (#1741)
Fix login extension point

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-07-28 14:28:33 +02:00
Eduard Heimbuch
ae21da7cd2 Fix file search for branches including "/" (#1748) 2021-07-28 11:34:18 +02:00
Eduard Heimbuch
e68c178c86 Fix hg fileview resolves for same path on file and directory (#1746)
If a file and a directory with the same name existed somewhere at the same level in a Mercurial repository, our logic in the fileview command failed to collect them. The parent of the file was mistaken for the entire file path, resulting in confusing errors that the file could not be found in the manifest. With this fix, file detection should now be more secure than before.

Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-07-28 11:22:37 +02:00
Sebastian Sdorra
91fec0f478 Add detailed search result ui (#1738)
Add a dedicated search page with more results and different types.
Users and groups are now indexed along with repositories.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-07-28 11:19:00 +02:00
Sebastian Sdorra
f2cc9f67ac Fix overflow of quick search results with long repository names (#1739) 2021-07-26 13:50:24 +02:00
Eduard Heimbuch
903285ad96 Improve collapse api on diff to enable external state management (#1736)
Create new diff collapse api which allows to handle the collapse state externally.
2021-07-26 10:32:10 +02:00
Konstantin Schaper
e5a1702e95 rework valueless text adapter to be backwards-compatible with edge-cases (#1737)
When implementing the remark rehype rework, which was supposed to be backwards-compatible, incorrect mdast was produced by the remarkValuelessTextAdapter in some edge-cases. This caused markdown generated by other plugins, such as the issue-tracker-plugin, to be faulty (e.g. Und die #10 ist *so* toll caused visual artifacts). This PR solves the issue by inlining the children of the empty text node instead of wrapping them in a paragraph. This is also more consistent with the previous output, as can be observed when pairing SCM-Manager <= 2.15.0 with the issue-tracker-plugin and using the aforementioned snippet.
2021-07-23 15:54:04 +02:00
Eduard Heimbuch
624605daaa Fix story-shots 2021-07-23 08:54:02 +02:00
Sebastian Sdorra
60045f2c71 Adjust logo for small header 2021-07-22 16:57:54 +02:00
CES Marvin
4b2ec8cb66 Prepare for next development iteration 2021-07-21 11:05:18 +00:00
CES Marvin
e6807ad56a Release version 2.21.0 2021-07-21 10:36:56 +00:00
Sebastian Sdorra
39d2f12b66 Return separate links for searchable types instead of single templated link (#1733)
The search link of the index resource is now an array of links instead of single templated link.
The array contains one link for each searchable type.

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-07-21 10:07:41 +02:00
Phil-Ah
8ba93422a2 Add colors for high-contrast-mode (#1731)
Tweaking the existing color scheme for SCM-Mananger to fulfill accessibility requirements lead to the conclusion, that an additional high-contrast-mode is necessary. The proposed colors are demonstrated in the PR.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-07-20 08:30:47 +02:00
Sebastian Sdorra
e75d937ee5 Prepare search api for different types (#1732)
We introduced a new annotation '@IndexedType' which gets collected by the scm-annotation-processor. All classes which are annotated are index and searchable. This opens the search api for plugins.
2021-07-19 08:48:43 +02:00
Eduard Heimbuch
2de60a3007 Fix small header glitches on mobile view 2021-07-16 13:06:46 +02:00
Sebastian Sdorra
e321133ff7 Add search engine and quick search for repositories (#1727)
Add a powerful search engine based on lucene to the scm-manager api.
The api can be used to index objects, simply by annotating them and add them to an index.
The first indexed object is the repository which could queried by quick search in the header.
2021-07-14 11:49:38 +02:00
Eduard Heimbuch
ce4b869a7a Fix header actions (#1728)
The notifications blocked 2 connections which decreased the amount of available connections.
2021-07-14 08:47:39 +02:00
Florian Scholdei
0d0f9995fe Add files to empty repository (#1717)
It should also be possible to create new files in empty non-initiated repositories with the help of scm-manager/scm-editor-plugin/pull/39. So that the plugin can mount itself, a new endpoint was provided hereby.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-07-13 11:40:49 +02:00
René Pfeuffer
1ce19eea4a Use link instead of history push 2021-07-07 19:33:27 +02:00
Eduard Heimbuch
cd6e624e61 Small header (#1721)
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-07-07 16:26:58 +02:00
Eduard Heimbuch
123bf5c862 Improve plugin center for Cloudogu plugins 2021-07-05 09:48:50 +02:00
René Pfeuffer
4fcdfc28e3 Fix display of contributor table (#1718)
Fixes the display of the contributors table in the changeset details view.
2021-07-02 10:41:20 +02:00
Sebastian Sdorra
e5ebb78146 Fixed missing update if content of diff changes (#1714)
* Fixed missing update if content of diff changes

* Add property to disable automatic refetch in diffs

Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-06-30 16:36:26 +02:00
Eduard Heimbuch
59c15feb87 Show last modified date on repository overview (#1715)
Co-authored-by: Sebastian Sdorra <sebastian.sdorra@cloudogu.com>
2021-06-30 08:40:49 +02:00
Konstantin Schaper
e1239aff92 implement react-query for edge-cases (#1711)
When initially implementing react-query, we focussed on core features. This pull request now replaces the remaining apiClient usages in ui-components and ui-webapp with react-query hooks.
2021-06-28 13:19:03 +02:00
Eduard Heimbuch
7a3db7ee3f Include cloudogu plugins to plugin center (#1709)
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-06-25 09:22:53 +02:00