[KEYCLOAK-8060] - Initial pages and components for My Resource

This commit is contained in:
Pedro Igor 2019-05-17 18:48:34 -03:00
parent c77c061b47
commit 6e7b08e3e3
14 changed files with 294 additions and 795 deletions

View file

@ -0,0 +1,126 @@
/*
* Copyright 2018 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import * as React from 'react';
import {ShareResourceModal} from "./ShareResourceModal";
export interface DataTableState {
toggleActions: boolean
}
export interface DataTableProps {
data: any[]
headers: any[]
}
export class DataTable extends React.Component<DataTableProps, DataTableState> {
constructor(props: DataTableProps, shareModal: ShareResourceModal) {
super(props);
this.state = {toggleActions: false}
}
render(): React.ReactNode {
return (
<table className="pf-c-table pf-m-grid-xl" role="grid" id="simple-table-demo">
<thead>
{this.getHeaders()}
</thead>
<tbody>
{this.getRows()}
</tbody>
</table>
);
}
Actions = () => (
<div className="pf-c-dropdown">
<button className="pf-c-dropdown__toggle pf-m-plain"
id="simple-table-demo-dropdown-kebab-right-aligned-1-button"
aria-expanded="false" aria-label="Actions" onClick={this.toggleResourceActions}>
<i className="fas fa-ellipsis-v" aria-hidden="true"></i>
</button>
{this.state.toggleActions &&
<ul className="pf-c-dropdown__menu pf-m-align-right"
aria-labelledby="simple-table-demo-dropdown-kebab-right-aligned-1-button">
<li><a className="pf-c-dropdown__menu-item" href="#">Link</a></li>
<li>
<button className="pf-c-dropdown__menu-item">Action</button>
</li>
<li><a className="pf-c-dropdown__menu-item pf-m-disabled" aria-disabled="true"
href="#">Disabled Link</a></li>
<li>
<button className="pf-c-dropdown__menu-item" disabled>Disabled Action
</button>
</li>
<li className="pf-c-dropdown__separator" role="separator"></li>
<li><a className="pf-c-dropdown__menu-item" href="#">Separated Link</a></li>
</ul>
}
</div>
)
Share = (resource: any) => (
<ShareResourceModal resource={resource}/>
)
private toggleResourceActions = (): void => {
this.setState(({
toggleActions: !this.state.toggleActions
}));
}
private getHeaders() {
var headers = [];
let columns = [];
for (let i = 0; i < this.props.headers.length; i++) {
columns.push(<th scope="col">{this.props.headers[i]}</th>)
}
columns.push(<th scope="col"></th>)
headers.push(<tr key={0}>{columns}</tr>)
return headers;
}
private getRows() {
var rows = [];
for (let i = 0; i < this.props.data.length; i++) {
let columns = [];
for (let j = 0; j < this.props.data[i].length; j++) {
columns.push(<td style={{fontSize: 14}}>{this.props.data[i][j]}</td>)
}
columns.push(<td className="pf-c-table__action">
<div className="pf-c-toolbar__action-group">
{this.Share(this.props.data[i])}
<this.Actions/>
</div>
</td>)
rows.push(<tr key={i}>{columns}</tr>)
}
return rows;
}
}
const styles = {
rowFontSize: 14
}

View file

@ -1,4 +1,4 @@
/*
/*
* Copyright 2018 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@ -15,21 +15,76 @@
*/
import * as React from 'react';
import {Tab, Tabs, TextInput, Modal, Button } from '@patternfly/react-core';
import {DataTable} from './DataTable';
import {ContentPage} from '../ContentPage';
import {Msg} from '../../widgets/Msg';
export interface MyResourcesPageProps {
}
export class MyResourcesPage extends React.Component<MyResourcesPageProps> {
public constructor(props: MyResourcesPageProps) {
export interface MyResourcesPageState {
activeTabKey: number;
isModalOpen: boolean;
}
export class MyResourcesPage extends React.Component<MyResourcesPageProps, MyResourcesPageState> {
constructor(props: MyResourcesPageProps) {
super(props);
this.state = {
activeTabKey: 0,
isModalOpen: false
};
}
public render(): React.ReactNode {
render(): React.ReactNode {
return (
<div>
<h2>Hello My Resources Page</h2>
</div>
<ContentPage title="resources">
<Tabs isFilled activeKey={this.state.activeTabKey} onSelect={this.handleTabClick}>
<Tab eventKey={0} title={Msg.localize('myResources')}>
<TextInput type="text" placeholder={Msg.localize('filterByName')} style={styles.filters}/>
<DataTable data={this.fetchResources()} headers={["Resource", "Application", "Date", "Shared With"]}/>
</Tab>
<Tab eventKey={1} title={Msg.localize('sharedwithMe')}>
<TextInput type="text" placeholder={Msg.localize('filterByName')} style={styles.filters}/>
<DataTable data={this.fetchResourcesSharedWithMe()} headers={["Resource", "Application", "Date", "Shared With"]}/>
</Tab>
</Tabs>
</ContentPage>
);
}
};
private fetchResources() {
let resources = [];
for (let i = 0; i < 5; i++) {
resources.push(["Alice Family " + i, "photoz-restful-api", "12:00 AM", <span><i className="fas fa-share-alt"></i> +5</span>]);
}
return resources;
}
private fetchResourcesSharedWithMe() {
let resources = [];
for (let i = 0; i < 5; i++) {
resources.push(["Alice Family " + i, "John", "photoz-restful-api", "Read, Write, Execute"]);
}
return resources;
}
handleTabClick = (event: any, tabIndex: number) => {
this.setState({
activeTabKey: tabIndex
});
};
};
const styles: any = {
filters: {
width: 200,
fontSize: 13
}
}

View file

@ -0,0 +1,81 @@
/*
* Copyright 2018 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import * as React from 'react';
import {Button, Form, FormGroup, Modal, TextInput} from '@patternfly/react-core';
import {Msg} from "../../widgets/Msg";
export interface ShareResourceModalState {
isModalOpen: boolean
}
export interface ShareResourceModalProps {
resource: any;
}
export class ShareResourceModal extends React.Component<ShareResourceModalProps, ShareResourceModalState> {
constructor(props: ShareResourceModalProps) {
super(props);
this.state = {isModalOpen: false}
}
render(): React.ReactNode {
return (
<React.Fragment>
<button className="pf-c-button pf-m-tertiary" onClick={this.handleModalToggle}>
Share
</button>
<Modal
isSmall
title={"Share the resource " + this.props.resource[0]}
isOpen={this.state.isModalOpen}
actions={[
<Button key="cancel" variant="secondary" onClick={this.handleModalToggle}>
<Msg msgKey="doCancel"/>
</Button>,
<Button key="confirm" variant="primary" onClick={this.handleModalToggle}>
<Msg msgKey="share"/>
</Button>
]}>
<section className="pf-c-page__main-section">
<Form>
<FormGroup
label="Add people to share your resource with"
isRequired
fieldId="simple-form-name"
>
<TextInput
isRequired
type="text"
id="simple-form-name"
name="simple-form-name"
aria-describedby="simple-form-name-helper"
/>
</FormGroup>
</Form>
</section>
</Modal>
</React.Fragment>
);
}
handleModalToggle = () => {
this.setState(({isModalOpen}) => ({
isModalOpen: !isModalOpen
}));
};
}

View file

@ -1,290 +0,0 @@
<ol class="breadcrumb" id="breadcrumbs">
<li><a href="#"> {{'resources' | translate}}</a>
</li>
<li class="active"> <strong>Alice Family</strong>
</li>
</ol>
<div class="col-sm-12 card-pf resources-list">
<div class="resources-header">
<span class="fa fa-file"></span>
<h1>Alice Family</h1>
<div class="resources-actions">
<button class="btn btn-primary"><span class="fa fa-share"></span> {{'share' | translate}}</button>
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#"> {{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="resources-info">
<span>Access management</span>
<span><label> {{'application' | translate}}:</label> <a href="#">photoz-rest-api</a> </span>
<span><label> {{'owner' | translate}}:</label> Roma William (you</span>
</div>
</div>
<div class="card-pf-body row">
<div class="m-t">
<div id="pf-list-var3" class="list-group list-view-pf list-view-resources list-view-detail">
<div class="list-group-item pfng-list-heading list-view-pf-stacked list-view-pf-top-align margin-bottom-none">
<div class="list-view-pf-actions list-view-master-actions">
<button class="btn btn-default"> {{'approveAll' | translate}}</button>
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#"> {{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
{{'sharedwith' | translate}} 3 {{'people' | translate}}
</div>
<div class="col-md-4 list-head-label">
{{'accessPermissions' | translate}}
</div>
<div class="col-md-4 list-head-label">
{{'permissionRequests' | translate}}
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<button class="btn btn-default"> {{'approve' | translate}}</button>
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#"> {{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
Tom Liu
<small>jhonsmith@paternfly.com</small>
</div>
<div class="col-md-4">
Read, Battery, Test-date, Status
</div>
<div class="col-md-4 permission-requests-labels ">
<ul class="list-inline">
<li>
<span class="label label-info">
Status
<a href="#"><span class="pficon pficon-close"></span></a>
</span>
</li>
<li>
<span class="label label-info">
Time
<a href="#"><span class="pficon pficon-close"></span></a>
</span>
</li>
<li>
<span class="label label-info">
Beta
<a href="#"><span class="pficon pficon-close"></span></a>
</span>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<button class="btn btn-default"> {{'approve' | translate}}</button>
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#"> {{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
Martin Liu
<small>mar@paternfly.com</small>
</div>
<div class="col-md-4">
Read, Battery, Test-date
</div>
<div class="col-md-4 permission-requests-labels ">
<ul class="list-inline">
<li>
<span class="label label-info">
Status
<a href="#"><span class="pficon pficon-close"></span></a>
</span>
</li>
<li>
<span class="label label-info">
Time
<a href="#"><span class="pficon pficon-close"></span></a>
</span>
</li>
<li>
<span class="label label-info">
Beta
<a href="#"><span class="pficon pficon-close"></span></a>
</span>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#"> {{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
Jhon Smith
<small>jhonsmith@paternfly.com</small>
</div>
<div class="col-md-4">
Read, Battery
</div>
<div class="col-md-4 permission-requests-labels ">
</div>
</div>
</div>
</div>
<form class="content-view-pf-pagination table-view-pf-pagination clearfix" id="pagination1">
<div class="form-group">
<select class="selectpicker pagination-pf-pagesize">
<option value="6">6</option>
<option value="10" >10</option>
<option value="15" selected="selected">15</option>
<option value="25">25</option>
<option value="50">50</option>
</select>
<span> {{'perPage' | translate}}</span>
</div>
<div class="form-group">
<span><span class="pagination-pf-items-current">1-15</span> of <span class="pagination-pf-items-total">75</span></span>
<ul class="pagination pagination-pf-back">
<li class="disabled"><a href="#" title="First Page"><span class="i fa fa-angle-double-left"></span></a></li>
<li class="disabled"><a href="#" title="Previous Page"><span class="i fa fa-angle-left"></span></a></li>
</ul>
<label for="pagination1-page" class="sr-only"> {{'currentPage' | translate}}</label>
<input class="pagination-pf-page" type="text" value="1" id="pagination1-page"/>
<span>of <span class="pagination-pf-pages">5</span></span>
<ul class="pagination pagination-pf-forward">
<li><a href="#" title="Next Page"><span class="i fa fa-angle-right"></span></a></li>
<li><a href="#" title="Last Page"><span class="i fa fa-angle-double-right"></span></a></li>
</ul>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel"> {{'sharetheResource' | translate}} -<span> Alice Family </span></h4>
</div>
<div class="modal-body">
<ul id="myTab" class="nav nav-tabs">
<li class="active">
<a href="#home" data-toggle="tab">
<span class="fa fa-user"></span> {{'user' | translate}}
</a>
</li>
<li>
<a href="#team" data-toggle="tab">
<span class="fa fa-users"></span> {{'group' | translate}}
</a>
</li>
</ul>
<div id="myTabContent" class="tab-content resource-share-content">
<div class="tab-pane fade in active" id="home">
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-12" for="textInput-modal-markup">{{'addPeople' | translate}}</label>
<div class="col-sm-12">
<input type="text" id="textInput-modal-markup" class="form-control" placeholder="Username or email">
</div>
</div>
<div class="form-group">
<label class="col-md-12" for="boostrapSelect">{{'selectPermission' | translate}}</label>
<div class="col-md-12">
<select class="selectpicker" multiple data-selected-text-format="count>3" id="boostrapSelect">
<option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
<option>Onions</option>
<option>Mushrooms</option>
<option>Pickles</option>
<option>Mayonnaise</option>
</select>
</div>
</div>
</form>
</div>
<div class="tab-pane fade" id="team">
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-12" for="textInput-modal-markup">{{'addTeam' | translate}}</label>
<div class="col-sm-12">
<input type="text" id="textInput-modal-markup" class="form-control" placeholder="Team name">
</div>
</div>
<div class="form-group">
<label class="col-md-12" for="boostrapSelect">{{'selectPermission' | translate}}</label>
<div class="col-md-12">
<select class="selectpicker" multiple data-selected-text-format="count>3" id="boostrapSelect">
<option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
<option>Onions</option>
<option>Mushrooms</option>
<option>Pickles</option>
<option>Mayonnaise</option>
</select>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Done</button>
<button type="button" class="btn btn-primary">Cancel</button>
</div>
</div>
</div>
</div>
<!-- End Modal -->

View file

@ -1,233 +0,0 @@
<div class="page-header">
<h1 id="pageTitle">{{'resources' | translate}}</h1>
</div>
<div class="col-sm-12 card-pf resources-list">
<div class="card-pf-body row">
<ul class="nav nav-tabs">
<li class="active"><a href="#">{{'myResources' | translate}}</a></li>
<li><a href="#">{{'sharedwithMe' | translate}}</a></li>
</ul>
<div class="m-t">
<div id="pf-list-var3" class="list-group list-view-pf list-view-resources">
<div class="list-group-item pfng-list-heading list-head-labels list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="col-md-4">
{{'resource' | translate}}
</div>
<div class="col-md-3">
{{'application' | translate}}
</div>
<div class="col-md-3">
{{'date' | translate}}
</div>
<div class="col-md-2">
{{'sharedwith' | translate}}
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<button class="btn btn-default" data-toggle="modal" data-target="#myModal">{{'share' | translate}}</button>
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#">{{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="col-md-4 list-group-item-heading">
<span class="fa fa-file"></span> <a href="#">Alice Family</a>
</div>
<div class="col-md-3">
<a href="#">photoz-rest-api</a>
</div>
<div class="col-md-3">
2018/05/15 16:32
</div>
<div class="col-md-2">
<label class="resource-list-label">{{'sharedwith' | translate}}</label> <a href="#"> 3 {{'people' | translate}}</a>
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<button class="btn btn-default" data-toggle="modal" data-target="#myModal">{{'share' | translate}}</button>
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#">{{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="col-md-4 list-group-item-heading">
<span class="fa fa-file"></span> <a href="#">Patternfly 4</a>
</div>
<div class="col-md-3">
<a href="#">photoz-rest</a>
</div>
<div class="col-md-3">
2018/05/15 12:32
</div>
<div class="col-md-2">
<label class="resource-list-label">{{'sharedwith' | translate}}</label> <a href="#"> 12 {{'people' | translate}}</a>
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<button class="btn btn-default" data-toggle="modal" data-target="#myModal">{{'share' | translate}}</button>
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#">{{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="col-md-4 list-group-item-heading">
<span class="fa fa-file"></span> <a href="#">Patternfly document update</a>
</div>
<div class="col-md-3">
<a href="#">photoz-rest-api</a>
</div>
<div class="col-md-3">
2018/05/10 11:32
</div>
<div class="col-md-2">
<label class="resource-list-label">{{'sharedwith' | translate}}</label> <a href="#"> 8 {{'people' | translate}}</a>
</div>
</div>
</div>
</div>
<form class="content-view-pf-pagination table-view-pf-pagination clearfix" id="pagination1">
<div class="form-group">
<select class="selectpicker pagination-pf-pagesize">
<option value="6">6</option>
<option value="10" >10</option>
<option value="15" selected="selected">15</option>
<option value="25">25</option>
<option value="50">50</option>
</select>
<span>{{'perPage' | translate}}</span>
</div>
<div class="form-group">
<span><span class="pagination-pf-items-current">1-15</span> of <span class="pagination-pf-items-total">75</span></span>
<ul class="pagination pagination-pf-back">
<li class="disabled"><a href="#" title="First Page"><span class="i fa fa-angle-double-left"></span></a></li>
<li class="disabled"><a href="#" title="Previous Page"><span class="i fa fa-angle-left"></span></a></li>
</ul>
<label for="pagination1-page" class="sr-only">{{'currentPage' | translate}}</label>
<input class="pagination-pf-page" type="text" value="1" id="pagination1-page"/>
<span>of <span class="pagination-pf-pages">5</span></span>
<ul class="pagination pagination-pf-forward">
<li><a href="#" title="Next Page"><span class="i fa fa-angle-right"></span></a></li>
<li><a href="#" title="Last Page"><span class="i fa fa-angle-double-right"></span></a></li>
</ul>
</div>
</form>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title" id="myModalLabel">{{'sharetheResource' | translate}}-<span> Alice Family </span></h4>
</div>
<div class="modal-body">
<ul id="myTab" class="nav nav-tabs">
<li class="active">
<a href="#home" data-toggle="tab">
<span class="fa fa-user"></span> {{'user' | translate}}
</a>
</li>
<li>
<a href="#team" data-toggle="tab">
<span class="fa fa-users"></span> Group
</a>
</li>
</ul>
<div id="myTabContent" class="tab-content resource-share-content">
<div class="tab-pane fade in active" id="home">
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-12" for="textInput-modal-markup">{{'addPeople' | translate}}</label>
<div class="col-sm-12">
<input type="text" id="textInput-modal-markup" class="form-control" placeholder="Username or email">
</div>
</div>
<div class="form-group">
<label class="col-md-12" for="boostrapSelect">{{'selectPermission' | translate}}</label>
<div class="col-md-12">
<select class="selectpicker" multiple data-selected-text-format="count>3" id="boostrapSelect">
<option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
<option>Onions</option>
<option>Mushrooms</option>
<option>Pickles</option>
<option>Mayonnaise</option>
</select>
</div>
</div>
</form>
</div>
<div class="tab-pane fade" id="team">
<form class="form-horizontal">
<div class="form-group">
<label class="col-sm-12" for="textInput-modal-markup">{{'addTeam' | translate}}</label>
<div class="col-sm-12">
<input type="text" id="textInput-modal-markup" class="form-control" placeholder="Team name">
</div>
</div>
<div class="form-group">
<label class="col-md-12" for="boostrapSelect">{{'selectPermission' | translate}}</label>
<div class="col-md-12">
<select class="selectpicker" multiple data-selected-text-format="count>3" id="boostrapSelect">
<option>Mustard</option>
<option>Ketchup</option>
<option>Relish</option>
<option>Onions</option>
<option>Mushrooms</option>
<option>Pickles</option>
<option>Mayonnaise</option>
</select>
</div>
</div>
</form>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Done</button>
<button type="button" class="btn btn-primary">Cancel</button>
</div>
</div>
</div>
</div>
<!-- End Modal -->

View file

@ -1,90 +0,0 @@
<ol class="breadcrumb" id="breadcrumbs">
<li><a href="#">{{'resources' | translate}}</a>
</li>
<li class="active"> <strong>Alice Family</strong>
</li>
</ol>
<div class="col-sm-12 card-pf resources-list">
<div class="resources-header">
<span class="fa fa-file"></span>
<h1>Alice Family</h1>
<div class="resources-info">
<span>Access management</span>
<span><label>{{'application' | translate}}:</label> <a href="#">photoz-rest-api</a> </span>
<span><label>{{'owner' | translate}}:</label> Christ Ma</span>
</div>
</div>
<div class="card-pf-body row">
<div class="m-t">
<div id="pf-list-var3" class="list-group list-view-pf list-view-resources list-view-detail">
<div class="list-group-item pfng-list-heading list-head-labels list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions list-view-space">
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
{{'sharedwithMe' | translate}}
</div>
<div class="col-md-3">
{{'accessPermissions' | translate}}
</div>
<div class="col-md-3">
{{'permissionRequests' | translate}}
</div>
<div class="col-md-2">
{{'Status' | translate}}
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions list-view-pf-status">
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#">{{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
Martin Liu (you)
<small>jhonsmith@paternfly.com</small>
</div>
<div class="list-view-pf-additional-info-item col-md-3 no-paddding-re">
Read, Battery, Test-date, Status
</div>
<div class="col-md-3 permission-requests-labels my-requests-labels no-paddding-re">
<ul class="list-inline m-b-s">
<li>
<span class="label label-info">
Status
</span>
</li>
<li>
<span class="label label-info">
Time
</span>
</li>
<li>
<span class="label label-info">
Beta
</span>
</li>
</ul>
</div>
<div class="col-md-2 no-paddding-re">
<span class="label label-warning">{{'waitingforApproval' | translate}}</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View file

@ -1,150 +0,0 @@
<div class="page-header">
<h1 id="pageTitle">{{'resources' | translate}}</h1>
</div>
<div class="col-sm-12 card-pf resources-list">
<div class="card-pf-body row">
<ul class="nav nav-tabs">
<li><a href="#">{{'myResources' | translate}}</a></li>
<li class="active"><a href="#">{{'sharedwithMe' | translate}}</a></li>
</ul>
<div class="m-t">
<div id="pf-list-var3" class="list-group list-view-pf list-view-resources list-view-shared">
<div class="list-group-item pfng-list-heading list-head-labels list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
{{'resource' | translate}}
</div>
<div class="col-md-2">
{{'owner' | translate}}
</div>
<div class="col-md-2">
{{'application' | translate}}
</div>
<div class="col-md-4 list-responsive-padding">
{{'myPermissions' | translate}}
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#">{{'remove' | translate}}</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
<span class="fa fa-file"></span> <a href="#">Open camera</a>
</div>
<div class="col-md-2">
Chirst Ma
</div>
<div class="col-md-2">
<a href="#">photoz-rest-api</a>
</div>
<div class="col-md-4 list-responsive-padding">
Read, Battery, Test-date, Status, Delete
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#">Remove</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
<span class="fa fa-file"></span> <a href="#">Open company server</a>
</div>
<div class="col-md-2">
tzhu
</div>
<div class="col-md-2">
<a href="#">photoz-rest</a>
</div>
<div class="col-md-4 list-responsive-padding">
Read, Battery
</div>
</div>
</div>
</div>
<div class="list-group-item list-view-pf-stacked list-view-pf-top-align">
<div class="list-view-pf-actions">
<div class="dropdown pull-right dropdown-kebab-pf">
<button class="btn btn-link dropdown-toggle" type="button" id="dropdownKebabRight3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">
<span class="fa fa-ellipsis-v"></span>
</button>
<ul class="dropdown-menu dropdown-menu-right" aria-labelledby="dropdownKebabRight3">
<li><a href="#">Remove</a></li>
</ul>
</div>
</div>
<div class="list-view-pf-main-info">
<div class="list-view-pf-body row">
<div class="list-group-item-heading col-md-4">
<span class="fa fa-file"></span> <a href="#">Personal info of Tom Li</a>
</div>
<div class="col-md-2">
lijun
</div>
<div class="col-md-2">
<a href="#">photoz-rest-api</a>
</div>
<div class="col-md-4 list-responsive-padding">
Email, Phone, Address, Avatar, Username
</div>
</div>
</div>
</div>
<form class="content-view-pf-pagination table-view-pf-pagination clearfix" id="pagination1">
<div class="form-group">
<select class="selectpicker pagination-pf-pagesize">
<option value="6">6</option>
<option value="10" >10</option>
<option value="15" selected="selected">15</option>
<option value="25">25</option>
<option value="50">50</option>
</select>
<span>per page</span>
</div>
<div class="form-group">
<span><span class="pagination-pf-items-current">1-15</span> of <span class="pagination-pf-items-total">75</span></span>
<ul class="pagination pagination-pf-back">
<li class="disabled"><a href="#" title="First Page"><span class="i fa fa-angle-double-left"></span></a></li>
<li class="disabled"><a href="#" title="Previous Page"><span class="i fa fa-angle-left"></span></a></li>
</ul>
<label for="pagination1-page" class="sr-only">Current Page</label>
<input class="pagination-pf-page" type="text" value="1" id="pagination1-page"/>
<span>of <span class="pagination-pf-pages">5</span></span>
<ul class="pagination pagination-pf-forward">
<li><a href="#" title="Next Page"><span class="i fa fa-angle-right"></span></a></li>
<li><a href="#" title="Last Page"><span class="i fa fa-angle-double-right"></span></a></li>
</ul>
</div>
</form>
</div>
</div>
</div>
</div>

View file

@ -43,10 +43,10 @@ var content = [
componentName: 'ApplicationsPage'
},
{
path: 'my-resources',
label: 'myResources',
path: 'resources',
label: 'resources',
modulePath: '/app/content/my-resources-page/MyResourcesPage',
componentName: 'MyResourcesPage',
hidden: !features.isMyResourcesEnabled
}
];
];

View file

@ -565,7 +565,7 @@
},
"axios": {
"version": "0.18.0",
"resolved": "http://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"requires": {
"follow-redirects": "^1.3.0",

View file

@ -14,7 +14,7 @@
'react': 'npm:react/umd/' + reactRuntime,
'react-dom': 'npm:react-dom/umd/' + reactDOMRuntime,
'react-router-dom': 'npm:react-router-dom/umd/' + reactRouterRuntime,
'@patternfly/patternfly': 'npm:@patternfly/react-core/dist/umd/@patternfly/patternfly',
'@patternfly/react-core': 'npm:@patternfly/react-core/dist/umd/index.js',
'@patternfly/react-styles': 'npm:@patternfly/react-styles/dist/umd/index.js',
@ -31,14 +31,14 @@
'focus-trap-react': 'npm:focus-trap-react/dist/focus-trap-react.js',
'@tippy.js/react': 'npm:@tippy.js/react/dist/Tippy.min.js',
'tippy.js': 'npm:tippy.js/dist/tippy.min.js',
'moment': 'npm:moment/min/moment-with-locales.min.js',
'axios': 'npm:axios/dist/axios.min.js',
'history': 'npm:history/umd/history.min.js',
},
bundles: {
"npm:rxjs-system-bundle/Rx.system.min.js": [
"rxjs",
@ -52,7 +52,7 @@
"rxjs/util/*"
]
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
@ -65,7 +65,7 @@
rxjs: {
defaultExtension: false
},
// Components that map to @empty will not be loaded.
// To load a component, replace @empty with its commented path.
'npm:@patternfly/react-core/dist/umd/components': {
@ -103,7 +103,7 @@
'./Label': '@empty', //'./Label/index.js',
'./List': '@empty', //'./List/index.js',
'./LoginPage': '@empty', //'./LoginPage/index.js',
'./Modal': '@empty', //'./Modal/index.js',
'./Modal': './Modal/index.js', //'./Modal/index.js',
'./Nav': './Nav/index.js',
'./OptionsMenu': '@empty', //./OptionsMenu/index.js',
'./Page': './Page/index.js',
@ -114,11 +114,11 @@
'./Select': '@empty', //'./Select/index.js',
'./SkipToContent': '@empty', //'./SkipToContent/index.js',
'./Switch': '@empty', //'./Switch/index.js',
'./Tabs': '@empty', //'./Tabs/index.js',
'./Tabs': './Tabs/index.js', //'./Tabs/index.js',
'./Text': '@empty', //'./Text/index.js',
'./TextArea': '@empty', //'./TextArea/index.js',
'./TextInput': './TextInput/index.js',
'./Title': '@empty', //'./Title/index.js',
'./Title': './Title/index.js', //'./Title/index.js',
'./Tooltip': '@empty', //'./Tooltip/index.js',
'./Wizard': '@empty', //'./Wizard/index.js',
'./Bullseye': '@empty', //'./Bullseye/index.js',
@ -130,7 +130,7 @@
'./Toolbar': '@empty', //'./Toolbar/index.js',
}
},
'npm:@patternfly/react-core/dist/umd/styles': {
main: './index.js',
defaultExtension: 'js',
@ -139,11 +139,11 @@
main: './index.js',
defaultExtension: 'js',
},
'npm:@patternfly/react-core/dist/umd/@patternfly/patternfly': {
defaultExtension: 'js',
},
// Layouts that map to @empty will not be loaded.
// To load a layout, replace @empty with its commented path.
'npm:@patternfly/react-core/dist/umd/layouts': {
@ -171,7 +171,7 @@
'npm:no-case/vendor': {
defaultExtension: 'js',
},
// Icons that map to @empty will not be loaded.
// To load an icon, just comment out its mapping.
'npm:@patternfly/react-icons/dist/umd': {
@ -196,7 +196,7 @@
'./icons/angle-double-right-icon.js': '@empty',
'./icons/angle-double-up-icon.js': '@empty',
//'./icons/angle-down-icon.js': '@empty',
'./icons/angle-left-icon.js': '@empty',
// './icons/angle-left-icon.js': '@empty',
//'./icons/angle-right-icon.js': '@empty',
'./icons/angle-up-icon.js': '@empty',
'./icons/angry-icon.js': '@empty',
@ -1378,7 +1378,7 @@
'./icons/pficon-sort-common-asc-icon.js': '@empty',
'./icons/pficon-sort-common-desc-icon.js': '@empty',
'./icons/pficon-dragdrop-icon.js': '@empty',
}
},
}