diff --git a/portal-ui/src/screens/Console/Buckets/ViewBucket/SetAccessPolicy.tsx b/portal-ui/src/screens/Console/Buckets/ViewBucket/SetAccessPolicy.tsx index 5c54b5037..67b980846 100644 --- a/portal-ui/src/screens/Console/Buckets/ViewBucket/SetAccessPolicy.tsx +++ b/portal-ui/src/screens/Console/Buckets/ViewBucket/SetAccessPolicy.tsx @@ -35,6 +35,7 @@ interface ISetAccessPolicyProps { classes: any; open: boolean; bucketName: string; + actualPolicy: string; closeModalAndRefresh: () => void; } @@ -86,8 +87,14 @@ class SetAccessPolicy extends React.Component< }); } + componentDidMount() { + const { actualPolicy } = this.props; + + this.setState({accessPolicy: actualPolicy}); + } + render() { - const { classes, open } = this.props; + const { classes, open, actualPolicy } = this.props; const { addLoading, addError, accessPolicy } = this.state; return ( createStyles({ @@ -76,6 +80,42 @@ const styles = (theme: Theme) => textAlign: "center", padding: "20px", }, + gridContainer: { + display: "grid", + gridTemplateColumns: "auto auto", + gridGap: 8, + justifyContent: "flex-start", + alignItems: "center", + "& div": { + display: "flex", + alignItems: "center", + }, + "& div:nth-child(odd)": { + justifyContent: "flex-end", + fontWeight: 700, + }, + "& div:nth-child(2n)": { + minWidth: 150, + }, + }, + masterActions: { + width: "25%", + minWidth: "120px", + "& div": { + margin: "5px 0px", + }, + }, + paperContainer: { + padding: 15, + paddingLeft: 23, + }, + headerContainer: { + display: "flex", + justifyContent: "space-between" + }, + capitalizeFirst: { + textTransform: "capitalize" + } }); interface IViewBucketProps { @@ -88,6 +128,7 @@ interface IViewBucketState { records: BucketEvent[]; totalRecords: number; loading: boolean; + loadingSize: boolean; error: string; deleteError: string; setAccessPolicyScreenOpen: boolean; @@ -97,6 +138,8 @@ interface IViewBucketState { deleteOpen: boolean; selectedBucket: string; selectedEvent: BucketEvent | null; + bucketSize: string; + errorSize: string; } class ViewBucket extends React.Component { @@ -105,6 +148,7 @@ class ViewBucket extends React.Component { records: [], totalRecords: 0, loading: false, + loadingSize: false, error: "", deleteError: "", setAccessPolicyScreenOpen: false, @@ -114,6 +158,8 @@ class ViewBucket extends React.Component { deleteOpen: false, selectedBucket: "", selectedEvent: null, + bucketSize: "0", + errorSize: "", }; fetchEvents() { @@ -147,6 +193,28 @@ class ViewBucket extends React.Component { }); } + fetchBucketsSize() { + const { match } = this.props; + const bucketName = match.params["bucketName"]; + + this.setState({ loadingSize: true }, () => { + api + .invoke("GET", `/api/v1/buckets`) + .then((res: BucketList) => { + const resBuckets = get(res, "buckets", []); + + const bucketInfo = resBuckets.find(bucket => bucket.name === bucketName) ; + + const size = get(bucketInfo, "size", "0"); + + this.setState({ loadingSize: false, errorSize: "", bucketSize: size }); + }) + .catch((err: any) => { + this.setState({ loadingSize: false, errorSize: err }); + }); + }); + } + closeAddModalAndRefresh() { this.setState({ setAccessPolicyScreenOpen: false }, () => { this.loadInfo(); @@ -175,6 +243,7 @@ class ViewBucket extends React.Component { componentDidMount(): void { this.loadInfo(); this.fetchEvents(); + this.fetchBucketsSize(); } bucketFilter(): void {} @@ -192,6 +261,7 @@ class ViewBucket extends React.Component { deleteOpen, addScreenOpen, selectedEvent, + bucketSize, } = this.state; const offset = page * rowsPerPage; @@ -242,6 +312,7 @@ class ViewBucket extends React.Component { { this.closeAddModalAndRefresh(); }} @@ -258,36 +329,53 @@ class ViewBucket extends React.Component {
- Access Policy: {accessPolicy} - {" "} - -
- Reported Usage: 0 bytes -
+
+
+
+
Access Policy:
+
{accessPolicy.toLowerCase()}
+
Reported Usage:
+
{niceBytes(bucketSize)}
+
+
+
+
+ +
+
+

- Events + + +