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/templates/ui/installing.html
|
||||||
awx/ui_next/node_modules/
|
awx/ui_next/node_modules/
|
||||||
awx/ui_next/coverage/
|
awx/ui_next/coverage/
|
||||||
awx/ui_next/build/locales/_build
|
awx/ui_next/build
|
||||||
rsyslog.pid
|
rsyslog.pid
|
||||||
/tower-license
|
/tower-license
|
||||||
/tower-license/**
|
/tower-license/**
|
||||||
|
|||||||
@ -6,6 +6,8 @@ recursive-include awx/templates *.html
|
|||||||
recursive-include awx/api/templates *.md *.html
|
recursive-include awx/api/templates *.md *.html
|
||||||
recursive-include awx/ui/templates *.html
|
recursive-include awx/ui/templates *.html
|
||||||
recursive-include awx/ui/static *
|
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/playbooks *.yml
|
||||||
recursive-include awx/lib/site-packages *
|
recursive-include awx/lib/site-packages *
|
||||||
recursive-include awx/plugins *.ps1
|
recursive-include awx/plugins *.ps1
|
||||||
|
|||||||
27
Makefile
@ -568,14 +568,25 @@ ui-zuul-lint-and-test:
|
|||||||
# UI NEXT TASKS
|
# UI NEXT TASKS
|
||||||
# --------------------------------------
|
# --------------------------------------
|
||||||
|
|
||||||
ui-next-lint:
|
awx/ui_next/node_modules:
|
||||||
$(NPM_BIN) --prefix awx/ui_next install
|
$(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:
|
ui-release-next:
|
||||||
$(NPM_BIN) --prefix awx/ui_next install
|
mkdir -p awx/ui_next/build/static
|
||||||
$(NPM_BIN) run --prefix awx/ui_next test
|
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:
|
ui-next-zuul-lint-and-test:
|
||||||
$(NPM_BIN) --prefix awx/ui_next install
|
$(NPM_BIN) --prefix awx/ui_next install
|
||||||
@ -594,10 +605,10 @@ dev_build:
|
|||||||
release_build:
|
release_build:
|
||||||
$(PYTHON) setup.py 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)
|
$(PYTHON) setup.py $(SDIST_COMMAND)
|
||||||
|
|
||||||
dist/$(WHEEL_FILE): ui-release
|
dist/$(WHEEL_FILE): ui-release ui-release-next
|
||||||
$(PYTHON) setup.py $(WHEEL_COMMAND)
|
$(PYTHON) setup.py $(WHEEL_COMMAND)
|
||||||
|
|
||||||
sdist: dist/$(SDIST_TAR_FILE)
|
sdist: dist/$(SDIST_TAR_FILE)
|
||||||
|
|||||||
@ -94,6 +94,7 @@ USE_TZ = True
|
|||||||
|
|
||||||
STATICFILES_DIRS = (
|
STATICFILES_DIRS = (
|
||||||
os.path.join(BASE_DIR, 'ui', 'static'),
|
os.path.join(BASE_DIR, 'ui', 'static'),
|
||||||
|
os.path.join(BASE_DIR, 'ui_next', 'build', 'static'),
|
||||||
os.path.join(BASE_DIR, 'static'),
|
os.path.join(BASE_DIR, 'static'),
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -253,6 +254,7 @@ TEMPLATES = [
|
|||||||
},
|
},
|
||||||
'DIRS': [
|
'DIRS': [
|
||||||
os.path.join(BASE_DIR, 'templates'),
|
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 {
|
import {
|
||||||
useRouteMatch,
|
useRouteMatch,
|
||||||
useLocation,
|
useLocation,
|
||||||
HashRouter,
|
BrowserRouter,
|
||||||
Route,
|
Route,
|
||||||
Switch,
|
Switch,
|
||||||
Redirect,
|
Redirect,
|
||||||
@ -76,7 +76,7 @@ function App() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export default () => (
|
export default () => (
|
||||||
<HashRouter>
|
<BrowserRouter basename="/next">
|
||||||
<App />
|
<App />
|
||||||
</HashRouter>
|
</BrowserRouter>
|
||||||
);
|
);
|
||||||
|
|||||||
@ -66,9 +66,9 @@ describe('<AppContainer />', () => {
|
|||||||
|
|
||||||
// sidebar groups and route links
|
// sidebar groups and route links
|
||||||
expect(wrapper.find('NavExpandableGroup').length).toBe(2);
|
expect(wrapper.find('NavExpandableGroup').length).toBe(2);
|
||||||
expect(wrapper.find('a[href="/#/foo"]').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="/bar"]').length).toBe(1);
|
||||||
expect(wrapper.find('a[href="/#/fiz"]').length).toBe(1);
|
expect(wrapper.find('a[href="/fiz"]').length).toBe(1);
|
||||||
|
|
||||||
expect(wrapper.find('#group_one').length).toBe(1);
|
expect(wrapper.find('#group_one').length).toBe(1);
|
||||||
expect(wrapper.find('#group_two').length).toBe(1);
|
expect(wrapper.find('#group_two').length).toBe(1);
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
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';
|
import { NavExpandable, NavItem } from '@patternfly/react-core';
|
||||||
|
|
||||||
class NavExpandableGroup extends Component {
|
class NavExpandableGroup extends Component {
|
||||||
@ -41,9 +41,8 @@ class NavExpandableGroup extends Component {
|
|||||||
groupId={groupId}
|
groupId={groupId}
|
||||||
isActive={this.isActivePath(path)}
|
isActive={this.isActivePath(path)}
|
||||||
key={path}
|
key={path}
|
||||||
to={`/#${path}`}
|
|
||||||
>
|
>
|
||||||
{title}
|
<Link to={path}>{title}</Link>
|
||||||
</NavItem>
|
</NavItem>
|
||||||
))}
|
))}
|
||||||
</NavExpandable>
|
</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 = [
|
urlpatterns = [
|
||||||
|
url(r'', include('awx.ui_next.urls', namespace='ui_next')),
|
||||||
url(r'', include('awx.ui.urls', namespace='ui')),
|
url(r'', include('awx.ui.urls', namespace='ui')),
|
||||||
url(r'^api/', include('awx.api.urls', namespace='api')),
|
url(r'^api/', include('awx.api.urls', namespace='api')),
|
||||||
url(r'^sso/', include('awx.sso.urls', namespace='sso')),
|
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/public/static
|
||||||
mkdir -p /awx_devel/awx/ui/static
|
mkdir -p /awx_devel/awx/ui/static
|
||||||
|
mkdir -p /awx_devel/awx/ui_next/build/static
|
||||||
|
|||||||