Merge pull request #7115 from nixocio/ui_next_integration
UI next integration Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
2
.gitignore
vendored
@ -30,7 +30,7 @@ awx/ui/templates/ui/index.html
|
||||
awx/ui/templates/ui/installing.html
|
||||
awx/ui_next/node_modules/
|
||||
awx/ui_next/coverage/
|
||||
awx/ui_next/build/locales/_build
|
||||
awx/ui_next/build
|
||||
rsyslog.pid
|
||||
/tower-license
|
||||
/tower-license/**
|
||||
|
||||
@ -6,6 +6,8 @@ recursive-include awx/templates *.html
|
||||
recursive-include awx/api/templates *.md *.html
|
||||
recursive-include awx/ui/templates *.html
|
||||
recursive-include awx/ui/static *
|
||||
recursive-include awx/ui_next/build *.html
|
||||
recursive-include awx/ui_next/build *
|
||||
recursive-include awx/playbooks *.yml
|
||||
recursive-include awx/lib/site-packages *
|
||||
recursive-include awx/plugins *.ps1
|
||||
|
||||
27
Makefile
@ -568,14 +568,25 @@ ui-zuul-lint-and-test:
|
||||
# UI NEXT TASKS
|
||||
# --------------------------------------
|
||||
|
||||
ui-next-lint:
|
||||
awx/ui_next/node_modules:
|
||||
$(NPM_BIN) --prefix awx/ui_next install
|
||||
$(NPM_BIN) run --prefix awx/ui_next lint
|
||||
$(NPM_BIN) run --prefix awx/ui_next prettier-check
|
||||
|
||||
ui-next-test:
|
||||
$(NPM_BIN) --prefix awx/ui_next install
|
||||
$(NPM_BIN) run --prefix awx/ui_next test
|
||||
ui-release-next:
|
||||
mkdir -p awx/ui_next/build/static
|
||||
touch awx/ui_next/build/static/.placeholder
|
||||
|
||||
ui-devel-next: awx/ui_next/node_modules
|
||||
$(NPM_BIN) --prefix awx/ui_next run build
|
||||
mkdir -p awx/public/static/css
|
||||
mkdir -p awx/public/static/js
|
||||
mkdir -p awx/public/static/media
|
||||
cp -r awx/ui_next/build/static/css/* awx/public/static/css
|
||||
cp -r awx/ui_next/build/static/js/* awx/public/static/js
|
||||
cp -r awx/ui_next/build/static/media/* awx/public/static/media
|
||||
|
||||
clean-ui-next:
|
||||
rm -rf awx/ui_next/node_modules
|
||||
rm -rf awx/ui_next/build
|
||||
|
||||
ui-next-zuul-lint-and-test:
|
||||
$(NPM_BIN) --prefix awx/ui_next install
|
||||
@ -594,10 +605,10 @@ dev_build:
|
||||
release_build:
|
||||
$(PYTHON) setup.py release_build
|
||||
|
||||
dist/$(SDIST_TAR_FILE): ui-release VERSION
|
||||
dist/$(SDIST_TAR_FILE): ui-release ui-release-next VERSION
|
||||
$(PYTHON) setup.py $(SDIST_COMMAND)
|
||||
|
||||
dist/$(WHEEL_FILE): ui-release
|
||||
dist/$(WHEEL_FILE): ui-release ui-release-next
|
||||
$(PYTHON) setup.py $(WHEEL_COMMAND)
|
||||
|
||||
sdist: dist/$(SDIST_TAR_FILE)
|
||||
|
||||
@ -94,6 +94,7 @@ USE_TZ = True
|
||||
|
||||
STATICFILES_DIRS = (
|
||||
os.path.join(BASE_DIR, 'ui', 'static'),
|
||||
os.path.join(BASE_DIR, 'ui_next', 'build', 'static'),
|
||||
os.path.join(BASE_DIR, 'static'),
|
||||
)
|
||||
|
||||
@ -253,6 +254,7 @@ TEMPLATES = [
|
||||
},
|
||||
'DIRS': [
|
||||
os.path.join(BASE_DIR, 'templates'),
|
||||
os.path.join(BASE_DIR, 'ui_next', 'build'),
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB |
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 191 KiB |
|
Before Width: | Height: | Size: 114 KiB After Width: | Height: | Size: 114 KiB |
|
Before Width: | Height: | Size: 354 KiB After Width: | Height: | Size: 354 KiB |
@ -2,7 +2,7 @@ import React from 'react';
|
||||
import {
|
||||
useRouteMatch,
|
||||
useLocation,
|
||||
HashRouter,
|
||||
BrowserRouter,
|
||||
Route,
|
||||
Switch,
|
||||
Redirect,
|
||||
@ -76,7 +76,7 @@ function App() {
|
||||
}
|
||||
|
||||
export default () => (
|
||||
<HashRouter>
|
||||
<BrowserRouter basename="/next">
|
||||
<App />
|
||||
</HashRouter>
|
||||
</BrowserRouter>
|
||||
);
|
||||
|
||||
@ -66,9 +66,9 @@ describe('<AppContainer />', () => {
|
||||
|
||||
// sidebar groups and route links
|
||||
expect(wrapper.find('NavExpandableGroup').length).toBe(2);
|
||||
expect(wrapper.find('a[href="/#/foo"]').length).toBe(1);
|
||||
expect(wrapper.find('a[href="/#/bar"]').length).toBe(1);
|
||||
expect(wrapper.find('a[href="/#/fiz"]').length).toBe(1);
|
||||
expect(wrapper.find('a[href="/foo"]').length).toBe(1);
|
||||
expect(wrapper.find('a[href="/bar"]').length).toBe(1);
|
||||
expect(wrapper.find('a[href="/fiz"]').length).toBe(1);
|
||||
|
||||
expect(wrapper.find('#group_one').length).toBe(1);
|
||||
expect(wrapper.find('#group_two').length).toBe(1);
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import React, { Component } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import { withRouter } from 'react-router-dom';
|
||||
import { withRouter, Link } from 'react-router-dom';
|
||||
import { NavExpandable, NavItem } from '@patternfly/react-core';
|
||||
|
||||
class NavExpandableGroup extends Component {
|
||||
@ -41,9 +41,8 @@ class NavExpandableGroup extends Component {
|
||||
groupId={groupId}
|
||||
isActive={this.isActivePath(path)}
|
||||
key={path}
|
||||
to={`/#${path}`}
|
||||
>
|
||||
{title}
|
||||
<Link to={path}>{title}</Link>
|
||||
</NavItem>
|
||||
))}
|
||||
</NavExpandable>
|
||||
|
||||
14
awx/ui_next/urls.py
Normal file
@ -0,0 +1,14 @@
|
||||
from django.conf.urls import url
|
||||
from django.views.generic.base import TemplateView
|
||||
|
||||
|
||||
class IndexView(TemplateView):
|
||||
|
||||
template_name = 'index.html'
|
||||
|
||||
|
||||
app_name = 'ui_next'
|
||||
|
||||
urlpatterns = [
|
||||
url(r'^next/*', IndexView.as_view(), name='ui_next')
|
||||
]
|
||||
@ -14,6 +14,7 @@ from awx.main.views import (
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
url(r'', include('awx.ui_next.urls', namespace='ui_next')),
|
||||
url(r'', include('awx.ui.urls', namespace='ui')),
|
||||
url(r'^api/', include('awx.api.urls', namespace='api')),
|
||||
url(r'^sso/', include('awx.sso.urls', namespace='sso')),
|
||||
|
||||
@ -28,3 +28,4 @@ make init
|
||||
|
||||
mkdir -p /awx_devel/awx/public/static
|
||||
mkdir -p /awx_devel/awx/ui/static
|
||||
mkdir -p /awx_devel/awx/ui_next/build/static
|
||||
|
||||