Skip to content

Commit

Permalink
comments #1
Browse files Browse the repository at this point in the history
  • Loading branch information
jhadvig committed Jun 18, 2018
1 parent 62cfb7f commit 1906a96
Show file tree
Hide file tree
Showing 13 changed files with 249 additions and 253 deletions.
7 changes: 6 additions & 1 deletion frontend/integration-tests/tests/crud.scenario.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,12 @@ describe('Kubernetes resource CRUD operations', () => {
}

it('displays a YAML editor for creating a new resource instance', async() => {
await crudView.createYAMLButton.click();
if (kind === 'Secret') {
await crudView.createItemButton.click();
await crudView.createYAMLLink.click();
} else {
await crudView.createYAMLButton.click();
}
await yamlView.isLoaded();

const content = await yamlView.editorContent.getText();
Expand Down
2 changes: 2 additions & 0 deletions frontend/integration-tests/views/crud.view.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { $, $$, browser, ExpectedConditions as until } from 'protractor';

export const createYAMLButton = $('#yaml-create');
export const createItemButton = $('#item-create');
export const createYAMLLink = $('#item-create');

/**
* Returns a promise that resolves after the loading spinner is not present.
Expand Down
7 changes: 2 additions & 5 deletions frontend/public/components/app.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import { Nav } from './nav';
import { ProfilePage } from './profile';
import { ResourceDetailsPage, ResourceListPage } from './resource-list';
import { CopyRoleBinding, CreateRoleBinding, EditRoleBinding, EditRulePage } from './RBAC';
import { CreateSecret, EditSecret, CopySecret } from './secrets/create-secret';
import { CreateSecret, EditSecret } from './secrets/create-secret';
import { StartGuidePage } from './start-guide';
import { SearchPage } from './search';
import { history, AsyncComponent, Loading } from './utils';
Expand Down Expand Up @@ -176,12 +176,9 @@ class App extends React.PureComponent {
<Route path="/k8s/ns/:ns/roles/:name/:rule/edit" exact component={EditRulePage} />
<Route path="/k8s/ns/:ns/roles" exact component={rolesListPage} />

<Route path="/k8s/cluster/secrets/new/:type" exact component={props => <CreateSecret {...props} kind="Secret" />} />
<Route path="/k8s/ns/:ns/secrets/new/:type" exact component={props => <CreateSecret {...props} kind="Secret" />} />
<Route path="/k8s/cluster/secrets/:name/edit" exact component={props => <EditSecret {...props} kind="Secret" />} />
<Route path="/k8s/ns/:ns/secrets/:name/edit" exact component={props => <EditSecret {...props} kind="Secret" />} />
<Route path="/k8s/cluster/secrets/:name/copy" exact component={props => <CopySecret {...props} kind="Secret" />} />
<Route path="/k8s/ns/:ns/secrets/:name/copy" exact component={props => <CopySecret {...props} kind="Secret" />} />
<Route path="/k8s/ns/:ns/secrets/:name/edit-yaml" exact component={props => <EditYAMLPage {...props} kind="Secret" />} />

<Route path="/k8s/cluster/rolebindings/new" exact component={props => <CreateRoleBinding {...props} kind="RoleBinding" />} />
<Route path="/k8s/ns/:ns/rolebindings/new" exact component={props => <CreateRoleBinding {...props} kind="RoleBinding" />} />
Expand Down
17 changes: 3 additions & 14 deletions frontend/public/components/factory/list-page.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@ FireMan_.propTypes = {
/** @type {React.SFC<{ListComponent: React.ComponentType<any>, kind: string, namespace?: string, filterLabel?: string, title?: string, showTitle?: boolean, dropdownFilters?: any[], rowFilters?: any[], selector?: string, fieldSelector?: string, canCreate?: boolean, createButtonText?: string, createProps?: any, fake?: boolean}>} */
export const ListPage = props => {
const {createButtonText, createHandler, filterLabel, kind, namespace, selector, name, fieldSelector, filters, limit, showTitle = true, fake} = props;
let { createProps } = props;
const ko = kindObj(kind);
const {labelPlural, plural, namespaced, label} = ko;
const title = props.title || labelPlural;
Expand All @@ -246,20 +247,8 @@ export const ListPage = props => {
href = namespaced ? `/k8s/ns/${namespace || 'default'}/${ref}/new` : `/k8s/cluster/${ref}/new`;
} catch (unused) { /**/ }
}
// const createProps = createHandler ? {onClick: createHandler} : {to: href};
let createProps;
if (_.isFunction(createHandler)) {
createProps = {onClick: createHandler};
} else if (_.isObject(createHandler)) {
createProps = {
items: createHandler,
createLink(param) {
return param === 'yaml' ? href : `${href}/${param}`;
}
};
} else {
createProps = {to: href};
}

createProps = createProps || (createHandler ? {onClick: createHandler} : {to: href});
const resources = [{ kind, name, namespaced, selector, fieldSelector, filters, limit }];

if (!namespaced && namespace) {
Expand Down
35 changes: 23 additions & 12 deletions frontend/public/components/secret.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,19 @@ data:
username: YWRtaW4=
password: MWYyZDFlMmU2N2Rm`);

const editInYaml = obj => {
if (obj.type === 'Opaque' && _.has(obj.data, 'WebHookSecretKey') && Object.keys(obj.data).length === 1) {
return false;
}
return true;
};

const menuActions = [
Cog.factory.ModifyLabels,
Cog.factory.ModifyAnnotations,
(kind, obj) => ({
label: `Duplicate ${kind.label}...`,
href: `${resourceObjPath(obj, kind.kind)}/copy`,
}),
(kind, obj) => ({
label: `Edit ${kind.label}...`,
href: `${resourceObjPath(obj, kind.kind)}/edit`,
href: editInYaml(obj) ? `${resourceObjPath(obj, kind.kind)}/edit-yaml` : `${resourceObjPath(obj, kind.kind)}/edit`,
}),
Cog.factory.Delete,
];
Expand Down Expand Up @@ -87,15 +90,23 @@ const filters = [{
],
}];

const createItems = {
// source: 'Create Source Secret',
// image: 'Create Image Pull Secret',
// generic: 'Create Key/Value Secret',
webhook: 'Webhook Secret',
yaml: 'Secret from YAML',
const SecretsPage = props => {
const createItems = {
// source: 'Create Source Secret',
// image: 'Create Image Pull Secret',
// generic: 'Create Key/Value Secret',
webhook: 'Webhook Secret',
yaml: 'Secret from YAML',
};

const createProps = {
items: createItems,
createLink: (type) => `/k8s/ns/${props.namespace}/secrets/new/${type !== 'yaml' ? type : ''}`
};

return <ListPage ListComponent={SecretsList} canCreate={true} rowFilters={filters} createButtonText="Create" createProps={createProps} {...props} />;
};

const SecretsPage = props => <ListPage ListComponent={SecretsList} canCreate={true} rowFilters={filters} createButtonText="Create" createHandler={createItems} {...props} />;

const SecretsDetailsPage = props => <DetailsPage
{...props}
Expand Down
4 changes: 0 additions & 4 deletions frontend/public/components/secret.scss

This file was deleted.

163 changes: 0 additions & 163 deletions frontend/public/components/secrets/create-secret.jsx

This file was deleted.

0 comments on commit 1906a96

Please sign in to comment.