Commit Graph

694 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
Sebastian Sdorra
61c2ebe80e Keep quick search input on page reload (#1788) 2021-08-31 13:30:15 +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
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
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
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
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
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
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
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
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
René Pfeuffer
d9d3547a22 Create custom initial user (#1707)
Using a default user with a default password has the implicit risk, that this user is not changed and therefore this system can be compromised. With this change, SCM-Manager does not create the default user with the default password on startup any more, but it shows an initial form where the initial values for the administration user have to be entered by the user. To secure this form, a random token is created on startup and printed in the log.

To implement this form, the concept of an InitializationStep is introduced. This extension point can be implemented to offer different setup tasks. The creation of the administration user is the first implementation, others might be things like first plugin selections or the like.

Frontend components are selected by the name of these initialization steps, whose names will be added to the index resource
(whichever is active at the moment) and will be show accordingly.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-06-24 09:29:42 +02:00
Konstantin Schaper
d6e36e7145 implement react-query for all content views (#1708)
Implements react-query and replaces direct apiClient usage for sources, annotate and history content views.

Co-authored-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
2021-06-23 14:14:56 +02:00
René Pfeuffer
8e47238bf7 Fix language attribute of top level html tag (#1705)
Sets aka "fixes" the language attribute of the top level html tag. This was hard coded to 'en' before, what led to bad experiences with screen readers. We now set overwrite the attribute with the language from i18next.
2021-06-21 13:10:08 +02:00
CES Marvin
a80ea62d09 Prepare for next development iteration 2021-06-16 13:34:20 +00:00
CES Marvin
0fe8914f9d Release version 2.20.0 2021-06-16 13:05:07 +00:00
Eduard Heimbuch
ab2bd6d679 Fix single tag deletion (#1700)
Redirect to tags overview after a single tag was deleted to prevent error page.

Co-authored-by: Konstantin Schaper <konstantin.schaper@cloudogu.com>
2021-06-16 14:45:40 +02:00
Florian Scholdei
58a8232aa9 Uniform rendering of tooltips for repository badges (#1698)
Co-authored-by: René Pfeuffer <rene.pfeuffer@cloudogu.com>
2021-06-15 09:29:24 +02:00
CES Marvin
ce2440ad02 Prepare for next development iteration 2021-06-09 15:32:47 +00:00
CES Marvin
f415cde6be Release version 2.19.1 2021-06-09 14:55:01 +00:00
Florian Scholdei
b058764fa1 Harmonize FileInput component with styleguide (#1693) 2021-06-09 16:39:07 +02:00
Florian Scholdei
f274b7f4b2 Add handling when duplicated branch part cannot be created (#1692)
Add handling when duplicated branch cannot be created because a part of the name already exists as a branch
2021-06-09 14:58:59 +02:00
René Pfeuffer
017708fc6f Fix tag position for repos with fav star (#1691)
Fixes the position of repository tags (like 'archived')
when the extension point 'repository.afterTitle' is bound
(for example in the landing page plugin with the fav star).
2021-06-09 09:05:13 +02:00
CES Marvin
18b64023fc Prepare for next development iteration 2021-06-04 13:25:11 +00:00
CES Marvin
9c372a8df9 Release version 2.19.0 2021-06-04 12:57:19 +00:00
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
e55ba52ace Show source code controls even if a file is not present (#1680)
This fix preserves the context and shows the error in the component where normally the content of the file is displayed, so that you can still change the branch and the path.
2021-06-02 15:27:41 +02:00