Skip to content

Commit

Permalink
Analyzers UI (#14599)
Browse files Browse the repository at this point in the history
* React-specific rules.

* Analyzers view.

* Modal component for React.

* Analyzer delete functional, +notifications.

* Stable render of modal children, +AddAnalyzer form stub.

* Fixed broken modal re-open.

* Delimiter form ready.

* All forms ready.

* Removed 'Tree' mode.

* Analyzer create functional.

* Fixed stopwords/stopwordsPath mixup.

* 'Create Analyzer' form schema validation.

* Added missing fields to Text and N-Gram analyzer forms.

* Added support for copying existing analyzer to form state.

* Implemented view analyzer details.

* UX improvements.

As suggested in #14599.

* Fixed analyzer selection.

* Added UI for AQL and GeoJSON analyzers.

* Added UI for GeoPoint analyzer.

* Improved validation, +dispatcher to manage state, +form cache.

* Changed button styles to match theme.

+fixed minor bug in form field setter
+error div spacing fix.

* Removed 'pointer' cursor on text field labels.

* Added help links to locale and delimiter inputs.

* Added help text to delimiter field.

* Fix bug that caused crash in case of pre-selected analyzer being deleted.

* Fixed parsing and UI for latitude/longitude elements.

* Reusable form and grid components based on Pure.css.

* View mode now provides both JSON and (disabled) form views.

* Using relative field paths to support embeddable forms.

* Normalized accent input, +made all inputs location agnostic.

+Renamed OptionsInput.tsx to GeoOptionsInput.tsx.

* Pipeline Analyzer form functional.

* Switched to simple text display for code view.

* Use text cursor for code view mode.

* Added UIs for Stopwords, Collation and Segmentation Analyzers.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Fixed DB base URL evaluation.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Switched to Pure.css-based grid components.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Allow rw access when server is running in non-authenticated mode.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Fixed radio button rendering.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Minor UI improvements.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Fixed modal height issues, +fixed JSON form double scrollbar.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Maximized modal height for view mode.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Minor UI improvements.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Fixed null values for blank numeric inputs.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* UI improvements.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Slightly improved responsive grid.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Reusing FormState as action button prop.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Stricter type restrictions.

Signed-off-by: Aditya Mukhopadhyay <aditya@arangodb.com>

* Rebuild UI

* Update CHANGELOG

Co-authored-by: Vadim Kondratyev <vadim@arangodb.com>
  • Loading branch information
adityamukho and KVS85 committed Aug 28, 2021
1 parent 0d87895 commit 45deb5e
Show file tree
Hide file tree
Showing 98 changed files with 3,305 additions and 124 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
devel
-----

* Added "Analyzers" view to web UI to let manage ArangoSearch analyzers
creation.

* Updated ArangoDB Starter to 0.15.2-preview-1.

* Reduce internal priority of AQL execution. This prevents possible deadlocks
Expand Down
9 changes: 9 additions & 0 deletions js/.eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,15 @@
],
"parserOptions": {
"sourceType": "module"
},
"env": {
"es6": true,
"browser": true
},
"settings": {
"react": {
"version": "detect"
}
}
}
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ div.jsoneditor-tree table.jsoneditor-tree {
}

div.jsoneditor-tree div.jsoneditor-tree-inner {
padding-bottom: 300px;
padding-bottom: 0;
}

div.jsoneditor-outer {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
'replication': 'replication',
'replication/applier/:endpoint/:database': 'applier',
'collections': 'collections',
'analyzers': 'analyzers',
'new': 'newCollection',
'login': 'login',
'collection/:colid/documents/:pageid': 'documents',
Expand Down Expand Up @@ -319,6 +320,13 @@

},

analyzers: function () {
this.checkUser();

this.init.then(() => ReactDOM.render(React.createElement(window.AnalyzersReactView),
document.getElementById('content')));
},

cluster: function () {
this.checkUser();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<li class="navbar-spacer big"></li>
<!-- <li id="dbSelect" class="dropdown databases-menu disabled"></li> -->
<li class="collections-menu"><a id="collections" class="tab" href="#collections"><i class="fa fa-folder"></i>Collections</a></li>
<li class="analyzers-menu"><a id="analyzers" class="tab" href="#analyzers"><i class="fa fa-cog"></i>Analyzers</a></li>
<li class="views-menu"><a id="views" class="tab" href="#views"><i class="fa fa-eye"></i>Views</a></li>
<li class="queries-menu"><a id="queries" class="tab" href="#queries"><i class="fa fa-bolt"></i>Queries</a></li>
<li class="graphs-menu"><a id="graphs" class="tab" href="#graphs"><i class="fa fa-sitemap"></i>Graphs</a></li>
Expand All @@ -20,7 +21,7 @@
<% } %>
<% if (currentDB.get('isSystem')) { %>
<% if (!readOnly) { %>
<li class="users-menu"><a id="users" class="tab" href="#manage"><i class="fa fa-users"></i>Users</a></li>
<li class="users-menu"><a id="users" class="tab" href="#users"><i class="fa fa-users"></i>Users</a></li>
<% } %>
<% } %>
<!--
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,10 @@

resize: function () {
// set menu sizes - responsive
var height = $(window).height() - $('.subMenuEntries').first().height();
$('#navigationBar').css('min-height', height);
$('#navigationBar').css('height', height);
const height = $(window).height() - $('.subMenuEntries').first().height();
const navBar = $('#navigationBar');
navBar.css('min-height', height);
navBar.css('height', height);
},

navigateBySelect: function () {
Expand Down Expand Up @@ -199,6 +200,13 @@
active: false
}
],
analyzers: [
{
name: 'Analyzers',
route: 'analyzers',
active: true
}
],
queries: [
{
name: 'Editor',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.ace_editor {
min-height: 50vh;
}
2 changes: 2 additions & 0 deletions js/apps/system/_admin/aardvark/APP/frontend/scss/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
@import 'tabViews';
// The json editor overwrites
@import 'jsonEditor';
// The ACE editor overwrites
@import 'aceEditor';
// Pagination
@import 'pagination';
// Permissions
Expand Down
44 changes: 22 additions & 22 deletions js/apps/system/_admin/aardvark/APP/react/build/asset-manifest.json
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
{
"main.css": "static/css/main.8e55aed1.chunk.css",
"main.js": "static/js/main.a4850fc6.chunk.js",
"main.js.map": "static/js/main.a4850fc6.chunk.js.map",
"main.css": "static/css/main.b0a60b4a.chunk.css",
"main.js": "static/js/main.4a902407.chunk.js",
"main.js.map": "static/js/main.4a902407.chunk.js.map",
"runtime~main.js": "static/js/runtime~main.b7f3a89c.js",
"runtime~main.js.map": "static/js/runtime~main.b7f3a89c.js.map",
"static/css/2.1c77495a.chunk.css": "static/css/2.1c77495a.chunk.css",
"static/js/2.fbcec6a0.chunk.js": "static/js/2.fbcec6a0.chunk.js",
"static/js/2.fbcec6a0.chunk.js.map": "static/js/2.fbcec6a0.chunk.js.map",
"static/css/2.18c49180.chunk.css": "static/css/2.18c49180.chunk.css",
"static/js/2.e0e1db3f.chunk.js": "static/js/2.e0e1db3f.chunk.js",
"static/js/2.e0e1db3f.chunk.js.map": "static/js/2.e0e1db3f.chunk.js.map",
"index.html": "index.html",
"index.html.gz": "index.html.gz",
"precache-manifest.b0b0cc681362dabcb2035f8568e2e867.js": "precache-manifest.b0b0cc681362dabcb2035f8568e2e867.js",
"precache-manifest.b0b0cc681362dabcb2035f8568e2e867.js.gz": "precache-manifest.b0b0cc681362dabcb2035f8568e2e867.js.gz",
"precache-manifest.95c164715db5460471d500cc3184a2ef.js": "precache-manifest.95c164715db5460471d500cc3184a2ef.js",
"precache-manifest.95c164715db5460471d500cc3184a2ef.js.gz": "precache-manifest.95c164715db5460471d500cc3184a2ef.js.gz",
"service-worker.js": "service-worker.js",
"service-worker.js.gz": "service-worker.js.gz",
"static/css/2.1c77495a.chunk.css.gz": "static/css/2.1c77495a.chunk.css.gz",
"static/css/2.1c77495a.chunk.css.map": "static/css/2.1c77495a.chunk.css.map",
"static/css/2.1c77495a.chunk.css.map.gz": "static/css/2.1c77495a.chunk.css.map.gz",
"static/css/main.8e55aed1.chunk.css.gz": "static/css/main.8e55aed1.chunk.css.gz",
"static/css/main.8e55aed1.chunk.css.map": "static/css/main.8e55aed1.chunk.css.map",
"static/css/main.8e55aed1.chunk.css.map.gz": "static/css/main.8e55aed1.chunk.css.map.gz",
"static/js/2.fbcec6a0.chunk.js.LICENSE.txt": "static/js/2.fbcec6a0.chunk.js.LICENSE.txt",
"static/js/2.fbcec6a0.chunk.js.LICENSE.txt.gz": "static/js/2.fbcec6a0.chunk.js.LICENSE.txt.gz",
"static/js/2.fbcec6a0.chunk.js.gz": "static/js/2.fbcec6a0.chunk.js.gz",
"static/js/2.fbcec6a0.chunk.js.map.gz": "static/js/2.fbcec6a0.chunk.js.map.gz",
"static/js/main.a4850fc6.chunk.js.LICENSE.txt": "static/js/main.a4850fc6.chunk.js.LICENSE.txt",
"static/js/main.a4850fc6.chunk.js.LICENSE.txt.gz": "static/js/main.a4850fc6.chunk.js.LICENSE.txt.gz",
"static/js/main.a4850fc6.chunk.js.gz": "static/js/main.a4850fc6.chunk.js.gz",
"static/js/main.a4850fc6.chunk.js.map.gz": "static/js/main.a4850fc6.chunk.js.map.gz",
"static/css/2.18c49180.chunk.css.gz": "static/css/2.18c49180.chunk.css.gz",
"static/css/2.18c49180.chunk.css.map": "static/css/2.18c49180.chunk.css.map",
"static/css/2.18c49180.chunk.css.map.gz": "static/css/2.18c49180.chunk.css.map.gz",
"static/css/main.b0a60b4a.chunk.css.gz": "static/css/main.b0a60b4a.chunk.css.gz",
"static/css/main.b0a60b4a.chunk.css.map": "static/css/main.b0a60b4a.chunk.css.map",
"static/css/main.b0a60b4a.chunk.css.map.gz": "static/css/main.b0a60b4a.chunk.css.map.gz",
"static/js/2.e0e1db3f.chunk.js.LICENSE.txt": "static/js/2.e0e1db3f.chunk.js.LICENSE.txt",
"static/js/2.e0e1db3f.chunk.js.LICENSE.txt.gz": "static/js/2.e0e1db3f.chunk.js.LICENSE.txt.gz",
"static/js/2.e0e1db3f.chunk.js.gz": "static/js/2.e0e1db3f.chunk.js.gz",
"static/js/2.e0e1db3f.chunk.js.map.gz": "static/js/2.e0e1db3f.chunk.js.map.gz",
"static/js/main.4a902407.chunk.js.LICENSE.txt": "static/js/main.4a902407.chunk.js.LICENSE.txt",
"static/js/main.4a902407.chunk.js.LICENSE.txt.gz": "static/js/main.4a902407.chunk.js.LICENSE.txt.gz",
"static/js/main.4a902407.chunk.js.gz": "static/js/main.4a902407.chunk.js.gz",
"static/js/main.4a902407.chunk.js.map.gz": "static/js/main.4a902407.chunk.js.map.gz",
"static/js/runtime~main.b7f3a89c.js.gz": "static/js/runtime~main.b7f3a89c.js.gz",
"static/js/runtime~main.b7f3a89c.js.map.gz": "static/js/runtime~main.b7f3a89c.js.map.gz",
"static/media/style.scss": "static/media/fontawesome-webfont.e6cf7c6e.woff2",
Expand Down
2 changes: 1 addition & 1 deletion js/apps/system/_admin/aardvark/APP/react/build/index.html

Large diffs are not rendered by default.

Binary file modified js/apps/system/_admin/aardvark/APP/react/build/index.html.gz
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
self.__precacheManifest = [
{
"revision": "a4850fc6b6d62f639126",
"url": "static/css/main.8e55aed1.chunk.css"
"revision": "4a902407185559d0b5a3",
"url": "static/css/main.b0a60b4a.chunk.css"
},
{
"revision": "a4850fc6b6d62f639126",
"url": "static/js/main.a4850fc6.chunk.js"
"revision": "4a902407185559d0b5a3",
"url": "static/js/main.4a902407.chunk.js"
},
{
"revision": "b7f3a89c186b069a4989",
"url": "static/js/runtime~main.b7f3a89c.js"
},
{
"revision": "fbcec6a0da456293fa3a",
"url": "static/css/2.1c77495a.chunk.css"
"revision": "e0e1db3faf7fdbfd8e91",
"url": "static/css/2.18c49180.chunk.css"
},
{
"revision": "fbcec6a0da456293fa3a",
"url": "static/js/2.fbcec6a0.chunk.js"
"revision": "e0e1db3faf7fdbfd8e91",
"url": "static/js/2.e0e1db3f.chunk.js"
},
{
"revision": "1a30ee995c7ce5dc75b91a53ae305a06",
"url": "static/media/arangodb-edition-optimized.1a30ee99.svg"
},
{
"revision": "d961fdfabbe512d2675de09af09f598b",
"url": "static/media/jsoneditor-icons.d961fdfa.svg"
},
{
"revision": "90160575d407aa938db6f5006099dc25",
"url": "static/media/arangodb.90160575.eot"
Expand All @@ -31,18 +35,10 @@ self.__precacheManifest = [
"revision": "180b8ed9ed811c62d74be57249bcb023",
"url": "static/media/glyphicons-halflings.180b8ed9.png"
},
{
"revision": "d961fdfabbe512d2675de09af09f598b",
"url": "static/media/jsoneditor-icons.d961fdfa.svg"
},
{
"revision": "11bbcff6f99be028bf04e2e200299b31",
"url": "static/media/OpenSansLight.11bbcff6.woff"
},
{
"revision": "f71094988de2d6567eb9caba78f61041",
"url": "static/media/OpenSans.f7109498.woff"
},
{
"revision": "2af7a71056d6f2fe2cb2e35c358b59de",
"url": "static/media/OpenSansBold.2af7a710.woff"
Expand All @@ -55,6 +51,10 @@ self.__precacheManifest = [
"revision": "403dee4359ca42b1d096976fda3ef95c",
"url": "static/media/OpenSansItalic.403dee43.woff"
},
{
"revision": "f71094988de2d6567eb9caba78f61041",
"url": "static/media/OpenSans.f7109498.woff"
},
{
"revision": "84b1d9bb65b585d4b4a72ee9cefb2ac2",
"url": "static/media/OpenSansBoldItalic.84b1d9bb.woff"
Expand All @@ -79,6 +79,10 @@ self.__precacheManifest = [
"revision": "c3547b2ec6f5eb324b44d8a0c6b2dd31",
"url": "static/media/Roboto-300.c3547b2e.eot"
},
{
"revision": "d7c639084f684d66a1bc66855d193ed8",
"url": "static/media/fontawesome-webfont.d7c63908.svg"
},
{
"revision": "16a9467557c38b4e1b19e981bd17fe3f",
"url": "static/media/Roboto-300.16a94675.woff2"
Expand All @@ -91,21 +95,13 @@ self.__precacheManifest = [
"revision": "634f53eb79efa455a9e9d85d608b3447",
"url": "static/media/Roboto-300.634f53eb.ttf"
},
{
"revision": "9f916e330c478bbfa2a0dd6614042046",
"url": "static/media/Roboto-regular.9f916e33.eot"
},
{
"revision": "d7c639084f684d66a1bc66855d193ed8",
"url": "static/media/fontawesome-webfont.d7c63908.svg"
},
{
"revision": "f84cb1bf9be983133497000554605b4d",
"url": "static/media/Roboto-regular.f84cb1bf.woff2"
},
{
"revision": "f94d5e5102359961c44a1da1b58d37c9",
"url": "static/media/Roboto-regular.f94d5e51.woff"
"revision": "9f916e330c478bbfa2a0dd6614042046",
"url": "static/media/Roboto-regular.9f916e33.eot"
},
{
"revision": "38861cba61c66739c1452c3a71e39852",
Expand All @@ -119,34 +115,38 @@ self.__precacheManifest = [
"revision": "1afbee5a09a022fe0287f16e9a48da1f",
"url": "static/media/Roboto-500.1afbee5a.woff2"
},
{
"revision": "88f29ea5a372d06f521395134f62ab91",
"url": "static/media/Roboto-500.88f29ea5.ttf"
},
{
"revision": "2a52a20f9a56010ec5d985abe9bebcc9",
"url": "static/media/Roboto-500.2a52a20f.eot"
},
{
"revision": "1edaa6e50c2302bf0221d252e1caebb4",
"url": "static/media/Roboto-300.1edaa6e5.svg"
"revision": "0f3b7101a8adc1afe1fbe89775553c32",
"url": "static/media/Roboto-500.0f3b7101.woff"
},
{
"revision": "f1d811cdfaea49c969500d4bbe52251b",
"url": "static/media/Roboto-500.f1d811cd.svg"
"revision": "88f29ea5a372d06f521395134f62ab91",
"url": "static/media/Roboto-500.88f29ea5.ttf"
},
{
"revision": "0f3b7101a8adc1afe1fbe89775553c32",
"url": "static/media/Roboto-500.0f3b7101.woff"
"revision": "f1d811cdfaea49c969500d4bbe52251b",
"url": "static/media/Roboto-500.f1d811cd.svg"
},
{
"revision": "128879da78c6c8eb4e2c07fa3732cea7",
"url": "static/media/Roboto-700.128879da.eot"
},
{
"revision": "1edaa6e50c2302bf0221d252e1caebb4",
"url": "static/media/Roboto-300.1edaa6e5.svg"
},
{
"revision": "3b38c16e4b39e5fd4017cd5055b0d505",
"url": "static/media/Roboto-700.3b38c16e.woff2"
},
{
"revision": "ad97d029a11d8b39692037e753d23d1f",
"url": "static/media/Roboto-700.ad97d029.ttf"
},
{
"revision": "43183beef21370d8a4b0d64152287eba",
"url": "static/media/Roboto-700.43183bee.woff"
Expand All @@ -156,8 +156,8 @@ self.__precacheManifest = [
"url": "static/media/Roboto-700.7f57c4c0.svg"
},
{
"revision": "ad97d029a11d8b39692037e753d23d1f",
"url": "static/media/Roboto-700.ad97d029.ttf"
"revision": "f94d5e5102359961c44a1da1b58d37c9",
"url": "static/media/Roboto-regular.f94d5e51.woff"
},
{
"revision": "be6a1f63d6f3220ece77a887f0046a26",
Expand All @@ -181,14 +181,14 @@ self.__precacheManifest = [
},
{
"revision": "6f627a0f557156e94eefe1aa36b7648f",
"url": "static/js/main.a4850fc6.chunk.js.LICENSE.txt"
"url": "static/js/main.4a902407.chunk.js.LICENSE.txt"
},
{
"revision": "7243f9b91ab925c4342cac459b053075",
"url": "static/js/2.fbcec6a0.chunk.js.LICENSE.txt"
"revision": "abe37e58ad7304ac71693623f6f54c01",
"url": "static/js/2.e0e1db3f.chunk.js.LICENSE.txt"
},
{
"revision": "5aeb0403110c546049e5851acd6d8eaa",
"revision": "e18317e2961c45b7d569cb71abfc214d",
"url": "index.html"
}
];
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
importScripts("https://storage.googleapis.com/workbox-cdn/releases/3.6.3/workbox-sw.js");

importScripts(
"precache-manifest.b0b0cc681362dabcb2035f8568e2e867.js"
"precache-manifest.95c164715db5460471d500cc3184a2ef.js"
);

workbox.clientsClaim();
Expand Down
Binary file not shown.

Large diffs are not rendered by default.

Binary file not shown.

Large diffs are not rendered by default.

Binary file not shown.

This file was deleted.

Binary file not shown.
Loading

0 comments on commit 45deb5e

Please sign in to comment.