Compare commits

..

15 Commits

Author SHA1 Message Date
Alex
3db998f9c4 Release v1.6.2 (#3407)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2024-07-12 12:43:59 -07:00
Alex
0a2a7087a7 Updated UI Project Dependencies (#3406)
Updated Project Dependencies

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2024-07-12 13:08:30 -06:00
Alex
8f0eb11ced Updated License page with new design (#3405) 2024-07-12 10:18:17 -06:00
Anis Eleuch
e3e3599095 ws: Calculate the client IP from the WS request headers as well (#3403)
Currently, the websocket code adds an IP to X-Forwarded-For where the IP is
calculated from the TCP connection established to Console, however the established
TCP connection can be coming from the load balancer as well, hence the
necesssity to evaluate the client IP based on X-Forwarded-For or
X-Real-IP headers

Look for client IPs in the websocket request connection.

Co-authored-by: Anis Eleuch <anis@min.io>
2024-07-10 08:04:50 -07:00
dependabot[bot]
aa74e31453 Bump google.golang.org/grpc from 1.64.0 to 1.64.1 (#3404)
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.64.0 to 1.64.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.64.0...v1.64.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 09:15:51 +02:00
jiuker
e1f6e729fd format to loginfo (#3400) 2024-07-08 09:08:27 -06:00
Ramon de Klein
13d83a6d1c User session fixes (#3397) 2024-07-04 18:22:36 -07:00
Ramon de Klein
6075387654 Upgrade Go to v1.22.5 and upgrade Github actions (#3398) 2024-07-04 07:28:24 -07:00
Victor Bayas
69fad3f55f Improvements to Drives list UI (#3395) 2024-07-01 17:27:33 -06:00
Alex
e3864b62a4 Release v1.6.1 (#3393) 2024-06-25 10:26:58 -07:00
Harshavardhana
22176f4e0f fix: objectManager implementation avoid racy goroutines (#3392)
fixes #3391
2024-06-25 08:50:31 -07:00
dependabot[bot]
a89d7ec0ea Bump ws from 7.5.9 to 7.5.10 in /web-app (#3390) 2024-06-18 15:22:19 -07:00
Ramon de Klein
8262049e20 Fix showing object-name in legal hold dialog (#3389) 2024-06-18 15:20:03 -07:00
Alex
c61e1e0a2a Added debounce to Share file fields (#3388)
Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2024-06-17 16:02:13 -06:00
Alex
b376cf6c65 Improvements to Share Link component behavior (#3387)
Improvements to Share Link component to avoid multiple re-renders during common actions

Signed-off-by: Benjamin Perez <benjamin@bexsoft.net>
2024-06-17 11:40:27 -06:00
246 changed files with 7091 additions and 64449 deletions

View File

@@ -26,13 +26,12 @@ jobs:
os: [ubuntu-latest]
steps:
- name: Check out code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -75,12 +74,12 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
cache: "yarn"
cache-dependency-path: web-app/yarn.lock
- uses: actions/cache@v3
- uses: actions/cache@v4
id: assets-cache
name: Assets Cache
with:
@@ -133,7 +132,7 @@ jobs:
(git fetch alt && git checkout "alt/$GH_BRANCH") || echo "$ALTREPO ($GH_BRANCH) not available, so keeping default repository/branch"
fi
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
id: go-minio
@@ -158,18 +157,17 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
./console
key: ${{ runner.os }}-binary-${{ github.run_id }}
- uses: actions/cache@v3
- uses: actions/cache@v4
id: assets-cache
name: Assets Cache
with:
@@ -201,7 +199,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -210,7 +208,7 @@ jobs:
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -255,7 +253,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -264,7 +262,7 @@ jobs:
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -308,7 +306,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -316,7 +314,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -360,7 +358,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -368,7 +366,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -412,7 +410,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -420,7 +418,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -460,7 +458,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -468,7 +466,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -508,7 +506,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -516,7 +514,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -556,7 +554,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -564,7 +562,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -603,7 +601,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -611,7 +609,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -651,7 +649,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -659,7 +657,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -702,7 +700,7 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Install MinIO JS
@@ -710,7 +708,7 @@ jobs:
continue-on-error: false
run: |
yarn add minio
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache
with:
path: |
@@ -752,10 +750,9 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -765,7 +762,7 @@ jobs:
run: |
make test-pkg
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache-pkg
name: Coverage Cache Pkg
with:
@@ -788,10 +785,9 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -801,7 +797,7 @@ jobs:
run: |
make test
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache-api
name: Coverage Cache API
with:
@@ -841,7 +837,7 @@ jobs:
git remote add alt $ALTREPO
(git fetch alt && git checkout "alt/$GH_BRANCH") || echo "$ALTREPO ($GH_BRANCH) not available, so keeping default repository/branch"
fi
- uses: actions/cache@v3
- uses: actions/cache@v4
id: minio-latest-cache
name: MinIO Latest Cache
with:
@@ -849,10 +845,9 @@ jobs:
./minio
key: ${{ runner.os }}-minio-latest-${{ hashFiles('./minio_repository/go.sum') }}
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -881,7 +876,7 @@ jobs:
echo "Create the folder to put the all.out file"
make test-integration MINIO_VERSION=$MINIO_VERSION;
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache
name: Coverage Cache
with:
@@ -923,10 +918,9 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Clone github.com/minio/minio
@@ -946,7 +940,7 @@ jobs:
git remote add alt $ALTREPO
(git fetch alt && git checkout "alt/$GH_BRANCH") || echo "$ALTREPO ($GH_BRANCH) not available, so keeping default repository/branch"
fi
- uses: actions/cache@v3
- uses: actions/cache@v4
id: minio-latest-cache
name: MinIO Latest Cache
with:
@@ -973,7 +967,7 @@ jobs:
echo $MINIO_VERSION;
make test-replication MINIO_VERSION=$MINIO_VERSION;
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache-replication
name: Coverage Cache Replication
with:
@@ -1006,10 +1000,9 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Clone github.com/minio/minio
@@ -1035,7 +1028,7 @@ jobs:
git checkout "${{ github.head_ref || github.ref_name }}" || echo "Okay, we'll stay on the master branch"
- uses: actions/cache@v3
- uses: actions/cache@v4
id: minio-latest-cache
name: MinIO Latest Cache
with:
@@ -1050,7 +1043,7 @@ jobs:
echo "replace github.com/minio/console => ../" >> go.mod
echo "updates to go.mod needed; to update it: go mod tidy"
go mod tidy -compat=1.21
go mod tidy -compat=1.22
echo "Get git version to build MinIO Image";
VERSION=`git rev-parse HEAD`;
@@ -1067,7 +1060,7 @@ jobs:
echo $MINIO_VERSION;
make test-sso-integration MINIO_VERSION=$MINIO_VERSION;
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache-sso
name: Coverage Cache SSO
with:
@@ -1091,10 +1084,9 @@ jobs:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Check out gocovmerge as a nested repository
uses: actions/checkout@v3
@@ -1102,7 +1094,7 @@ jobs:
repository: wadey/gocovmerge
path: gocovmerge
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache
name: Coverage Cache
with:
@@ -1110,7 +1102,7 @@ jobs:
./integration/coverage/
key: ${{ runner.os }}-coverage-2-${{ github.run_id }}
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache-sso
name: Coverage Cache SSO
with:
@@ -1118,7 +1110,7 @@ jobs:
./sso-integration/coverage/
key: ${{ runner.os }}-sso-coverage-2-${{ github.run_id }}
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache-replication
name: Coverage Cache Replication
with:
@@ -1126,7 +1118,7 @@ jobs:
./replication/coverage/
key: ${{ runner.os }}-replication-coverage-2-${{ github.run_id }}
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache-api
name: Coverage Cache API
with:
@@ -1134,7 +1126,7 @@ jobs:
./api/coverage/
key: ${{ runner.os }}-coverage-api-2-${{ github.run_id }}
- uses: actions/cache@v3
- uses: actions/cache@v4
id: coverage-cache-pkg
name: Coverage Cache Pkg
with:
@@ -1155,7 +1147,7 @@ jobs:
echo "download golang x tools"
go mod download golang.org/x/tools
echo "go mod tidy compat mode"
go mod tidy -compat=1.21
go mod tidy -compat=1.22
echo "go build gocoverage.go"
go build gocovmerge.go
echo "put together the outs for final coverage resolution"
@@ -1241,12 +1233,12 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
cache: "yarn"
cache-dependency-path: web-app/yarn.lock
- uses: actions/cache@v3
- uses: actions/cache@v4
id: assets-cache-istanbul-coverage
name: Assets Cache Istanbul Coverage
with:
@@ -1280,18 +1272,17 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache Istanbul Coverage
with:
path: |
./console
key: ${{ runner.os }}-binary-istanbul-coverage-${{ github.run_id }}
- uses: actions/cache@v3
- uses: actions/cache@v4
id: assets-cache-istanbul-coverage
name: Assets Cache Istanbul Coverage
with:
@@ -1321,10 +1312,9 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -1349,10 +1339,9 @@ jobs:
- name: Check out code
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -1378,10 +1367,9 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -1407,10 +1395,9 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -1436,10 +1423,9 @@ jobs:
uses: actions/checkout@v3
- name: Set up Go ${{ matrix.go-version }} on ${{ matrix.os }}
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
cache: true
id: go
- name: Build on ${{ matrix.os }}
@@ -1458,7 +1444,7 @@ jobs:
- uses: actions/checkout@v3
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 18
@@ -1474,7 +1460,7 @@ jobs:
- name: Install Playwright Browsers
run: npx playwright install --with-deps
- uses: actions/cache@v3
- uses: actions/cache@v4
name: Console Binary Cache Istanbul Coverage
with:
path: |

View File

@@ -17,9 +17,9 @@ jobs:
- name: Check out code into the Go module directory
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v3
uses: actions/setup-go@v5
with:
go-version: 1.22.4
go-version: 1.22.5
check-latest: true
- name: Get official govulncheck
run: go install golang.org/x/vuln/cmd/govulncheck@latest
@@ -33,7 +33,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
go-version: [ 1.22.4 ]
go-version: [ 1.22.5 ]
os: [ ubuntu-latest ]
steps:
- name: Check out code
@@ -43,18 +43,11 @@ jobs:
run: echo "$(cat .nvmrc)" && echo "NVMRC=$(cat .nvmrc)" >> $GITHUB_ENV
- name: Enable Corepack
run: corepack enable
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: ${{ env.NVMRC }}
- name: Checks for known security issues with the installed packages
working-directory: ./web-app
continue-on-error: false
run: |
# Ignore "pdfjs-dist" advisory, because it's a dependency
# of "react-pdf" that cannot be upgraded. Because the
# "isEvalSupported" value is always set to "false", it
# isn't a security problem. See also
# - https://github.com/wojtekmaj/react-pdf/issues/1789
# - https://github.com/wojtekmaj/react-pdf/discussions/1786
# - https://www.npmjs.com/advisories/1097244
yarn npm audit --recursive --environment production --no-deprecations

View File

@@ -2,6 +2,31 @@
# Changelog
## Release v1.6.2
Bug Fix:
- Fixed minor user session issues
- Updated project dependencies
Additional Changes:
- Improved Drives List visualization
- Improved WS request logic
- Updated License page with current MinIO plans.
## Release v1.6.1
Bug Fix:
- Fixed objectManager issues under certain conditions
- Fixed Security vulnerability in dependencies
Additional Changes:
- Improved Share Link behavior
## Release v1.6.0
Bug Fix:

View File

@@ -35,7 +35,7 @@ In case a Console standalone binary is needed, it can be generated by building t
### Build from source
> You will need a working Go environment. Therefore, please follow [How to install Go](https://golang.org/doc/install).
> Minimum version required is go1.21
> Minimum version required is go1.22
```
go install github.com/minio/console/cmd/console@latest

View File

@@ -55,12 +55,7 @@ func registerSessionHandlers(api *operations.ConsoleAPI) {
}
func getClaimsFromToken(sessionToken string) (map[string]interface{}, error) {
jp := new(jwtgo.Parser)
// nolint:staticcheck // ignore SA1019
jp.ValidMethods = []string{
"RS256", "RS384", "RS512", "ES256", "ES384", "ES512",
"RS3256", "RS3384", "RS3512", "ES3256", "ES3384", "ES3512",
}
jp := jwtgo.NewParser()
var claims jwtgo.MapClaims
_, _, err := jp.ParseUnverified(sessionToken, &claims)
if err != nil {
@@ -115,7 +110,7 @@ func getSessionResponse(ctx context.Context, session *models.Principal) (*models
// All calls from console are signature v4.
condition.S3SignatureVersion.Name(): {"AWS4-HMAC-SHA256"},
// All calls from console are signature v4.
// All calls from console use header-based authentication
condition.S3AuthType.Name(): {"REST-HEADER"},
// This is usually empty, may be set some times (rare).
condition.S3LocationConstraint.Name(): {GetMinIORegion()},
@@ -237,15 +232,6 @@ func getSessionResponse(ctx context.Context, session *models.Principal) (*models
resourcePermissions[key] = resourceActions
}
serializedPolicy, err := json.Marshal(policy)
if err != nil {
return nil, ErrorWithContext(ctx, err, ErrInvalidSession)
}
var sessionPolicy *models.IamPolicy
err = json.Unmarshal(serializedPolicy, &sessionPolicy)
if err != nil {
return nil, ErrorWithContext(ctx, err)
}
// environment constants
var envConstants models.EnvironmentConstants

View File

@@ -177,9 +177,19 @@ func serveWS(w http.ResponseWriter, req *http.Request) {
return
}
clientIP := getSourceIPFromHeaders(req)
if clientIP == "" {
if ip, _, err := net.SplitHostPort(conn.RemoteAddr().String()); err == nil {
clientIP = ip
} else {
// In case there's an error, return an empty string
LogError("Invalid ws.RemoteAddr() = %v\n", err)
}
}
switch {
case strings.HasPrefix(wsPath, `/trace`):
wsAdminClient, err := newWebSocketAdminClient(conn, session)
wsAdminClient, err := newWebSocketAdminClient(conn, session, clientIP)
if err != nil {
ErrorWithContext(ctx, err)
closeWsConn(conn)
@@ -216,7 +226,7 @@ func serveWS(w http.ResponseWriter, req *http.Request) {
go wsAdminClient.trace(ctx, traceRequestItem)
case strings.HasPrefix(wsPath, `/console`):
wsAdminClient, err := newWebSocketAdminClient(conn, session)
wsAdminClient, err := newWebSocketAdminClient(conn, session, clientIP)
if err != nil {
ErrorWithContext(ctx, err)
closeWsConn(conn)
@@ -237,7 +247,7 @@ func serveWS(w http.ResponseWriter, req *http.Request) {
closeWsConn(conn)
return
}
wsAdminClient, err := newWebSocketAdminClient(conn, session)
wsAdminClient, err := newWebSocketAdminClient(conn, session, clientIP)
if err != nil {
ErrorWithContext(ctx, err)
closeWsConn(conn)
@@ -251,7 +261,7 @@ func serveWS(w http.ResponseWriter, req *http.Request) {
closeWsConn(conn)
return
}
wsS3Client, err := newWebSocketS3Client(conn, session, wOptions.BucketName, "")
wsS3Client, err := newWebSocketS3Client(conn, session, wOptions.BucketName, "", clientIP)
if err != nil {
ErrorWithContext(ctx, err)
closeWsConn(conn)
@@ -265,7 +275,7 @@ func serveWS(w http.ResponseWriter, req *http.Request) {
closeWsConn(conn)
return
}
wsAdminClient, err := newWebSocketAdminClient(conn, session)
wsAdminClient, err := newWebSocketAdminClient(conn, session, clientIP)
if err != nil {
ErrorWithContext(ctx, err)
closeWsConn(conn)
@@ -279,7 +289,7 @@ func serveWS(w http.ResponseWriter, req *http.Request) {
closeWsConn(conn)
return
}
wsAdminClient, err := newWebSocketAdminClient(conn, session)
wsAdminClient, err := newWebSocketAdminClient(conn, session, clientIP)
if err != nil {
ErrorWithContext(ctx, err)
closeWsConn(conn)
@@ -288,7 +298,7 @@ func serveWS(w http.ResponseWriter, req *http.Request) {
go wsAdminClient.profile(ctx, pOptions)
case strings.HasPrefix(wsPath, `/objectManager`):
wsMinioClient, err := newWebSocketMinioClient(conn, session)
wsMinioClient, err := newWebSocketMinioClient(conn, session, clientIP)
if err != nil {
ErrorWithContext(ctx, err)
closeWsConn(conn)
@@ -303,12 +313,11 @@ func serveWS(w http.ResponseWriter, req *http.Request) {
}
// newWebSocketAdminClient returns a wsAdminClient authenticated as an admin user
func newWebSocketAdminClient(conn *websocket.Conn, autClaims *models.Principal) (*wsAdminClient, error) {
func newWebSocketAdminClient(conn *websocket.Conn, autClaims *models.Principal, clientIP string) (*wsAdminClient, error) {
// create a websocket connection interface implementation
// defining the connection to be used
wsConnection := wsConn{conn: conn}
clientIP := wsConnection.remoteAddress()
// Only start Websocket Interaction after user has been
// authenticated with MinIO
mAdmin, err := newAdminFromClaims(autClaims, clientIP)
@@ -326,15 +335,9 @@ func newWebSocketAdminClient(conn *websocket.Conn, autClaims *models.Principal)
}
// newWebSocketS3Client returns a wsAdminClient authenticated as Console admin
func newWebSocketS3Client(conn *websocket.Conn, claims *models.Principal, bucketName, prefix string) (*wsS3Client, error) {
func newWebSocketS3Client(conn *websocket.Conn, claims *models.Principal, bucketName, prefix, clientIP string) (*wsS3Client, error) {
// Only start Websocket Interaction after user has been
// authenticated with MinIO
clientIP, _, err := net.SplitHostPort(conn.RemoteAddr().String())
if err != nil {
// In case there's an error, return an empty string
log.Printf("Invalid ws.clientIP = %s\n", err)
}
s3Client, err := newS3BucketClient(claims, bucketName, prefix, clientIP)
if err != nil {
LogError("error creating S3Client:", err)
@@ -351,14 +354,7 @@ func newWebSocketS3Client(conn *websocket.Conn, claims *models.Principal, bucket
return wsS3Client, nil
}
func newWebSocketMinioClient(conn *websocket.Conn, claims *models.Principal) (*wsMinioClient, error) {
// Only start Websocket Interaction after user has been
// authenticated with MinIO
clientIP, _, err := net.SplitHostPort(conn.RemoteAddr().String())
if err != nil {
// In case there's an error, return an empty string
log.Printf("Invalid ws.clientIP = %s\n", err)
}
func newWebSocketMinioClient(conn *websocket.Conn, claims *models.Principal, clientIP string) (*wsMinioClient, error) {
mClient, err := newMinioClient(claims, clientIP)
if err != nil {
LogError("error creating MinioClient:", err)

View File

@@ -35,9 +35,11 @@ func (wsc *wsMinioClient) objectManager(session *models.Principal) {
defer func() {
// We close socket at the end of requests
wsc.conn.close()
cancelContexts.Range(func(_, value interface{}) bool {
cancelContexts.Range(func(key, value interface{}) bool {
cancelFunc := value.(context.CancelFunc)
cancelFunc()
cancelContexts.Delete(key)
return true
})
}()
@@ -55,6 +57,7 @@ func (wsc *wsMinioClient) objectManager(session *models.Principal) {
// Read goroutine
go func() {
defer close(writeChannel)
for {
select {
case <-done:
@@ -64,7 +67,7 @@ func (wsc *wsMinioClient) objectManager(session *models.Principal) {
mType, message, err := wsc.conn.readMessage()
if err != nil {
LogInfo("Error while reading objectManager message", err)
LogInfo("Error while reading objectManager message: %s", err)
return
}
@@ -72,10 +75,9 @@ func (wsc *wsMinioClient) objectManager(session *models.Principal) {
// We get request data & review information
var messageRequest ObjectsRequest
err := json.Unmarshal(message, &messageRequest)
if err != nil {
LogInfo("Error on message request unmarshal")
return
if err := json.Unmarshal(message, &messageRequest); err != nil {
LogInfo("Error on message request unmarshal: %s", err)
continue
}
// new message, new context
@@ -84,6 +86,21 @@ func (wsc *wsMinioClient) objectManager(session *models.Principal) {
// We store the cancel func associated with this request
cancelContexts.Store(messageRequest.RequestID, cancel)
switch messageRequest.Mode {
case "objects", "rewind":
// cancel all previous open objects requests for listing
cancelContexts.Range(func(key, value interface{}) bool {
rid := key.(int64)
if rid < messageRequest.RequestID {
cancelFunc := value.(context.CancelFunc)
cancelFunc()
cancelContexts.Delete(key)
}
return true
})
}
const itemsPerBatch = 1000
switch messageRequest.Mode {
case "close":
@@ -95,173 +112,151 @@ func (wsc *wsMinioClient) objectManager(session *models.Principal) {
cancelContexts.Delete(messageRequest.RequestID)
}
case "objects":
// cancel all previous open objects requests for listing
cancelContexts.Range(func(key, value interface{}) bool {
rid := key.(int64)
if rid < messageRequest.RequestID {
cancelFunc := value.(context.CancelFunc)
cancelFunc()
}
return true
})
// start listing and writing to web socket
go func() {
objectRqConfigs, err := getObjectsOptionsFromReq(messageRequest)
if err != nil {
LogInfo(fmt.Sprintf("Error during Objects OptionsParse %s", err.Error()))
objectRqConfigs, err := getObjectsOptionsFromReq(messageRequest)
if err != nil {
LogInfo(fmt.Sprintf("Error during Objects OptionsParse %s", err.Error()))
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Error: ErrorWithContext(ctx, err),
Prefix: messageRequest.Prefix,
BucketName: messageRequest.BucketName,
})
return
}
var buffer []ObjectResponse
for lsObj := range startObjectsListing(ctx, wsc.client, objectRqConfigs) {
if lsObj.Err != nil {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Error: ErrorWithContext(ctx, err),
Error: ErrorWithContext(ctx, lsObj.Err),
Prefix: messageRequest.Prefix,
BucketName: messageRequest.BucketName,
})
return
continue
}
var buffer []ObjectResponse
for lsObj := range startObjectsListing(ctx, wsc.client, objectRqConfigs) {
if _, ok := cancelContexts.Load(messageRequest.RequestID); !ok {
return
}
if lsObj.Err != nil {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Error: ErrorWithContext(ctx, lsObj.Err),
Prefix: messageRequest.Prefix,
BucketName: messageRequest.BucketName,
})
continue
}
objItem := ObjectResponse{
Name: lsObj.Key,
Size: lsObj.Size,
LastModified: lsObj.LastModified.Format(time.RFC3339),
VersionID: lsObj.VersionID,
IsLatest: lsObj.IsLatest,
DeleteMarker: lsObj.IsDeleteMarker,
}
buffer = append(buffer, objItem)
if len(buffer) >= itemsPerBatch {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Data: buffer,
})
buffer = nil
}
objItem := ObjectResponse{
Name: lsObj.Key,
Size: lsObj.Size,
LastModified: lsObj.LastModified.Format(time.RFC3339),
VersionID: lsObj.VersionID,
IsLatest: lsObj.IsLatest,
DeleteMarker: lsObj.IsDeleteMarker,
}
if len(buffer) > 0 {
buffer = append(buffer, objItem)
if len(buffer) >= itemsPerBatch {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Data: buffer,
})
buffer = nil
}
}
if len(buffer) > 0 {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
RequestEnd: true,
RequestID: messageRequest.RequestID,
Data: buffer,
})
}
// remove the cancellation context
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
RequestEnd: true,
})
// if we have that request id, cancel it
if cancelFunc, ok := cancelContexts.Load(messageRequest.RequestID); ok {
cancelFunc.(context.CancelFunc)()
cancelContexts.Delete(messageRequest.RequestID)
}()
}
case "rewind":
// cancel all previous open objects requests for listing
cancelContexts.Range(func(key, value interface{}) bool {
rid := key.(int64)
if rid < messageRequest.RequestID {
cancelFunc := value.(context.CancelFunc)
cancelFunc()
}
return true
})
// start listing and writing to web socket
go func() {
objectRqConfigs, err := getObjectsOptionsFromReq(messageRequest)
if err != nil {
LogInfo(fmt.Sprintf("Error during Objects OptionsParse %s", err.Error()))
objectRqConfigs, err := getObjectsOptionsFromReq(messageRequest)
if err != nil {
LogInfo(fmt.Sprintf("Error during Objects OptionsParse %s", err.Error()))
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Error: ErrorWithContext(ctx, err),
Prefix: messageRequest.Prefix,
BucketName: messageRequest.BucketName,
})
return
}
clientIP := wsc.conn.remoteAddress()
s3Client, err := newS3BucketClient(session, objectRqConfigs.BucketName, objectRqConfigs.Prefix, clientIP)
if err != nil {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Error: ErrorWithContext(ctx, err),
Prefix: messageRequest.Prefix,
BucketName: messageRequest.BucketName,
})
return
}
mcS3C := mcClient{client: s3Client}
var buffer []ObjectResponse
for lsObj := range startRewindListing(ctx, mcS3C, objectRqConfigs) {
if lsObj.Err != nil {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Error: ErrorWithContext(ctx, err),
Error: ErrorWithContext(ctx, lsObj.Err.ToGoError()),
Prefix: messageRequest.Prefix,
BucketName: messageRequest.BucketName,
})
return
continue
}
clientIP := wsc.conn.remoteAddress()
name := strings.Replace(lsObj.URL.Path, fmt.Sprintf("/%s/", objectRqConfigs.BucketName), "", 1)
s3Client, err := newS3BucketClient(session, objectRqConfigs.BucketName, objectRqConfigs.Prefix, clientIP)
if err != nil {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Error: ErrorWithContext(ctx, err),
Prefix: messageRequest.Prefix,
BucketName: messageRequest.BucketName,
})
cancel()
return
objItem := ObjectResponse{
Name: name,
Size: lsObj.Size,
LastModified: lsObj.Time.Format(time.RFC3339),
VersionID: lsObj.VersionID,
IsLatest: lsObj.IsLatest,
DeleteMarker: lsObj.IsDeleteMarker,
}
buffer = append(buffer, objItem)
mcS3C := mcClient{client: s3Client}
var buffer []ObjectResponse
for lsObj := range startRewindListing(ctx, mcS3C, objectRqConfigs) {
if lsObj.Err != nil {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Error: ErrorWithContext(ctx, lsObj.Err.ToGoError()),
Prefix: messageRequest.Prefix,
BucketName: messageRequest.BucketName,
})
continue
}
name := strings.Replace(lsObj.URL.Path, fmt.Sprintf("/%s/", objectRqConfigs.BucketName), "", 1)
objItem := ObjectResponse{
Name: name,
Size: lsObj.Size,
LastModified: lsObj.Time.Format(time.RFC3339),
VersionID: lsObj.VersionID,
IsLatest: lsObj.IsLatest,
DeleteMarker: lsObj.IsDeleteMarker,
}
buffer = append(buffer, objItem)
if len(buffer) >= itemsPerBatch {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Data: buffer,
})
buffer = nil
}
}
if len(buffer) > 0 {
if len(buffer) >= itemsPerBatch {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
Data: buffer,
})
buffer = nil
}
}
if len(buffer) > 0 {
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
RequestEnd: true,
RequestID: messageRequest.RequestID,
Data: buffer,
})
}
// remove the cancellation context
sendWSResponse(WSResponse{
RequestID: messageRequest.RequestID,
RequestEnd: true,
})
// if we have that request id, cancel it
if cancelFunc, ok := cancelContexts.Load(messageRequest.RequestID); ok {
cancelFunc.(context.CancelFunc)()
cancelContexts.Delete(messageRequest.RequestID)
}()
}
}
}
}
@@ -272,13 +267,13 @@ func (wsc *wsMinioClient) objectManager(session *models.Principal) {
for writeM := range writeChannel {
jsonData, err := json.Marshal(writeM)
if err != nil {
LogInfo("Error while marshaling the response", err)
LogInfo("Error while marshaling the response: %s", err)
return
}
err = wsc.conn.writeMessage(websocket.TextMessage, jsonData)
if err != nil {
LogInfo("Error while writing the message", err)
LogInfo("Error while writing the message: %s", err)
return
}
}

4
go.mod
View File

@@ -1,6 +1,6 @@
module github.com/minio/console
go 1.21
go 1.22.5
require (
github.com/blang/semver/v4 v4.0.0
@@ -146,7 +146,7 @@ require (
golang.org/x/term v0.21.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 // indirect
google.golang.org/grpc v1.64.0 // indirect
google.golang.org/grpc v1.64.1 // indirect
google.golang.org/protobuf v1.34.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect

4
go.sum
View File

@@ -400,8 +400,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117 h1:
google.golang.org/genproto/googleapis/api v0.0.0-20240604185151-ef581f913117/go.mod h1:OimBR/bc1wPO9iV4NC2bpyjy3VnAwZh5EBPQdtaE5oo=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117 h1:1GBuWVLM/KMVUv1t1En5Gs+gFZCNd360GGb4sSxtrhU=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240604185151-ef581f913117/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0=
google.golang.org/grpc v1.64.0 h1:KH3VH9y/MgNQg1dE7b3XfVK0GsPSIzJwdF617gUSbvY=
google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg=
google.golang.org/grpc v1.64.1 h1:LKtvyfbX3UGVPFcGqJ9ItpVWW6oN/2XqTxfAnwRRXiA=
google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0=
google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg=
google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

View File

@@ -1,101 +1,101 @@
{
"files": {
"main.css": "./static/css/main.e60e4760.css",
"main.js": "./static/js/main.3bcbce18.js",
"static/js/5301.2c626a41.chunk.js": "./static/js/5301.2c626a41.chunk.js",
"main.js": "./static/js/main.b9463185.js",
"static/js/5301.79001158.chunk.js": "./static/js/5301.79001158.chunk.js",
"static/js/9361.ce3b326c.chunk.js": "./static/js/9361.ce3b326c.chunk.js",
"static/js/843.454ac75f.chunk.js": "./static/js/843.454ac75f.chunk.js",
"static/js/3035.d50f543e.chunk.js": "./static/js/3035.d50f543e.chunk.js",
"static/js/9537.69d1689c.chunk.js": "./static/js/9537.69d1689c.chunk.js",
"static/js/5711.9df9b4a2.chunk.js": "./static/js/5711.9df9b4a2.chunk.js",
"static/js/8769.996efd0a.chunk.js": "./static/js/8769.996efd0a.chunk.js",
"static/js/2033.bea44dd7.chunk.js": "./static/js/2033.bea44dd7.chunk.js",
"static/js/8311.d87242df.chunk.js": "./static/js/8311.d87242df.chunk.js",
"static/js/9987.79508d87.chunk.js": "./static/js/9987.79508d87.chunk.js",
"static/js/689.8272f409.chunk.js": "./static/js/689.8272f409.chunk.js",
"static/js/6164.c2cd952a.chunk.js": "./static/js/6164.c2cd952a.chunk.js",
"static/js/2372.97c7de62.chunk.js": "./static/js/2372.97c7de62.chunk.js",
"static/js/1324.cc645cb1.chunk.js": "./static/js/1324.cc645cb1.chunk.js",
"static/js/5693.eb317771.chunk.js": "./static/js/5693.eb317771.chunk.js",
"static/js/843.791dd143.chunk.js": "./static/js/843.791dd143.chunk.js",
"static/js/3035.ac7d86b8.chunk.js": "./static/js/3035.ac7d86b8.chunk.js",
"static/js/9537.895fc3ff.chunk.js": "./static/js/9537.895fc3ff.chunk.js",
"static/js/5711.9a92ab65.chunk.js": "./static/js/5711.9a92ab65.chunk.js",
"static/js/8769.58bd5ad6.chunk.js": "./static/js/8769.58bd5ad6.chunk.js",
"static/js/2033.a7412d01.chunk.js": "./static/js/2033.a7412d01.chunk.js",
"static/js/8311.0b90f115.chunk.js": "./static/js/8311.0b90f115.chunk.js",
"static/js/9987.62e7e151.chunk.js": "./static/js/9987.62e7e151.chunk.js",
"static/js/689.3e04559d.chunk.js": "./static/js/689.3e04559d.chunk.js",
"static/js/6164.8759ced6.chunk.js": "./static/js/6164.8759ced6.chunk.js",
"static/js/2372.d67d02b5.chunk.js": "./static/js/2372.d67d02b5.chunk.js",
"static/js/1324.acba4c47.chunk.js": "./static/js/1324.acba4c47.chunk.js",
"static/js/5693.741d3c68.chunk.js": "./static/js/5693.741d3c68.chunk.js",
"static/js/5872.62eb672b.chunk.js": "./static/js/5872.62eb672b.chunk.js",
"static/js/6758.cf46c98c.chunk.js": "./static/js/6758.cf46c98c.chunk.js",
"static/js/6758.c83201ee.chunk.js": "./static/js/6758.c83201ee.chunk.js",
"static/js/755.ac098541.chunk.js": "./static/js/755.ac098541.chunk.js",
"static/js/8715.1422d39d.chunk.js": "./static/js/8715.1422d39d.chunk.js",
"static/js/7880.813513ce.chunk.js": "./static/js/7880.813513ce.chunk.js",
"static/js/8715.e34fbcdb.chunk.js": "./static/js/8715.e34fbcdb.chunk.js",
"static/js/7880.35251951.chunk.js": "./static/js/7880.35251951.chunk.js",
"static/js/2209.3b0ca7fa.chunk.js": "./static/js/2209.3b0ca7fa.chunk.js",
"static/js/7435.2ed74878.chunk.js": "./static/js/7435.2ed74878.chunk.js",
"static/js/9340.acfd036d.chunk.js": "./static/js/9340.acfd036d.chunk.js",
"static/js/9269.dfec9438.chunk.js": "./static/js/9269.dfec9438.chunk.js",
"static/js/6925.b3e208b0.chunk.js": "./static/js/6925.b3e208b0.chunk.js",
"static/js/3527.b7757ae8.chunk.js": "./static/js/3527.b7757ae8.chunk.js",
"static/js/8789.c1e4949f.chunk.js": "./static/js/8789.c1e4949f.chunk.js",
"static/js/7485.64738b77.chunk.js": "./static/js/7485.64738b77.chunk.js",
"static/js/7041.219c4d11.chunk.js": "./static/js/7041.219c4d11.chunk.js",
"static/js/2138.7da0f275.chunk.js": "./static/js/2138.7da0f275.chunk.js",
"static/js/5699.016e97fa.chunk.js": "./static/js/5699.016e97fa.chunk.js",
"static/js/7381.7557c5b4.chunk.js": "./static/js/7381.7557c5b4.chunk.js",
"static/js/7052.1e7e2b40.chunk.js": "./static/js/7052.1e7e2b40.chunk.js",
"static/js/144.c7530a4b.chunk.js": "./static/js/144.c7530a4b.chunk.js",
"static/js/5978.7fb91072.chunk.js": "./static/js/5978.7fb91072.chunk.js",
"static/js/4103.926c44ef.chunk.js": "./static/js/4103.926c44ef.chunk.js",
"static/js/1702.851e407f.chunk.js": "./static/js/1702.851e407f.chunk.js",
"static/js/7435.14c02ae7.chunk.js": "./static/js/7435.14c02ae7.chunk.js",
"static/js/9340.9df4309b.chunk.js": "./static/js/9340.9df4309b.chunk.js",
"static/js/9269.853e70e9.chunk.js": "./static/js/9269.853e70e9.chunk.js",
"static/js/6925.034411f2.chunk.js": "./static/js/6925.034411f2.chunk.js",
"static/js/3527.96de4083.chunk.js": "./static/js/3527.96de4083.chunk.js",
"static/js/8789.c066ce6c.chunk.js": "./static/js/8789.c066ce6c.chunk.js",
"static/js/7485.3a46a0a3.chunk.js": "./static/js/7485.3a46a0a3.chunk.js",
"static/js/7041.cfb08b62.chunk.js": "./static/js/7041.cfb08b62.chunk.js",
"static/js/2138.7ef0755e.chunk.js": "./static/js/2138.7ef0755e.chunk.js",
"static/js/5699.6a74f983.chunk.js": "./static/js/5699.6a74f983.chunk.js",
"static/js/5153.24546201.chunk.js": "./static/js/5153.24546201.chunk.js",
"static/js/7052.50a0217e.chunk.js": "./static/js/7052.50a0217e.chunk.js",
"static/js/144.45106af8.chunk.js": "./static/js/144.45106af8.chunk.js",
"static/js/5978.e6638d0b.chunk.js": "./static/js/5978.e6638d0b.chunk.js",
"static/js/4103.f42a2340.chunk.js": "./static/js/4103.f42a2340.chunk.js",
"static/js/1702.7a20d1f8.chunk.js": "./static/js/1702.7a20d1f8.chunk.js",
"static/js/7601.4e033e78.chunk.js": "./static/js/7601.4e033e78.chunk.js",
"static/js/7945.24a46b62.chunk.js": "./static/js/7945.24a46b62.chunk.js",
"static/js/9619.a756233f.chunk.js": "./static/js/9619.a756233f.chunk.js",
"static/js/8017.d5b163f3.chunk.js": "./static/js/8017.d5b163f3.chunk.js",
"static/js/7945.5cbf1d20.chunk.js": "./static/js/7945.5cbf1d20.chunk.js",
"static/js/9619.c5f43814.chunk.js": "./static/js/9619.c5f43814.chunk.js",
"static/js/8017.04f38735.chunk.js": "./static/js/8017.04f38735.chunk.js",
"static/js/3323.f86a698b.chunk.js": "./static/js/3323.f86a698b.chunk.js",
"static/js/5128.96ab1387.chunk.js": "./static/js/5128.96ab1387.chunk.js",
"static/js/6140.37801ce8.chunk.js": "./static/js/6140.37801ce8.chunk.js",
"static/js/696.77a3fec7.chunk.js": "./static/js/696.77a3fec7.chunk.js",
"static/js/2166.a0f01e1a.chunk.js": "./static/js/2166.a0f01e1a.chunk.js",
"static/js/7063.d62078ab.chunk.js": "./static/js/7063.d62078ab.chunk.js",
"static/js/3061.2419f208.chunk.js": "./static/js/3061.2419f208.chunk.js",
"static/js/5064.637811d4.chunk.js": "./static/js/5064.637811d4.chunk.js",
"static/js/7643.41c0709d.chunk.js": "./static/js/7643.41c0709d.chunk.js",
"static/js/985.c802474d.chunk.js": "./static/js/985.c802474d.chunk.js",
"static/js/1370.a3d466ac.chunk.js": "./static/js/1370.a3d466ac.chunk.js",
"static/js/8823.5a005f09.chunk.js": "./static/js/8823.5a005f09.chunk.js",
"static/js/24.1245bd95.chunk.js": "./static/js/24.1245bd95.chunk.js",
"static/js/5851.9aeea951.chunk.js": "./static/js/5851.9aeea951.chunk.js",
"static/js/4705.1a1c4cd3.chunk.js": "./static/js/4705.1a1c4cd3.chunk.js",
"static/js/3654.877a48d3.chunk.js": "./static/js/3654.877a48d3.chunk.js",
"static/js/960.41c7b96c.chunk.js": "./static/js/960.41c7b96c.chunk.js",
"static/js/8642.ab45092c.chunk.js": "./static/js/8642.ab45092c.chunk.js",
"static/js/3329.89a09424.chunk.js": "./static/js/3329.89a09424.chunk.js",
"static/js/2332.7e0aee28.chunk.js": "./static/js/2332.7e0aee28.chunk.js",
"static/js/5941.c85331e3.chunk.js": "./static/js/5941.c85331e3.chunk.js",
"static/js/2704.fe33dd23.chunk.js": "./static/js/2704.fe33dd23.chunk.js",
"static/js/7774.32142847.chunk.js": "./static/js/7774.32142847.chunk.js",
"static/js/3851.c5eaa08e.chunk.js": "./static/js/3851.c5eaa08e.chunk.js",
"static/js/9965.e00429f9.chunk.js": "./static/js/9965.e00429f9.chunk.js",
"static/js/6065.e12fd403.chunk.js": "./static/js/6065.e12fd403.chunk.js",
"static/js/12.ab9b7ed0.chunk.js": "./static/js/12.ab9b7ed0.chunk.js",
"static/js/8010.8ce54818.chunk.js": "./static/js/8010.8ce54818.chunk.js",
"static/js/2689.5e76c1cd.chunk.js": "./static/js/2689.5e76c1cd.chunk.js",
"static/js/872.46d59171.chunk.js": "./static/js/872.46d59171.chunk.js",
"static/js/4676.8d6be1dd.chunk.js": "./static/js/4676.8d6be1dd.chunk.js",
"static/js/8825.e5adf924.chunk.js": "./static/js/8825.e5adf924.chunk.js",
"static/js/614.f6cdf349.chunk.js": "./static/js/614.f6cdf349.chunk.js",
"static/js/502.0106f2a9.chunk.js": "./static/js/502.0106f2a9.chunk.js",
"static/js/6799.61dee8ac.chunk.js": "./static/js/6799.61dee8ac.chunk.js",
"static/js/7659.124c07a5.chunk.js": "./static/js/7659.124c07a5.chunk.js",
"static/js/7515.346161ed.chunk.js": "./static/js/7515.346161ed.chunk.js",
"static/js/6654.d76daa88.chunk.js": "./static/js/6654.d76daa88.chunk.js",
"static/js/5311.bf44bf69.chunk.js": "./static/js/5311.bf44bf69.chunk.js",
"static/js/5809.064e83cc.chunk.js": "./static/js/5809.064e83cc.chunk.js",
"static/js/7264.f7c51a0e.chunk.js": "./static/js/7264.f7c51a0e.chunk.js",
"static/js/4172.0d489f24.chunk.js": "./static/js/4172.0d489f24.chunk.js",
"static/js/6108.7a769377.chunk.js": "./static/js/6108.7a769377.chunk.js",
"static/js/9714.48a29c42.chunk.js": "./static/js/9714.48a29c42.chunk.js",
"static/js/459.65dbecac.chunk.js": "./static/js/459.65dbecac.chunk.js",
"static/js/8152.6306ebd5.chunk.js": "./static/js/8152.6306ebd5.chunk.js",
"static/js/1303.12f6ca82.chunk.js": "./static/js/1303.12f6ca82.chunk.js",
"static/js/5079.a0847792.chunk.js": "./static/js/5079.a0847792.chunk.js",
"static/js/696.8dec9292.chunk.js": "./static/js/696.8dec9292.chunk.js",
"static/js/2166.880cc038.chunk.js": "./static/js/2166.880cc038.chunk.js",
"static/js/7063.bf210d7d.chunk.js": "./static/js/7063.bf210d7d.chunk.js",
"static/js/3061.2061eb2e.chunk.js": "./static/js/3061.2061eb2e.chunk.js",
"static/js/5064.0016782f.chunk.js": "./static/js/5064.0016782f.chunk.js",
"static/js/7643.f3b86455.chunk.js": "./static/js/7643.f3b86455.chunk.js",
"static/js/985.77a278ca.chunk.js": "./static/js/985.77a278ca.chunk.js",
"static/js/1370.efee6fa6.chunk.js": "./static/js/1370.efee6fa6.chunk.js",
"static/js/8823.bc273dec.chunk.js": "./static/js/8823.bc273dec.chunk.js",
"static/js/24.e576918a.chunk.js": "./static/js/24.e576918a.chunk.js",
"static/js/5851.f2e67509.chunk.js": "./static/js/5851.f2e67509.chunk.js",
"static/js/4705.b1d28560.chunk.js": "./static/js/4705.b1d28560.chunk.js",
"static/js/8963.d2703f60.chunk.js": "./static/js/8963.d2703f60.chunk.js",
"static/js/960.fdc14172.chunk.js": "./static/js/960.fdc14172.chunk.js",
"static/js/8642.e13c61e6.chunk.js": "./static/js/8642.e13c61e6.chunk.js",
"static/js/3329.c25b9821.chunk.js": "./static/js/3329.c25b9821.chunk.js",
"static/js/2332.f3909952.chunk.js": "./static/js/2332.f3909952.chunk.js",
"static/js/5941.179188d6.chunk.js": "./static/js/5941.179188d6.chunk.js",
"static/js/2704.71ac23f9.chunk.js": "./static/js/2704.71ac23f9.chunk.js",
"static/js/7774.a47fade2.chunk.js": "./static/js/7774.a47fade2.chunk.js",
"static/js/3851.b9c2f806.chunk.js": "./static/js/3851.b9c2f806.chunk.js",
"static/js/9965.bf313381.chunk.js": "./static/js/9965.bf313381.chunk.js",
"static/js/6065.f1e0bfe2.chunk.js": "./static/js/6065.f1e0bfe2.chunk.js",
"static/js/12.eed2916e.chunk.js": "./static/js/12.eed2916e.chunk.js",
"static/js/8010.f3d6885a.chunk.js": "./static/js/8010.f3d6885a.chunk.js",
"static/js/2689.ba69c148.chunk.js": "./static/js/2689.ba69c148.chunk.js",
"static/js/872.a02ea93f.chunk.js": "./static/js/872.a02ea93f.chunk.js",
"static/js/4676.563616b8.chunk.js": "./static/js/4676.563616b8.chunk.js",
"static/js/8825.31f9162e.chunk.js": "./static/js/8825.31f9162e.chunk.js",
"static/js/614.29e0d9dd.chunk.js": "./static/js/614.29e0d9dd.chunk.js",
"static/js/502.b83faa7c.chunk.js": "./static/js/502.b83faa7c.chunk.js",
"static/js/6799.3bc3931a.chunk.js": "./static/js/6799.3bc3931a.chunk.js",
"static/js/7659.9554f8f3.chunk.js": "./static/js/7659.9554f8f3.chunk.js",
"static/js/7515.3c5e861f.chunk.js": "./static/js/7515.3c5e861f.chunk.js",
"static/js/6654.bfc29bf7.chunk.js": "./static/js/6654.bfc29bf7.chunk.js",
"static/js/5311.7739b1f7.chunk.js": "./static/js/5311.7739b1f7.chunk.js",
"static/js/5809.4d2c5844.chunk.js": "./static/js/5809.4d2c5844.chunk.js",
"static/js/7264.dfbba757.chunk.js": "./static/js/7264.dfbba757.chunk.js",
"static/js/4172.139ac13b.chunk.js": "./static/js/4172.139ac13b.chunk.js",
"static/js/6108.84010ebc.chunk.js": "./static/js/6108.84010ebc.chunk.js",
"static/js/9714.c65a6c13.chunk.js": "./static/js/9714.c65a6c13.chunk.js",
"static/js/459.f3b23f09.chunk.js": "./static/js/459.f3b23f09.chunk.js",
"static/js/8152.789135af.chunk.js": "./static/js/8152.789135af.chunk.js",
"static/js/1303.6fa13ab4.chunk.js": "./static/js/1303.6fa13ab4.chunk.js",
"static/js/5079.118cae1f.chunk.js": "./static/js/5079.118cae1f.chunk.js",
"static/js/4581.41480fcf.chunk.js": "./static/js/4581.41480fcf.chunk.js",
"static/js/6016.2a05d7e1.chunk.js": "./static/js/6016.2a05d7e1.chunk.js",
"static/js/2346.02be873a.chunk.js": "./static/js/2346.02be873a.chunk.js",
"static/js/2346.b8159dba.chunk.js": "./static/js/2346.b8159dba.chunk.js",
"static/js/1195.955963a0.chunk.js": "./static/js/1195.955963a0.chunk.js",
"static/js/1011.59fa8004.chunk.js": "./static/js/1011.59fa8004.chunk.js",
"static/js/1011.925632a1.chunk.js": "./static/js/1011.925632a1.chunk.js",
"static/media/videoBG.mp4": "./static/media/videoBG.17363418b3c2246a0e27.mp4",
"static/media/loginAnimationPoster.png": "./static/media/loginAnimationPoster.9aa924bfe619e71d5d29.png",
"static/media/Inter-BoldItalic.woff": "./static/media/Inter-BoldItalic.b376885042f6c961a541.woff",
@@ -119,104 +119,104 @@
"static/media/placeholderimage.png": "./static/media/placeholderimage.077ea48bd1ef1f4a883f.png",
"index.html": "./index.html",
"main.e60e4760.css.map": "./static/css/main.e60e4760.css.map",
"main.3bcbce18.js.map": "./static/js/main.3bcbce18.js.map",
"5301.2c626a41.chunk.js.map": "./static/js/5301.2c626a41.chunk.js.map",
"main.b9463185.js.map": "./static/js/main.b9463185.js.map",
"5301.79001158.chunk.js.map": "./static/js/5301.79001158.chunk.js.map",
"9361.ce3b326c.chunk.js.map": "./static/js/9361.ce3b326c.chunk.js.map",
"843.454ac75f.chunk.js.map": "./static/js/843.454ac75f.chunk.js.map",
"3035.d50f543e.chunk.js.map": "./static/js/3035.d50f543e.chunk.js.map",
"9537.69d1689c.chunk.js.map": "./static/js/9537.69d1689c.chunk.js.map",
"5711.9df9b4a2.chunk.js.map": "./static/js/5711.9df9b4a2.chunk.js.map",
"8769.996efd0a.chunk.js.map": "./static/js/8769.996efd0a.chunk.js.map",
"2033.bea44dd7.chunk.js.map": "./static/js/2033.bea44dd7.chunk.js.map",
"8311.d87242df.chunk.js.map": "./static/js/8311.d87242df.chunk.js.map",
"9987.79508d87.chunk.js.map": "./static/js/9987.79508d87.chunk.js.map",
"689.8272f409.chunk.js.map": "./static/js/689.8272f409.chunk.js.map",
"6164.c2cd952a.chunk.js.map": "./static/js/6164.c2cd952a.chunk.js.map",
"2372.97c7de62.chunk.js.map": "./static/js/2372.97c7de62.chunk.js.map",
"1324.cc645cb1.chunk.js.map": "./static/js/1324.cc645cb1.chunk.js.map",
"5693.eb317771.chunk.js.map": "./static/js/5693.eb317771.chunk.js.map",
"843.791dd143.chunk.js.map": "./static/js/843.791dd143.chunk.js.map",
"3035.ac7d86b8.chunk.js.map": "./static/js/3035.ac7d86b8.chunk.js.map",
"9537.895fc3ff.chunk.js.map": "./static/js/9537.895fc3ff.chunk.js.map",
"5711.9a92ab65.chunk.js.map": "./static/js/5711.9a92ab65.chunk.js.map",
"8769.58bd5ad6.chunk.js.map": "./static/js/8769.58bd5ad6.chunk.js.map",
"2033.a7412d01.chunk.js.map": "./static/js/2033.a7412d01.chunk.js.map",
"8311.0b90f115.chunk.js.map": "./static/js/8311.0b90f115.chunk.js.map",
"9987.62e7e151.chunk.js.map": "./static/js/9987.62e7e151.chunk.js.map",
"689.3e04559d.chunk.js.map": "./static/js/689.3e04559d.chunk.js.map",
"6164.8759ced6.chunk.js.map": "./static/js/6164.8759ced6.chunk.js.map",
"2372.d67d02b5.chunk.js.map": "./static/js/2372.d67d02b5.chunk.js.map",
"1324.acba4c47.chunk.js.map": "./static/js/1324.acba4c47.chunk.js.map",
"5693.741d3c68.chunk.js.map": "./static/js/5693.741d3c68.chunk.js.map",
"5872.62eb672b.chunk.js.map": "./static/js/5872.62eb672b.chunk.js.map",
"6758.cf46c98c.chunk.js.map": "./static/js/6758.cf46c98c.chunk.js.map",
"6758.c83201ee.chunk.js.map": "./static/js/6758.c83201ee.chunk.js.map",
"755.ac098541.chunk.js.map": "./static/js/755.ac098541.chunk.js.map",
"8715.1422d39d.chunk.js.map": "./static/js/8715.1422d39d.chunk.js.map",
"7880.813513ce.chunk.js.map": "./static/js/7880.813513ce.chunk.js.map",
"8715.e34fbcdb.chunk.js.map": "./static/js/8715.e34fbcdb.chunk.js.map",
"7880.35251951.chunk.js.map": "./static/js/7880.35251951.chunk.js.map",
"2209.3b0ca7fa.chunk.js.map": "./static/js/2209.3b0ca7fa.chunk.js.map",
"7435.2ed74878.chunk.js.map": "./static/js/7435.2ed74878.chunk.js.map",
"9340.acfd036d.chunk.js.map": "./static/js/9340.acfd036d.chunk.js.map",
"9269.dfec9438.chunk.js.map": "./static/js/9269.dfec9438.chunk.js.map",
"6925.b3e208b0.chunk.js.map": "./static/js/6925.b3e208b0.chunk.js.map",
"3527.b7757ae8.chunk.js.map": "./static/js/3527.b7757ae8.chunk.js.map",
"8789.c1e4949f.chunk.js.map": "./static/js/8789.c1e4949f.chunk.js.map",
"7485.64738b77.chunk.js.map": "./static/js/7485.64738b77.chunk.js.map",
"7041.219c4d11.chunk.js.map": "./static/js/7041.219c4d11.chunk.js.map",
"2138.7da0f275.chunk.js.map": "./static/js/2138.7da0f275.chunk.js.map",
"5699.016e97fa.chunk.js.map": "./static/js/5699.016e97fa.chunk.js.map",
"7381.7557c5b4.chunk.js.map": "./static/js/7381.7557c5b4.chunk.js.map",
"7052.1e7e2b40.chunk.js.map": "./static/js/7052.1e7e2b40.chunk.js.map",
"144.c7530a4b.chunk.js.map": "./static/js/144.c7530a4b.chunk.js.map",
"5978.7fb91072.chunk.js.map": "./static/js/5978.7fb91072.chunk.js.map",
"4103.926c44ef.chunk.js.map": "./static/js/4103.926c44ef.chunk.js.map",
"1702.851e407f.chunk.js.map": "./static/js/1702.851e407f.chunk.js.map",
"7435.14c02ae7.chunk.js.map": "./static/js/7435.14c02ae7.chunk.js.map",
"9340.9df4309b.chunk.js.map": "./static/js/9340.9df4309b.chunk.js.map",
"9269.853e70e9.chunk.js.map": "./static/js/9269.853e70e9.chunk.js.map",
"6925.034411f2.chunk.js.map": "./static/js/6925.034411f2.chunk.js.map",
"3527.96de4083.chunk.js.map": "./static/js/3527.96de4083.chunk.js.map",
"8789.c066ce6c.chunk.js.map": "./static/js/8789.c066ce6c.chunk.js.map",
"7485.3a46a0a3.chunk.js.map": "./static/js/7485.3a46a0a3.chunk.js.map",
"7041.cfb08b62.chunk.js.map": "./static/js/7041.cfb08b62.chunk.js.map",
"2138.7ef0755e.chunk.js.map": "./static/js/2138.7ef0755e.chunk.js.map",
"5699.6a74f983.chunk.js.map": "./static/js/5699.6a74f983.chunk.js.map",
"5153.24546201.chunk.js.map": "./static/js/5153.24546201.chunk.js.map",
"7052.50a0217e.chunk.js.map": "./static/js/7052.50a0217e.chunk.js.map",
"144.45106af8.chunk.js.map": "./static/js/144.45106af8.chunk.js.map",
"5978.e6638d0b.chunk.js.map": "./static/js/5978.e6638d0b.chunk.js.map",
"4103.f42a2340.chunk.js.map": "./static/js/4103.f42a2340.chunk.js.map",
"1702.7a20d1f8.chunk.js.map": "./static/js/1702.7a20d1f8.chunk.js.map",
"7601.4e033e78.chunk.js.map": "./static/js/7601.4e033e78.chunk.js.map",
"7945.24a46b62.chunk.js.map": "./static/js/7945.24a46b62.chunk.js.map",
"9619.a756233f.chunk.js.map": "./static/js/9619.a756233f.chunk.js.map",
"8017.d5b163f3.chunk.js.map": "./static/js/8017.d5b163f3.chunk.js.map",
"7945.5cbf1d20.chunk.js.map": "./static/js/7945.5cbf1d20.chunk.js.map",
"9619.c5f43814.chunk.js.map": "./static/js/9619.c5f43814.chunk.js.map",
"8017.04f38735.chunk.js.map": "./static/js/8017.04f38735.chunk.js.map",
"3323.f86a698b.chunk.js.map": "./static/js/3323.f86a698b.chunk.js.map",
"5128.96ab1387.chunk.js.map": "./static/js/5128.96ab1387.chunk.js.map",
"6140.37801ce8.chunk.js.map": "./static/js/6140.37801ce8.chunk.js.map",
"696.77a3fec7.chunk.js.map": "./static/js/696.77a3fec7.chunk.js.map",
"2166.a0f01e1a.chunk.js.map": "./static/js/2166.a0f01e1a.chunk.js.map",
"7063.d62078ab.chunk.js.map": "./static/js/7063.d62078ab.chunk.js.map",
"3061.2419f208.chunk.js.map": "./static/js/3061.2419f208.chunk.js.map",
"5064.637811d4.chunk.js.map": "./static/js/5064.637811d4.chunk.js.map",
"7643.41c0709d.chunk.js.map": "./static/js/7643.41c0709d.chunk.js.map",
"985.c802474d.chunk.js.map": "./static/js/985.c802474d.chunk.js.map",
"1370.a3d466ac.chunk.js.map": "./static/js/1370.a3d466ac.chunk.js.map",
"8823.5a005f09.chunk.js.map": "./static/js/8823.5a005f09.chunk.js.map",
"24.1245bd95.chunk.js.map": "./static/js/24.1245bd95.chunk.js.map",
"5851.9aeea951.chunk.js.map": "./static/js/5851.9aeea951.chunk.js.map",
"4705.1a1c4cd3.chunk.js.map": "./static/js/4705.1a1c4cd3.chunk.js.map",
"3654.877a48d3.chunk.js.map": "./static/js/3654.877a48d3.chunk.js.map",
"960.41c7b96c.chunk.js.map": "./static/js/960.41c7b96c.chunk.js.map",
"8642.ab45092c.chunk.js.map": "./static/js/8642.ab45092c.chunk.js.map",
"3329.89a09424.chunk.js.map": "./static/js/3329.89a09424.chunk.js.map",
"2332.7e0aee28.chunk.js.map": "./static/js/2332.7e0aee28.chunk.js.map",
"5941.c85331e3.chunk.js.map": "./static/js/5941.c85331e3.chunk.js.map",
"2704.fe33dd23.chunk.js.map": "./static/js/2704.fe33dd23.chunk.js.map",
"7774.32142847.chunk.js.map": "./static/js/7774.32142847.chunk.js.map",
"3851.c5eaa08e.chunk.js.map": "./static/js/3851.c5eaa08e.chunk.js.map",
"9965.e00429f9.chunk.js.map": "./static/js/9965.e00429f9.chunk.js.map",
"6065.e12fd403.chunk.js.map": "./static/js/6065.e12fd403.chunk.js.map",
"12.ab9b7ed0.chunk.js.map": "./static/js/12.ab9b7ed0.chunk.js.map",
"8010.8ce54818.chunk.js.map": "./static/js/8010.8ce54818.chunk.js.map",
"2689.5e76c1cd.chunk.js.map": "./static/js/2689.5e76c1cd.chunk.js.map",
"872.46d59171.chunk.js.map": "./static/js/872.46d59171.chunk.js.map",
"4676.8d6be1dd.chunk.js.map": "./static/js/4676.8d6be1dd.chunk.js.map",
"8825.e5adf924.chunk.js.map": "./static/js/8825.e5adf924.chunk.js.map",
"614.f6cdf349.chunk.js.map": "./static/js/614.f6cdf349.chunk.js.map",
"502.0106f2a9.chunk.js.map": "./static/js/502.0106f2a9.chunk.js.map",
"6799.61dee8ac.chunk.js.map": "./static/js/6799.61dee8ac.chunk.js.map",
"7659.124c07a5.chunk.js.map": "./static/js/7659.124c07a5.chunk.js.map",
"7515.346161ed.chunk.js.map": "./static/js/7515.346161ed.chunk.js.map",
"6654.d76daa88.chunk.js.map": "./static/js/6654.d76daa88.chunk.js.map",
"5311.bf44bf69.chunk.js.map": "./static/js/5311.bf44bf69.chunk.js.map",
"5809.064e83cc.chunk.js.map": "./static/js/5809.064e83cc.chunk.js.map",
"7264.f7c51a0e.chunk.js.map": "./static/js/7264.f7c51a0e.chunk.js.map",
"4172.0d489f24.chunk.js.map": "./static/js/4172.0d489f24.chunk.js.map",
"6108.7a769377.chunk.js.map": "./static/js/6108.7a769377.chunk.js.map",
"9714.48a29c42.chunk.js.map": "./static/js/9714.48a29c42.chunk.js.map",
"459.65dbecac.chunk.js.map": "./static/js/459.65dbecac.chunk.js.map",
"8152.6306ebd5.chunk.js.map": "./static/js/8152.6306ebd5.chunk.js.map",
"1303.12f6ca82.chunk.js.map": "./static/js/1303.12f6ca82.chunk.js.map",
"5079.a0847792.chunk.js.map": "./static/js/5079.a0847792.chunk.js.map",
"696.8dec9292.chunk.js.map": "./static/js/696.8dec9292.chunk.js.map",
"2166.880cc038.chunk.js.map": "./static/js/2166.880cc038.chunk.js.map",
"7063.bf210d7d.chunk.js.map": "./static/js/7063.bf210d7d.chunk.js.map",
"3061.2061eb2e.chunk.js.map": "./static/js/3061.2061eb2e.chunk.js.map",
"5064.0016782f.chunk.js.map": "./static/js/5064.0016782f.chunk.js.map",
"7643.f3b86455.chunk.js.map": "./static/js/7643.f3b86455.chunk.js.map",
"985.77a278ca.chunk.js.map": "./static/js/985.77a278ca.chunk.js.map",
"1370.efee6fa6.chunk.js.map": "./static/js/1370.efee6fa6.chunk.js.map",
"8823.bc273dec.chunk.js.map": "./static/js/8823.bc273dec.chunk.js.map",
"24.e576918a.chunk.js.map": "./static/js/24.e576918a.chunk.js.map",
"5851.f2e67509.chunk.js.map": "./static/js/5851.f2e67509.chunk.js.map",
"4705.b1d28560.chunk.js.map": "./static/js/4705.b1d28560.chunk.js.map",
"8963.d2703f60.chunk.js.map": "./static/js/8963.d2703f60.chunk.js.map",
"960.fdc14172.chunk.js.map": "./static/js/960.fdc14172.chunk.js.map",
"8642.e13c61e6.chunk.js.map": "./static/js/8642.e13c61e6.chunk.js.map",
"3329.c25b9821.chunk.js.map": "./static/js/3329.c25b9821.chunk.js.map",
"2332.f3909952.chunk.js.map": "./static/js/2332.f3909952.chunk.js.map",
"5941.179188d6.chunk.js.map": "./static/js/5941.179188d6.chunk.js.map",
"2704.71ac23f9.chunk.js.map": "./static/js/2704.71ac23f9.chunk.js.map",
"7774.a47fade2.chunk.js.map": "./static/js/7774.a47fade2.chunk.js.map",
"3851.b9c2f806.chunk.js.map": "./static/js/3851.b9c2f806.chunk.js.map",
"9965.bf313381.chunk.js.map": "./static/js/9965.bf313381.chunk.js.map",
"6065.f1e0bfe2.chunk.js.map": "./static/js/6065.f1e0bfe2.chunk.js.map",
"12.eed2916e.chunk.js.map": "./static/js/12.eed2916e.chunk.js.map",
"8010.f3d6885a.chunk.js.map": "./static/js/8010.f3d6885a.chunk.js.map",
"2689.ba69c148.chunk.js.map": "./static/js/2689.ba69c148.chunk.js.map",
"872.a02ea93f.chunk.js.map": "./static/js/872.a02ea93f.chunk.js.map",
"4676.563616b8.chunk.js.map": "./static/js/4676.563616b8.chunk.js.map",
"8825.31f9162e.chunk.js.map": "./static/js/8825.31f9162e.chunk.js.map",
"614.29e0d9dd.chunk.js.map": "./static/js/614.29e0d9dd.chunk.js.map",
"502.b83faa7c.chunk.js.map": "./static/js/502.b83faa7c.chunk.js.map",
"6799.3bc3931a.chunk.js.map": "./static/js/6799.3bc3931a.chunk.js.map",
"7659.9554f8f3.chunk.js.map": "./static/js/7659.9554f8f3.chunk.js.map",
"7515.3c5e861f.chunk.js.map": "./static/js/7515.3c5e861f.chunk.js.map",
"6654.bfc29bf7.chunk.js.map": "./static/js/6654.bfc29bf7.chunk.js.map",
"5311.7739b1f7.chunk.js.map": "./static/js/5311.7739b1f7.chunk.js.map",
"5809.4d2c5844.chunk.js.map": "./static/js/5809.4d2c5844.chunk.js.map",
"7264.dfbba757.chunk.js.map": "./static/js/7264.dfbba757.chunk.js.map",
"4172.139ac13b.chunk.js.map": "./static/js/4172.139ac13b.chunk.js.map",
"6108.84010ebc.chunk.js.map": "./static/js/6108.84010ebc.chunk.js.map",
"9714.c65a6c13.chunk.js.map": "./static/js/9714.c65a6c13.chunk.js.map",
"459.f3b23f09.chunk.js.map": "./static/js/459.f3b23f09.chunk.js.map",
"8152.789135af.chunk.js.map": "./static/js/8152.789135af.chunk.js.map",
"1303.6fa13ab4.chunk.js.map": "./static/js/1303.6fa13ab4.chunk.js.map",
"5079.118cae1f.chunk.js.map": "./static/js/5079.118cae1f.chunk.js.map",
"4581.41480fcf.chunk.js.map": "./static/js/4581.41480fcf.chunk.js.map",
"6016.2a05d7e1.chunk.js.map": "./static/js/6016.2a05d7e1.chunk.js.map",
"2346.02be873a.chunk.js.map": "./static/js/2346.02be873a.chunk.js.map",
"2346.b8159dba.chunk.js.map": "./static/js/2346.b8159dba.chunk.js.map",
"1195.955963a0.chunk.js.map": "./static/js/1195.955963a0.chunk.js.map",
"1011.59fa8004.chunk.js.map": "./static/js/1011.59fa8004.chunk.js.map"
"1011.925632a1.chunk.js.map": "./static/js/1011.925632a1.chunk.js.map"
},
"entrypoints": [
"static/css/main.e60e4760.css",
"static/js/main.3bcbce18.js"
"static/js/main.b9463185.js"
]
}

View File

@@ -1 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="/"/><meta content="width=device-width,initial-scale=1" name="viewport"/><meta content="#081C42" media="(prefers-color-scheme: light)" name="theme-color"/><meta content="#081C42" media="(prefers-color-scheme: dark)" name="theme-color"/><meta content="MinIO Console" name="description"/><meta name="minio-license" content="agpl"/><link href="./styles/root-styles.css" rel="stylesheet"/><link href="./apple-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/><link href="./favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="./favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="./favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="./manifest.json" rel="manifest"/><link color="#3a4e54" href="./safari-pinned-tab.svg" rel="mask-icon"/><title>MinIO Console</title><script defer="defer" src="./static/js/main.3bcbce18.js"></script><link href="./static/css/main.e60e4760.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><div id="preload"><img src="./images/background.svg"/> <img src="./images/background-wave-orig2.svg"/></div><div id="loader-block"><img src="./Loader.svg"/></div></div></body></html>
<!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="/"/><meta content="width=device-width,initial-scale=1" name="viewport"/><meta content="#081C42" media="(prefers-color-scheme: light)" name="theme-color"/><meta content="#081C42" media="(prefers-color-scheme: dark)" name="theme-color"/><meta content="MinIO Console" name="description"/><meta name="minio-license" content="agpl"/><link href="./styles/root-styles.css" rel="stylesheet"/><link href="./apple-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/><link href="./favicon-32x32.png" rel="icon" sizes="32x32" type="image/png"/><link href="./favicon-96x96.png" rel="icon" sizes="96x96" type="image/png"/><link href="./favicon-16x16.png" rel="icon" sizes="16x16" type="image/png"/><link href="./manifest.json" rel="manifest"/><link color="#3a4e54" href="./safari-pinned-tab.svg" rel="mask-icon"/><title>MinIO Console</title><script defer="defer" src="./static/js/main.b9463185.js"></script><link href="./static/css/main.e60e4760.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"><div id="preload"><img src="./images/background.svg"/> <img src="./images/background-wave-orig2.svg"/></div><div id="loader-block"><img src="./Loader.svg"/></div></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +0,0 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[1303],{1303:(e,a,t)=>{t.r(a),t.d(a,{default:()=>g});var l=t(65043),n=t(89923),s=t(77403),r=t(94141),c=t(64159),d=t(20554),o=t(56629),i=t(53518),u=t(70579);const g=e=>{let{modalOpen:a,currentTags:t,onCloseAndUpdate:g,bucketName:b}=e;const p=(0,d.jL)(),[h,w]=(0,l.useState)(""),[x,m]=(0,l.useState)(""),[j,k]=(0,l.useState)(!1);return(0,u.jsx)(r.A,{modalOpen:a,title:"Add New Tag ",onClose:()=>{g(!1)},titleIcon:(0,u.jsx)(n.b_$,{}),children:(0,u.jsxs)(n.Hbc,{withBorders:!1,containerPadding:!1,children:[(0,u.jsxs)(n.azJ,{sx:{marginBottom:15},children:[(0,u.jsx)("strong",{children:"Bucket"}),": ",b]}),(0,u.jsx)(n.cl_,{value:h,label:"New Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter New Tag Key",onChange:e=>{w(e.target.value)}}),(0,u.jsx)(n.cl_,{value:x,label:"New Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter New Tag Label",onChange:e=>{m(e.target.value)}}),(0,u.jsxs)(n.xA9,{item:!0,xs:12,sx:s.Uz.modalButtonBar,children:[(0,u.jsx)(n.$nd,{id:"clear",type:"button",variant:"regular",onClick:()=>{m(""),w("")},label:"Clear"}),(0,u.jsx)(n.$nd,{id:"save-add-bucket-tag",type:"submit",variant:"callAction",color:"primary",disabled:""===x.trim()||""===h.trim()||j,onClick:()=>{k(!0);const e={};e[h]=x;const a={...t,...e};o.F.buckets.putBucketTags(b,{tags:a}).then((()=>{k(!1),g(!0)})).catch((e=>{p((0,c.Dy)((0,i.S)(e.error))),k(!1)}))},label:"Save"})]})]})})}}}]);
//# sourceMappingURL=1303.12f6ca82.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[1303],{1303:(e,t,a)=>{a.r(t),a.d(t,{default:()=>g});var n=a(65043),l=a(89923),r=a(77403),s=a(94141),o=a(64159),i=a(21383),d=a(56629),c=a(53518),u=a(70579);const g=e=>{let{modalOpen:t,currentTags:a,onCloseAndUpdate:g,bucketName:m}=e;const p=(0,i.jL)(),[b,h]=(0,n.useState)(""),[x,w]=(0,n.useState)(""),[j,C]=(0,n.useState)(!1);return(0,u.jsx)(s.A,{modalOpen:t,title:"Add New Tag ",onClose:()=>{g(!1)},titleIcon:(0,u.jsx)(l.b_$,{}),children:(0,u.jsxs)(l.Hbc,{withBorders:!1,containerPadding:!1,children:[(0,u.jsxs)(l.azJ,{sx:{marginBottom:15},children:[(0,u.jsx)("strong",{children:"Bucket"}),": ",m]}),(0,u.jsx)(l.cl_,{value:b,label:"New Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter New Tag Key",onChange:e=>{h(e.target.value)}}),(0,u.jsx)(l.cl_,{value:x,label:"New Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter New Tag Label",onChange:e=>{w(e.target.value)}}),(0,u.jsxs)(l.xA9,{item:!0,xs:12,sx:r.Uz.modalButtonBar,children:[(0,u.jsx)(l.$nd,{id:"clear",type:"button",variant:"regular",onClick:()=>{w(""),h("")},label:"Clear"}),(0,u.jsx)(l.$nd,{id:"save-add-bucket-tag",type:"submit",variant:"callAction",color:"primary",disabled:""===x.trim()||""===b.trim()||j,onClick:()=>{C(!0);const e={};e[b]=x;const t={...a,...e};d.F.buckets.putBucketTags(m,{tags:t}).then((()=>{C(!1),g(!0)})).catch((e=>{p((0,o.Dy)((0,c.S)(e.error))),C(!1)}))},label:"Save"})]})]})})}},94141:(e,t,a)=>{a.d(t,{A:()=>c});var n=a(65043),l=a(22166),r=a(89923),s=a(21383),o=a(64159),i=a(49555),d=a(70579);const c=e=>{let{onClose:t,modalOpen:a,title:c,children:u,wideLimit:g=!0,titleIcon:m=null,iconColor:p="default",sx:b}=e;const h=(0,s.jL)(),[x,w]=(0,n.useState)(!1),j=(0,l.d4)((e=>e.system.modalSnackBar));(0,n.useEffect)((()=>{h((0,o.h0)(""))}),[h]),(0,n.useEffect)((()=>{if(j){if(""===j.message)return void w(!1);"error"!==j.type&&w(!0)}}),[j]);let C="";return j&&(C=j.detailedErrorMsg,(""===C||C&&C.length<5)&&(C=j.message)),(0,d.jsxs)(r.ngX,{onClose:t,open:a,title:c,titleIcon:m,widthLimit:g,sx:b,iconColor:p,children:[(0,d.jsx)(i.A,{isModal:!0}),(0,d.jsx)(r.qb_,{onClose:()=>{w(!1),h((0,o.h0)(""))},open:x,message:C,mode:"inline",variant:"error"===j.type?"error":"default",autoHideDuration:"error"===j.type?10:5,condensed:!0}),u]})}}}]);
//# sourceMappingURL=1303.6fa13ab4.chunk.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[2332],{32332:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j,emptyContent:()=>y});var a=n(65043),s=n(89923),l=n(73216),o=n(99161),r=n(64159),c=n(20554),i=n(77403),p=n(38375),x=n(48793),m=n(55968),d=n(56629),u=n(53518),h=n(70579);const y='{\n "bytes": ""\n}',j=()=>{const e=(0,c.jL)(),t=(0,l.Zp)(),[n,j]=(0,a.useState)(!1),[b,k]=(0,a.useState)(""),[f,C]=(0,a.useState)(y),S=""!==b.trim()&&-1===b.indexOf(" ");return(0,a.useEffect)((()=>{e((0,r.ph)("import_key"))}),[]),(0,h.jsx)(a.Fragment,{children:(0,h.jsxs)(s.xA9,{item:!0,xs:12,children:[(0,h.jsx)(x.A,{label:(0,h.jsx)(s.EGL,{onClick:()=>t(o.zZ.KMS_KEYS),label:"Keys"}),actions:(0,h.jsx)(m.A,{})}),(0,h.jsx)(s.Mxu,{children:(0,h.jsx)(s.Hbc,{title:"Import Key",icon:(0,h.jsx)(s.No_,{}),helpBox:(0,h.jsx)(p.A,{helpText:"Encryption Key",contents:["Import a cryptographic key in the Key Management Service server connected to MINIO."]}),children:(0,h.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:n=>{(n=>{j(!0),n.preventDefault();let a=JSON.parse(f);d.F.kms.kmsImportKey(b,a).then((e=>{t("".concat(o.zZ.KMS_KEYS))})).catch((async t=>{const n=await t.json();e((0,r.C9)((0,u.S)(n)))})).finally((()=>j(!1)))})(n)},children:[(0,h.jsx)(s.cl_,{id:"key-name",name:"key-name",label:"Key Name",autoFocus:!0,value:b,error:(e=>-1!==e.indexOf(" ")?"Key name cannot contain spaces":"")(b),onChange:e=>{k(e.target.value)}}),(0,h.jsx)(s.BYM,{label:"Set key Content",value:f,onChange:e=>{C(e)},editorHeight:"350px"}),(0,h.jsxs)(s.xA9,{item:!0,xs:12,sx:i.Uz.modalButtonBar,children:[(0,h.jsx)(s.$nd,{id:"clear",type:"button",variant:"regular",onClick:()=>{k(""),C("")},label:"Clear"}),(0,h.jsx)(s.$nd,{id:"import-key",type:"submit",variant:"callAction",color:"primary",disabled:n||!S,label:"Import"})]})]})})})]})})}},38375:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(65043),s=n(89923),l=n(70579);const o=e=>{let{helpText:t,contents:n}=e;return(0,l.jsx)(s.lVp,{iconComponent:(0,l.jsx)(s.nag,{}),title:t,help:(0,l.jsx)(a.Fragment,{children:n.map((e=>(0,l.jsx)(s.azJ,{sx:{paddingBottom:"20px"},children:e})))})})}}}]);
//# sourceMappingURL=2332.7e0aee28.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[2332],{32332:(e,t,n)=>{n.r(t),n.d(t,{default:()=>j,emptyContent:()=>y});var a=n(65043),s=n(89923),l=n(73216),o=n(99161),r=n(64159),c=n(21383),i=n(77403),p=n(38375),x=n(48793),m=n(55968),d=n(56629),u=n(53518),h=n(70579);const y='{\n "bytes": ""\n}',j=()=>{const e=(0,c.jL)(),t=(0,l.Zp)(),[n,j]=(0,a.useState)(!1),[b,k]=(0,a.useState)(""),[f,C]=(0,a.useState)(y),S=""!==b.trim()&&-1===b.indexOf(" ");return(0,a.useEffect)((()=>{e((0,r.ph)("import_key"))}),[]),(0,h.jsx)(a.Fragment,{children:(0,h.jsxs)(s.xA9,{item:!0,xs:12,children:[(0,h.jsx)(x.A,{label:(0,h.jsx)(s.EGL,{onClick:()=>t(o.zZ.KMS_KEYS),label:"Keys"}),actions:(0,h.jsx)(m.A,{})}),(0,h.jsx)(s.Mxu,{children:(0,h.jsx)(s.Hbc,{title:"Import Key",icon:(0,h.jsx)(s.No_,{}),helpBox:(0,h.jsx)(p.A,{helpText:"Encryption Key",contents:["Import a cryptographic key in the Key Management Service server connected to MINIO."]}),children:(0,h.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:n=>{(n=>{j(!0),n.preventDefault();let a=JSON.parse(f);d.F.kms.kmsImportKey(b,a).then((e=>{t("".concat(o.zZ.KMS_KEYS))})).catch((async t=>{const n=await t.json();e((0,r.C9)((0,u.S)(n)))})).finally((()=>j(!1)))})(n)},children:[(0,h.jsx)(s.cl_,{id:"key-name",name:"key-name",label:"Key Name",autoFocus:!0,value:b,error:(e=>-1!==e.indexOf(" ")?"Key name cannot contain spaces":"")(b),onChange:e=>{k(e.target.value)}}),(0,h.jsx)(s.BYM,{label:"Set key Content",value:f,onChange:e=>{C(e)},editorHeight:"350px"}),(0,h.jsxs)(s.xA9,{item:!0,xs:12,sx:i.Uz.modalButtonBar,children:[(0,h.jsx)(s.$nd,{id:"clear",type:"button",variant:"regular",onClick:()=>{k(""),C("")},label:"Clear"}),(0,h.jsx)(s.$nd,{id:"import-key",type:"submit",variant:"callAction",color:"primary",disabled:n||!S,label:"Import"})]})]})})})]})})}},38375:(e,t,n)=>{n.d(t,{A:()=>o});var a=n(65043),s=n(89923),l=n(70579);const o=e=>{let{helpText:t,contents:n}=e;return(0,l.jsx)(s.lVp,{iconComponent:(0,l.jsx)(s.nag,{}),title:t,help:(0,l.jsx)(a.Fragment,{children:n.map((e=>(0,l.jsx)(s.azJ,{sx:{paddingBottom:"20px"},children:e})))})})}}}]);
//# sourceMappingURL=2332.f3909952.chunk.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,21 @@
/**
* @licstart The following is the entire license notice for the
* JavaScript code in this page
*
* Copyright 2023 Mozilla Foundation
*
* 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.
*
* @licend The above is the entire license notice for the
* JavaScript code in this page
*/

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[24],{60024:(e,s,t)=>{t.r(s),t.d(s,{default:()=>h});var r=t(65043),l=t(89923),a=t(77403),n=t(20649),o=t(13109),d=t(94141),i=t(64159),c=t(20554),u=t(70579);const h=e=>{let{open:s,checkedUsers:t,closeModalAndRefresh:h}=e;const p=(0,c.jL)(),[x,j]=(0,r.useState)(!1),[b,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)([]);(0,r.useEffect)((()=>{x&&(m.length>0?n.A.invoke("PUT","/api/v1/users-groups-bulk",{groups:m,users:t}).then((()=>{j(!1),g(!0)})).catch((e=>{j(!1),p((0,i.Dy)(e))})):(j(!1),p((0,i.Dy)({errorMessage:"You need to select at least one group to assign",detailedError:""}))))}),[x,j,h,m,t,p]);return(0,u.jsx)(d.A,{modalOpen:s,onClose:()=>{h(b)},title:b?"The selected users were added to the following groups.":"Add Users to Group",titleIcon:(0,u.jsx)(l.WC,{}),children:b?(0,u.jsx)(r.Fragment,{children:(0,u.jsxs)(l.Hbc,{withBorders:!1,containerPadding:!1,sx:{margin:"30px 0"},children:[(0,u.jsx)(l.EmB,{label:"Groups",sx:{width:"100%"},children:m.join(", ")}),(0,u.jsxs)(l.EmB,{label:"Users",sx:{width:"100%"},children:[" ",t.join(", ")," "]})]})}):(0,u.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:e=>{e.preventDefault(),j(!0)},children:[(0,u.jsxs)(l.Hbc,{withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(l.EmB,{label:"Selected Users",sx:{width:"100%"},children:t.join(", ")}),(0,u.jsx)(o.A,{selectedGroups:m,setSelectedGroups:f})]}),(0,u.jsxs)(l.xA9,{item:!0,xs:12,sx:a.Uz.modalButtonBar,children:[(0,u.jsx)(l.$nd,{id:"clear-bulk-add-group",type:"button",variant:"regular",color:"primary",onClick:()=>{f([])},label:"Clear"}),(0,u.jsx)(l.$nd,{id:"save-add-group",type:"submit",variant:"callAction",disabled:x||m.length<1,label:"Save"})]}),x&&(0,u.jsx)(l.xA9,{item:!0,xs:12,children:(0,u.jsx)(l.z21,{})})]})})}}}]);
//# sourceMappingURL=24.1245bd95.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[24],{60024:(e,s,t)=>{t.r(s),t.d(s,{default:()=>h});var r=t(65043),l=t(89923),a=t(77403),n=t(20649),o=t(13109),d=t(94141),i=t(64159),c=t(21383),u=t(70579);const h=e=>{let{open:s,checkedUsers:t,closeModalAndRefresh:h}=e;const p=(0,c.jL)(),[x,j]=(0,r.useState)(!1),[b,g]=(0,r.useState)(!1),[m,f]=(0,r.useState)([]);(0,r.useEffect)((()=>{x&&(m.length>0?n.A.invoke("PUT","/api/v1/users-groups-bulk",{groups:m,users:t}).then((()=>{j(!1),g(!0)})).catch((e=>{j(!1),p((0,i.Dy)(e))})):(j(!1),p((0,i.Dy)({errorMessage:"You need to select at least one group to assign",detailedError:""}))))}),[x,j,h,m,t,p]);return(0,u.jsx)(d.A,{modalOpen:s,onClose:()=>{h(b)},title:b?"The selected users were added to the following groups.":"Add Users to Group",titleIcon:(0,u.jsx)(l.WC,{}),children:b?(0,u.jsx)(r.Fragment,{children:(0,u.jsxs)(l.Hbc,{withBorders:!1,containerPadding:!1,sx:{margin:"30px 0"},children:[(0,u.jsx)(l.EmB,{label:"Groups",sx:{width:"100%"},children:m.join(", ")}),(0,u.jsxs)(l.EmB,{label:"Users",sx:{width:"100%"},children:[" ",t.join(", ")," "]})]})}):(0,u.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:e=>{e.preventDefault(),j(!0)},children:[(0,u.jsxs)(l.Hbc,{withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(l.EmB,{label:"Selected Users",sx:{width:"100%"},children:t.join(", ")}),(0,u.jsx)(o.A,{selectedGroups:m,setSelectedGroups:f})]}),(0,u.jsxs)(l.xA9,{item:!0,xs:12,sx:a.Uz.modalButtonBar,children:[(0,u.jsx)(l.$nd,{id:"clear-bulk-add-group",type:"button",variant:"regular",color:"primary",onClick:()=>{f([])},label:"Clear"}),(0,u.jsx)(l.$nd,{id:"save-add-group",type:"submit",variant:"callAction",disabled:x||m.length<1,label:"Save"})]}),x&&(0,u.jsx)(l.xA9,{item:!0,xs:12,children:(0,u.jsx)(l.z21,{})})]})})}}}]);
//# sourceMappingURL=24.e576918a.chunk.js.map

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[2689],{62689:(e,t,n)=>{n.r(t),n.d(t,{default:()=>_});var i=n(65043),l=n(22166),s=n(73216),c=n(89923),r=n(20649),a=n(77938),o=n(99161),d=n(64159),u=n(39947),p=n(20554),h=n(6681),b=n(72237),x=n(70579);const m=(0,b.A)(i.lazy((()=>n.e(9714).then(n.bind(n,79714))))),A=(0,b.A)(i.lazy((()=>n.e(459).then(n.bind(n,10459))))),R=(0,b.A)(i.lazy((()=>n.e(8152).then(n.bind(n,28152))))),_=()=>{const e=(0,p.jL)(),t=(0,s.g)(),n=(0,l.d4)(u.Nx),[b,_]=(0,i.useState)(!0),[j,O]=(0,i.useState)([]),[I,S]=(0,i.useState)(!1),[T,k]=(0,i.useState)(!1),[g,N]=(0,i.useState)(!1),[C,f]=(0,i.useState)(""),[y,P]=(0,i.useState)([]),[E,v]=(0,i.useState)(!1),F=t.bucketName||"",V=(0,a._)(F,[o.OV.S3_GET_REPLICATION_CONFIGURATION,o.OV.S3_GET_ACTIONS]);(0,i.useEffect)((()=>{e((0,d.ph)("bucket_detail_replication"))}),[]),(0,i.useEffect)((()=>{n&&_(!0)}),[n,_]),(0,i.useEffect)((()=>{b&&(V?r.A.invoke("GET","/api/v1/buckets/".concat(F,"/replication")).then((e=>{const t=e.rules?e.rules:[];t.sort(((e,t)=>e.priority-t.priority)),O(t),_(!1)})).catch((t=>{e((0,d.C9)(t)),_(!1)})):_(!1))}),[b,e,F,V]);const w=function(){k(arguments.length>0&&void 0!==arguments[0]&&arguments[0])},U=(0,s.Zp)(),G=[{type:"delete",onClick:e=>{f(e.id),v(!1),S(!0)}},{type:"view",onClick:e=>{f(e.id),U("/buckets/edit-replication?bucketName=".concat(F,"&ruleID=").concat(e.id))},disableButtonFunction:!(0,a._)(F,[o.OV.S3_PUT_REPLICATION_CONFIGURATION,o.OV.S3_PUT_ACTIONS],!0)}];return(0,x.jsxs)(i.Fragment,{children:[T&&(0,x.jsx)(A,{closeModalAndRefresh:()=>{w(!1),_(!0)},open:T,bucketName:F,setReplicationRules:j}),I&&(0,x.jsx)(R,{deleteOpen:I,selectedBucket:F,closeDeleteModalAndRefresh:e=>{S(!1),e&&_(!0)},ruleToDelete:C,rulesToDelete:y,remainingRules:j.length,allSelected:j.length>0&&y.length===j.length,deleteSelectedRules:E}),g&&(0,x.jsx)(m,{closeModalAndRefresh:e=>{N(!1),e&&_(!0)},open:g,bucketName:F,ruleID:C}),(0,x.jsx)(c._xt,{separator:!0,sx:{marginBottom:15},actions:(0,x.jsxs)(c.azJ,{style:{display:"flex",gap:10},children:[(0,x.jsx)(a.R,{scopes:[o.OV.S3_PUT_REPLICATION_CONFIGURATION,o.OV.S3_PUT_ACTIONS],resource:F,matchAll:!0,errorProps:{disabled:!0},children:(0,x.jsx)(h.A,{tooltip:"Remove Selected Replication Rules",children:(0,x.jsx)(c.$nd,{id:"remove-bucket-replication-rule",onClick:()=>{f("selectedRules"),v(!0),S(!0)},label:"Remove Selected Rules",icon:(0,x.jsx)(c.ucK,{}),color:"secondary",disabled:0===y.length||0===j.length,variant:"secondary"})})}),(0,x.jsx)(a.R,{scopes:[o.OV.S3_PUT_REPLICATION_CONFIGURATION,o.OV.S3_PUT_ACTIONS],resource:F,matchAll:!0,errorProps:{disabled:!0},children:(0,x.jsx)(h.A,{tooltip:"Add Replication Rule",children:(0,x.jsx)(c.$nd,{id:"add-bucket-replication-rule",onClick:()=>{U(o.zZ.BUCKETS_ADD_REPLICATION+"?bucketName=".concat(F,"&nextPriority=").concat(j.length+1))},label:"Add Replication Rule",icon:(0,x.jsx)(c.REV,{}),variant:"callAction"})})})]}),children:(0,x.jsx)(c.V7x,{content:(0,x.jsxs)(i.Fragment,{children:["MinIO"," ",(0,x.jsx)("a",{target:"blank",href:"https://min.io/docs/minio/kubernetes/upstream/administration/bucket-replication.html",children:"server-side bucket replication"})," ","is an automatic bucket-level configuration that synchronizes objects between a source and destination bucket."]}),placement:"right",children:"Replication"})}),(0,x.jsxs)(c.xA9,{container:!0,children:[(0,x.jsx)(c.xA9,{item:!0,xs:12,children:(0,x.jsx)(a.R,{scopes:[o.OV.S3_GET_REPLICATION_CONFIGURATION,o.OV.S3_GET_ACTIONS],resource:F,errorProps:{disabled:!0},children:(0,x.jsx)(c.bQt,{itemActions:G,columns:[{label:"Priority",elementKey:"priority",width:55,contentTextAlign:"center"},{label:"Destination",elementKey:"destination",renderFunction:e=>(0,x.jsx)(i.Fragment,{children:e.bucket.replace("arn:aws:s3:::","")})},{label:"Prefix",elementKey:"prefix",width:200},{label:"Tags",elementKey:"tags",renderFunction:e=>(0,x.jsx)(i.Fragment,{children:e&&""!==e.tags?"Yes":"No"}),width:60},{label:"Status",elementKey:"status",width:100}],isLoading:b,records:j,entityName:"Replication Rules",idField:"id",customPaperHeight:"400px",textSelectable:!0,selectedItems:y,onSelect:e=>(e=>{const t=e.target,n=t.value,i=t.checked;let l=[...y];return i?l.push(n):l=l.filter((e=>e!==n)),P(l),l})(e),onSelectAll:()=>{y.length!==j.length?P(j.map((e=>e.id))):P([])}})})}),(0,x.jsxs)(c.xA9,{item:!0,xs:12,children:[(0,x.jsx)("br",{}),(0,x.jsx)(c.lVp,{title:"Replication",iconComponent:(0,x.jsx)(c.brV,{}),help:(0,x.jsxs)(i.Fragment,{children:["MinIO supports server-side and client-side replication of objects between source and destination buckets.",(0,x.jsx)("br",{}),(0,x.jsx)("br",{}),"You can learn more at our"," ",(0,x.jsx)("a",{href:"https://min.io/docs/minio/linux/administration/bucket-replication.html?ref=con",target:"_blank",rel:"noopener",children:"documentation"}),"."]})})]})]})]})}}}]);
//# sourceMappingURL=2689.5e76c1cd.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[2689],{62689:(e,t,n)=>{n.r(t),n.d(t,{default:()=>_});var i=n(65043),l=n(22166),s=n(73216),c=n(89923),r=n(20649),a=n(77938),o=n(99161),d=n(64159),u=n(39947),p=n(21383),h=n(6681),b=n(72237),x=n(70579);const m=(0,b.A)(i.lazy((()=>n.e(9714).then(n.bind(n,79714))))),A=(0,b.A)(i.lazy((()=>n.e(459).then(n.bind(n,10459))))),R=(0,b.A)(i.lazy((()=>n.e(8152).then(n.bind(n,28152))))),_=()=>{const e=(0,p.jL)(),t=(0,s.g)(),n=(0,l.d4)(u.Nx),[b,_]=(0,i.useState)(!0),[j,O]=(0,i.useState)([]),[I,S]=(0,i.useState)(!1),[T,k]=(0,i.useState)(!1),[g,N]=(0,i.useState)(!1),[C,f]=(0,i.useState)(""),[y,P]=(0,i.useState)([]),[E,v]=(0,i.useState)(!1),F=t.bucketName||"",V=(0,a._)(F,[o.OV.S3_GET_REPLICATION_CONFIGURATION,o.OV.S3_GET_ACTIONS]);(0,i.useEffect)((()=>{e((0,d.ph)("bucket_detail_replication"))}),[]),(0,i.useEffect)((()=>{n&&_(!0)}),[n,_]),(0,i.useEffect)((()=>{b&&(V?r.A.invoke("GET","/api/v1/buckets/".concat(F,"/replication")).then((e=>{const t=e.rules?e.rules:[];t.sort(((e,t)=>e.priority-t.priority)),O(t),_(!1)})).catch((t=>{e((0,d.C9)(t)),_(!1)})):_(!1))}),[b,e,F,V]);const w=function(){k(arguments.length>0&&void 0!==arguments[0]&&arguments[0])},U=(0,s.Zp)(),G=[{type:"delete",onClick:e=>{f(e.id),v(!1),S(!0)}},{type:"view",onClick:e=>{f(e.id),U("/buckets/edit-replication?bucketName=".concat(F,"&ruleID=").concat(e.id))},disableButtonFunction:!(0,a._)(F,[o.OV.S3_PUT_REPLICATION_CONFIGURATION,o.OV.S3_PUT_ACTIONS],!0)}];return(0,x.jsxs)(i.Fragment,{children:[T&&(0,x.jsx)(A,{closeModalAndRefresh:()=>{w(!1),_(!0)},open:T,bucketName:F,setReplicationRules:j}),I&&(0,x.jsx)(R,{deleteOpen:I,selectedBucket:F,closeDeleteModalAndRefresh:e=>{S(!1),e&&_(!0)},ruleToDelete:C,rulesToDelete:y,remainingRules:j.length,allSelected:j.length>0&&y.length===j.length,deleteSelectedRules:E}),g&&(0,x.jsx)(m,{closeModalAndRefresh:e=>{N(!1),e&&_(!0)},open:g,bucketName:F,ruleID:C}),(0,x.jsx)(c._xt,{separator:!0,sx:{marginBottom:15},actions:(0,x.jsxs)(c.azJ,{style:{display:"flex",gap:10},children:[(0,x.jsx)(a.R,{scopes:[o.OV.S3_PUT_REPLICATION_CONFIGURATION,o.OV.S3_PUT_ACTIONS],resource:F,matchAll:!0,errorProps:{disabled:!0},children:(0,x.jsx)(h.A,{tooltip:"Remove Selected Replication Rules",children:(0,x.jsx)(c.$nd,{id:"remove-bucket-replication-rule",onClick:()=>{f("selectedRules"),v(!0),S(!0)},label:"Remove Selected Rules",icon:(0,x.jsx)(c.ucK,{}),color:"secondary",disabled:0===y.length||0===j.length,variant:"secondary"})})}),(0,x.jsx)(a.R,{scopes:[o.OV.S3_PUT_REPLICATION_CONFIGURATION,o.OV.S3_PUT_ACTIONS],resource:F,matchAll:!0,errorProps:{disabled:!0},children:(0,x.jsx)(h.A,{tooltip:"Add Replication Rule",children:(0,x.jsx)(c.$nd,{id:"add-bucket-replication-rule",onClick:()=>{U(o.zZ.BUCKETS_ADD_REPLICATION+"?bucketName=".concat(F,"&nextPriority=").concat(j.length+1))},label:"Add Replication Rule",icon:(0,x.jsx)(c.REV,{}),variant:"callAction"})})})]}),children:(0,x.jsx)(c.V7x,{content:(0,x.jsxs)(i.Fragment,{children:["MinIO"," ",(0,x.jsx)("a",{target:"blank",href:"https://min.io/docs/minio/kubernetes/upstream/administration/bucket-replication.html",children:"server-side bucket replication"})," ","is an automatic bucket-level configuration that synchronizes objects between a source and destination bucket."]}),placement:"right",children:"Replication"})}),(0,x.jsxs)(c.xA9,{container:!0,children:[(0,x.jsx)(c.xA9,{item:!0,xs:12,children:(0,x.jsx)(a.R,{scopes:[o.OV.S3_GET_REPLICATION_CONFIGURATION,o.OV.S3_GET_ACTIONS],resource:F,errorProps:{disabled:!0},children:(0,x.jsx)(c.bQt,{itemActions:G,columns:[{label:"Priority",elementKey:"priority",width:55,contentTextAlign:"center"},{label:"Destination",elementKey:"destination",renderFunction:e=>(0,x.jsx)(i.Fragment,{children:e.bucket.replace("arn:aws:s3:::","")})},{label:"Prefix",elementKey:"prefix",width:200},{label:"Tags",elementKey:"tags",renderFunction:e=>(0,x.jsx)(i.Fragment,{children:e&&""!==e.tags?"Yes":"No"}),width:60},{label:"Status",elementKey:"status",width:100}],isLoading:b,records:j,entityName:"Replication Rules",idField:"id",customPaperHeight:"400px",textSelectable:!0,selectedItems:y,onSelect:e=>(e=>{const t=e.target,n=t.value,i=t.checked;let l=[...y];return i?l.push(n):l=l.filter((e=>e!==n)),P(l),l})(e),onSelectAll:()=>{y.length!==j.length?P(j.map((e=>e.id))):P([])}})})}),(0,x.jsxs)(c.xA9,{item:!0,xs:12,children:[(0,x.jsx)("br",{}),(0,x.jsx)(c.lVp,{title:"Replication",iconComponent:(0,x.jsx)(c.brV,{}),help:(0,x.jsxs)(i.Fragment,{children:["MinIO supports server-side and client-side replication of objects between source and destination buckets.",(0,x.jsx)("br",{}),(0,x.jsx)("br",{}),"You can learn more at our"," ",(0,x.jsx)("a",{href:"https://min.io/docs/minio/linux/administration/bucket-replication.html?ref=con",target:"_blank",rel:"noopener",children:"documentation"}),"."]})})]})]})]})}}}]);
//# sourceMappingURL=2689.ba69c148.chunk.js.map

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[2704],{32704:(e,t,a)=>{a.r(t),a.d(t,{default:()=>w});var n=a(65043),s=a(24241),d=a(89923),o=a(22166),l=a(94141),r=a(20554),c=a(6035),i=a(77403),u=a(70579);const w=e=>{let{closeModalAndRefresh:t,open:a,bucketName:w}=e;const b=(0,r.jL)(),h=(0,o.d4)((e=>e.objectBrowser.rewind.rewindEnabled)),x=(0,o.d4)((e=>e.objectBrowser.rewind.dateToRewind)),[j,p]=(0,n.useState)(!1),[S,m]=(0,n.useState)(!0),[k,f]=(0,n.useState)(s.c9.fromJSDate(new Date));(0,n.useEffect)((()=>{h&&(m(!0),f(s.c9.fromISO(x||s.c9.now().toISO()||"")))}),[h,x]);return(0,u.jsx)(l.A,{modalOpen:a,onClose:()=>{t()},title:"Rewind - ".concat(w),children:(0,u.jsxs)(d.Hbc,{withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(d.e8j,{value:k,onChange:e=>e?f(e):null,id:"rewind-selector",label:"Rewind to",timeFormat:"24h",secondsSelector:!1,disabled:!S}),h&&(0,u.jsx)(d.dOG,{value:"status",id:"status",name:"status",checked:S,onChange:e=>{m(e.target.checked)},label:"Current Status",indicatorLabels:["Enabled","Disabled"]}),(0,u.jsx)(d.xA9,{item:!0,xs:12,sx:i.Uz.modalButtonBar,children:(0,u.jsx)(d.$nd,{type:"button",variant:"callAction",disabled:j||!k&&S,onClick:()=>{!S&&h?b((0,c.rS)()):(p(!0),b((0,c.v8)({state:!0,bucket:w,dateRewind:k.toISO()}))),b((0,c.Yw)(!0)),t()},id:"rewind-apply-button",label:!S&&h?"Show Current Data":"Show Rewind Data"})}),j&&(0,u.jsx)(d.xA9,{item:!0,xs:12,children:(0,u.jsx)(d.z21,{})})]})})}}}]);
//# sourceMappingURL=2704.fe33dd23.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[2704],{32704:(e,t,a)=>{a.r(t),a.d(t,{default:()=>w});var n=a(65043),s=a(24241),d=a(89923),o=a(22166),l=a(94141),r=a(21383),c=a(6035),i=a(77403),u=a(70579);const w=e=>{let{closeModalAndRefresh:t,open:a,bucketName:w}=e;const b=(0,r.jL)(),h=(0,o.d4)((e=>e.objectBrowser.rewind.rewindEnabled)),x=(0,o.d4)((e=>e.objectBrowser.rewind.dateToRewind)),[j,p]=(0,n.useState)(!1),[S,m]=(0,n.useState)(!0),[k,f]=(0,n.useState)(s.c9.fromJSDate(new Date));(0,n.useEffect)((()=>{h&&(m(!0),f(s.c9.fromISO(x||s.c9.now().toISO()||"")))}),[h,x]);return(0,u.jsx)(l.A,{modalOpen:a,onClose:()=>{t()},title:"Rewind - ".concat(w),children:(0,u.jsxs)(d.Hbc,{withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(d.e8j,{value:k,onChange:e=>e?f(e):null,id:"rewind-selector",label:"Rewind to",timeFormat:"24h",secondsSelector:!1,disabled:!S}),h&&(0,u.jsx)(d.dOG,{value:"status",id:"status",name:"status",checked:S,onChange:e=>{m(e.target.checked)},label:"Current Status",indicatorLabels:["Enabled","Disabled"]}),(0,u.jsx)(d.xA9,{item:!0,xs:12,sx:i.Uz.modalButtonBar,children:(0,u.jsx)(d.$nd,{type:"button",variant:"callAction",disabled:j||!k&&S,onClick:()=>{!S&&h?b((0,c.rS)()):(p(!0),b((0,c.v8)({state:!0,bucket:w,dateRewind:k.toISO()}))),b((0,c.Yw)(!0)),t()},id:"rewind-apply-button",label:!S&&h?"Show Current Data":"Show Rewind Data"})}),j&&(0,u.jsx)(d.xA9,{item:!0,xs:12,children:(0,u.jsx)(d.z21,{})})]})})}}}]);
//# sourceMappingURL=2704.71ac23f9.chunk.js.map

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3035],{13035:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var a=n(65043),l=n(22166),s=n(89923),c=n(20554),o=n(56483),i=n(32511),r=n(68603),d=n(64159),u=n(20649),x=n(48793),h=n(55968),m=n(70579);const p=()=>{const e=(0,c.jL)(),t=(0,l.d4)((e=>e.watch.messages)),[n,p]=(0,a.useState)(!1),[b,f]=(0,a.useState)("Select Bucket"),[g,j]=(0,a.useState)(""),[w,k]=(0,a.useState)(""),[S,v]=(0,a.useState)([]);(0,a.useEffect)((()=>{u.A.invoke("GET","/api/v1/buckets").then((e=>{let t=[];null!==e.buckets&&(t=e.buckets),v(t)})).catch((e=>{console.error(e)}))}),[]),(0,a.useEffect)((()=>{if(e((0,r.n4)()),n&&S.some((e=>e.name===b))){const t=new URL(window.location.toString()),n=!1?"9090":t.port,a=new URL(document.baseURI).pathname,l=(0,i.nw)(t.protocol),s=new WebSocket("".concat(l,"://").concat(t.hostname,":").concat(n).concat(a,"ws/watch/").concat(b,"?prefix=").concat(g,"&suffix=").concat(w));let c=null;if(null!==s)return s.onopen=()=>{console.log("WebSocket Client Connected"),s.send("ok"),c=setInterval((()=>{s.send("ok")}),1e4)},s.onmessage=t=>{let n=JSON.parse(t.data.toString());n.Time=new Date(n.Time.toString()),n.key=Math.random(),e((0,r.ID)(n))},s.onclose=()=>{clearInterval(c),console.log("connection closed by server"),p(!1)},()=>{s.close(1e3),clearInterval(c),console.log("closing websockets")}}else p(!1)}),[e,n,S,b,g,w]);const y=S.map((e=>({label:e.name,value:e.name})));(0,a.useEffect)((()=>{e((0,d.ph)("watch"))}),[]);const C=y.map((e=>({label:e.label,value:e.value})));return(0,m.jsxs)(a.Fragment,{children:[(0,m.jsx)(x.A,{label:"Watch",actions:(0,m.jsx)(h.A,{})}),(0,m.jsx)(s.Mxu,{children:(0,m.jsxs)(s.xA9,{container:!0,children:[(0,m.jsxs)(s.xA9,{item:!0,xs:12,sx:{display:"flex",gap:10,marginBottom:15,alignItems:"center"},children:[(0,m.jsxs)(s.azJ,{sx:{flexGrow:1},children:[(0,m.jsx)(s.l1Y,{children:"Bucket"}),(0,m.jsx)(s.l6P,{id:"bucket-name",name:"bucket-name",value:b,onChange:e=>{f(e)},disabled:n,options:C,placeholder:"Select Bucket"})]}),(0,m.jsxs)(s.azJ,{sx:{flexGrow:1},children:[(0,m.jsx)(s.l1Y,{children:"Prefix"}),(0,m.jsx)(s.cl_,{id:"prefix-resource",disabled:n,onChange:e=>{j(e.target.value)}})]}),(0,m.jsxs)(s.azJ,{sx:{flexGrow:1},children:[(0,m.jsx)(s.l1Y,{children:"Suffix"}),(0,m.jsx)(s.cl_,{id:"suffix-resource",disabled:n,onChange:e=>{k(e.target.value)}})]}),(0,m.jsx)(s.azJ,{sx:{alignSelf:"flex-end",paddingBottom:4},children:n?(0,m.jsx)(s.$nd,{id:"stop-watch",type:"submit",variant:"callAction",onClick:()=>p(!1),label:"Stop"}):(0,m.jsx)(s.$nd,{id:"start-watch",type:"submit",variant:"callAction",onClick:()=>p(!0),label:"Start"})})]}),(0,m.jsx)(s.xA9,{item:!0,xs:12,children:(0,m.jsx)(s.bQt,{columns:[{label:"Time",elementKey:"Time",renderFunction:o.cj},{label:"Size",elementKey:"Size",renderFunction:o.nO},{label:"Type",elementKey:"Type"},{label:"Path",elementKey:"Path"}],records:t,entityName:"Watch",customEmptyMessage:"No Changes at this time",idField:"watch_table",isLoading:!1,customPaperHeight:"calc(100vh - 270px)"})})]})})]})}}}]);
//# sourceMappingURL=3035.d50f543e.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3035],{13035:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var a=n(65043),l=n(22166),s=n(89923),c=n(21383),o=n(56483),i=n(32511),r=n(68603),d=n(64159),u=n(20649),x=n(48793),h=n(55968),m=n(70579);const p=()=>{const e=(0,c.jL)(),t=(0,l.d4)((e=>e.watch.messages)),[n,p]=(0,a.useState)(!1),[b,f]=(0,a.useState)("Select Bucket"),[g,j]=(0,a.useState)(""),[w,k]=(0,a.useState)(""),[S,v]=(0,a.useState)([]);(0,a.useEffect)((()=>{u.A.invoke("GET","/api/v1/buckets").then((e=>{let t=[];null!==e.buckets&&(t=e.buckets),v(t)})).catch((e=>{console.error(e)}))}),[]),(0,a.useEffect)((()=>{if(e((0,r.n4)()),n&&S.some((e=>e.name===b))){const t=new URL(window.location.toString()),n=!1?"9090":t.port,a=new URL(document.baseURI).pathname,l=(0,i.nw)(t.protocol),s=new WebSocket("".concat(l,"://").concat(t.hostname,":").concat(n).concat(a,"ws/watch/").concat(b,"?prefix=").concat(g,"&suffix=").concat(w));let c=null;if(null!==s)return s.onopen=()=>{console.log("WebSocket Client Connected"),s.send("ok"),c=setInterval((()=>{s.send("ok")}),1e4)},s.onmessage=t=>{let n=JSON.parse(t.data.toString());n.Time=new Date(n.Time.toString()),n.key=Math.random(),e((0,r.ID)(n))},s.onclose=()=>{clearInterval(c),console.log("connection closed by server"),p(!1)},()=>{s.close(1e3),clearInterval(c),console.log("closing websockets")}}else p(!1)}),[e,n,S,b,g,w]);const y=S.map((e=>({label:e.name,value:e.name})));(0,a.useEffect)((()=>{e((0,d.ph)("watch"))}),[]);const C=y.map((e=>({label:e.label,value:e.value})));return(0,m.jsxs)(a.Fragment,{children:[(0,m.jsx)(x.A,{label:"Watch",actions:(0,m.jsx)(h.A,{})}),(0,m.jsx)(s.Mxu,{children:(0,m.jsxs)(s.xA9,{container:!0,children:[(0,m.jsxs)(s.xA9,{item:!0,xs:12,sx:{display:"flex",gap:10,marginBottom:15,alignItems:"center"},children:[(0,m.jsxs)(s.azJ,{sx:{flexGrow:1},children:[(0,m.jsx)(s.l1Y,{children:"Bucket"}),(0,m.jsx)(s.l6P,{id:"bucket-name",name:"bucket-name",value:b,onChange:e=>{f(e)},disabled:n,options:C,placeholder:"Select Bucket"})]}),(0,m.jsxs)(s.azJ,{sx:{flexGrow:1},children:[(0,m.jsx)(s.l1Y,{children:"Prefix"}),(0,m.jsx)(s.cl_,{id:"prefix-resource",disabled:n,onChange:e=>{j(e.target.value)}})]}),(0,m.jsxs)(s.azJ,{sx:{flexGrow:1},children:[(0,m.jsx)(s.l1Y,{children:"Suffix"}),(0,m.jsx)(s.cl_,{id:"suffix-resource",disabled:n,onChange:e=>{k(e.target.value)}})]}),(0,m.jsx)(s.azJ,{sx:{alignSelf:"flex-end",paddingBottom:4},children:n?(0,m.jsx)(s.$nd,{id:"stop-watch",type:"submit",variant:"callAction",onClick:()=>p(!1),label:"Stop"}):(0,m.jsx)(s.$nd,{id:"start-watch",type:"submit",variant:"callAction",onClick:()=>p(!0),label:"Start"})})]}),(0,m.jsx)(s.xA9,{item:!0,xs:12,children:(0,m.jsx)(s.bQt,{columns:[{label:"Time",elementKey:"Time",renderFunction:o.cj},{label:"Size",elementKey:"Size",renderFunction:o.nO},{label:"Type",elementKey:"Type"},{label:"Path",elementKey:"Path"}],records:t,entityName:"Watch",customEmptyMessage:"No Changes at this time",idField:"watch_table",isLoading:!1,customPaperHeight:"calc(100vh - 270px)"})})]})})]})}}}]);
//# sourceMappingURL=3035.ac7d86b8.chunk.js.map

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3061],{43061:(e,l,t)=>{t.r(l),t.d(l,{default:()=>x});var o=t(65043),a=t(89923),n=t(32511),c=t(73216),i=t(14558),s=t(20554),r=t(64159),p=t(28481),d=t(48793),u=t(55968),b=t(70579),m=null;const x=()=>{const e=(0,c.Zp)(),[l,t]=(0,o.useState)(!1),[x,f]=(0,o.useState)(["cpu","mem","block","mutex","goroutines"]),h=(0,i.vf)(),g=e=>{let l=[];l=x.indexOf(e.target.value)>-1?x.filter((l=>l!==e.target.value)):[...x,e.target.value],f(l)},v=(0,s.jL)();return(0,o.useEffect)((()=>{v((0,r.ph)("profile"))}),[]),(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)(d.A,{label:"Profile",actions:(0,b.jsx)(u.A,{})}),(0,b.jsxs)(a.Mxu,{children:[!h&&(0,b.jsx)(p.A,{compactMode:!0}),(0,b.jsxs)(a.Hbc,{children:[(0,b.jsxs)(a.azJ,{sx:{display:"flex",gap:10,"& div":{width:"initial"},"& .inputItem:not(:last-of-type)":{marginBottom:0}},children:[(0,b.jsx)(a.l1Y,{noMinWidth:!0,children:"Types to profile:"}),[{label:"cpu",value:"cpu"},{label:"mem",value:"mem"},{label:"block",value:"block"},{label:"mutex",value:"mutex"},{label:"goroutines",value:"goroutines"}].map((e=>(0,b.jsx)(a.Sc0,{checked:x.indexOf(e.value)>-1,disabled:l||!h,id:"checkbox-".concat(e.label),label:e.label,name:"checkbox-".concat(e.label),onChange:g,value:e.value},"checkbox-".concat(e.label))))]}),(0,b.jsxs)(a.azJ,{sx:{display:"flex",justifyContent:"flex-end",marginTop:24,gap:10},children:[(0,b.jsx)(a.$nd,{id:"start-profiling",type:"submit",variant:h?"callAction":"regular",disabled:l||x.length<1||!h,onClick:()=>{h?(()=>{const e=x.join(","),l=new URL(window.location.toString()),o=l.port,a=new URL(document.baseURI).pathname,c=(0,n.nw)(l.protocol);if(null!==(m=new WebSocket("".concat(c,"://").concat(l.hostname,":").concat(o).concat(a,"ws/profile?types=").concat(e))))m.onopen=()=>{t(!0),m.send("ok")},m.onmessage=e=>{let l=new Blob([e.data],{type:"application/zip"});t(!1);var o=document.createElement("a");o.href=window.URL.createObjectURL(l),o.download="profile.zip",document.body.appendChild(o),o.click(),document.body.removeChild(o)},m.onclose=()=>{console.log("connection closed by server"),t(!1)}})():e("/support/register")},label:"Start Profiling"}),(0,b.jsx)(a.$nd,{id:"stop-profiling",type:"submit",variant:"callAction",color:"primary",disabled:!l||!h,onClick:()=>{m.close(1e3),t(!1)},label:"Stop Profiling"})]})]})]})]})}}}]);
//# sourceMappingURL=3061.2419f208.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3061],{43061:(e,l,t)=>{t.r(l),t.d(l,{default:()=>x});var o=t(65043),a=t(89923),n=t(32511),c=t(73216),i=t(14558),s=t(21383),r=t(64159),p=t(28481),d=t(48793),u=t(55968),b=t(70579),m=null;const x=()=>{const e=(0,c.Zp)(),[l,t]=(0,o.useState)(!1),[x,f]=(0,o.useState)(["cpu","mem","block","mutex","goroutines"]),h=(0,i.vf)(),g=e=>{let l=[];l=x.indexOf(e.target.value)>-1?x.filter((l=>l!==e.target.value)):[...x,e.target.value],f(l)},v=(0,s.jL)();return(0,o.useEffect)((()=>{v((0,r.ph)("profile"))}),[]),(0,b.jsxs)(o.Fragment,{children:[(0,b.jsx)(d.A,{label:"Profile",actions:(0,b.jsx)(u.A,{})}),(0,b.jsxs)(a.Mxu,{children:[!h&&(0,b.jsx)(p.A,{compactMode:!0}),(0,b.jsxs)(a.Hbc,{children:[(0,b.jsxs)(a.azJ,{sx:{display:"flex",gap:10,"& div":{width:"initial"},"& .inputItem:not(:last-of-type)":{marginBottom:0}},children:[(0,b.jsx)(a.l1Y,{noMinWidth:!0,children:"Types to profile:"}),[{label:"cpu",value:"cpu"},{label:"mem",value:"mem"},{label:"block",value:"block"},{label:"mutex",value:"mutex"},{label:"goroutines",value:"goroutines"}].map((e=>(0,b.jsx)(a.Sc0,{checked:x.indexOf(e.value)>-1,disabled:l||!h,id:"checkbox-".concat(e.label),label:e.label,name:"checkbox-".concat(e.label),onChange:g,value:e.value},"checkbox-".concat(e.label))))]}),(0,b.jsxs)(a.azJ,{sx:{display:"flex",justifyContent:"flex-end",marginTop:24,gap:10},children:[(0,b.jsx)(a.$nd,{id:"start-profiling",type:"submit",variant:h?"callAction":"regular",disabled:l||x.length<1||!h,onClick:()=>{h?(()=>{const e=x.join(","),l=new URL(window.location.toString()),o=l.port,a=new URL(document.baseURI).pathname,c=(0,n.nw)(l.protocol);if(null!==(m=new WebSocket("".concat(c,"://").concat(l.hostname,":").concat(o).concat(a,"ws/profile?types=").concat(e))))m.onopen=()=>{t(!0),m.send("ok")},m.onmessage=e=>{let l=new Blob([e.data],{type:"application/zip"});t(!1);var o=document.createElement("a");o.href=window.URL.createObjectURL(l),o.download="profile.zip",document.body.appendChild(o),o.click(),document.body.removeChild(o)},m.onclose=()=>{console.log("connection closed by server"),t(!1)}})():e("/support/register")},label:"Start Profiling"}),(0,b.jsx)(a.$nd,{id:"stop-profiling",type:"submit",variant:"callAction",color:"primary",disabled:!l||!h,onClick:()=>{m.close(1e3),t(!1)},label:"Stop Profiling"})]})]})]})]})}}}]);
//# sourceMappingURL=3061.2061eb2e.chunk.js.map

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3329],{53329:(e,n,t)=>{t.r(n),t.d(n,{default:()=>y});var a=t(65043),s=t(89923),r=t(73216),c=t(99161),l=t(20554),i=t(77403),o=t(38375),x=t(56629),d=t(64159),p=t(53518),j=t(70579);const h=()=>{const e=(0,l.jL)(),n=(0,r.Zp)(),[t,h]=(0,a.useState)(""),[m,u]=(0,a.useState)(!1),y=""!==t.trim()&&-1===t.indexOf(" ");return(0,j.jsx)(s.Mxu,{children:(0,j.jsx)(s.Hbc,{title:"Create Key",icon:(0,j.jsx)(s.No_,{}),helpBox:(0,j.jsx)(o.A,{helpText:"Encryption Key",contents:["Create a new cryptographic key in the Key Management Service server connected to MINIO."]}),children:(0,j.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:a=>{a.preventDefault(),u(!0),x.F.kms.kmsCreateKey({key:t}).then((e=>{n("".concat(c.zZ.KMS_KEYS))})).catch((async n=>{const t=await n.json();e((0,d.C9)((0,p.S)(t)))})).finally((()=>u(!1)))},children:(0,j.jsxs)(s.xA9,{container:!0,children:[(0,j.jsx)(s.xA9,{item:!0,xs:12,children:(0,j.jsx)(s.cl_,{id:"key-name",name:"key-name",label:"Key Name",autoFocus:!0,value:t,error:(e=>-1!==e.indexOf(" ")?"Key name cannot contain spaces":"")(t),onChange:e=>{h(e.target.value)}})}),(0,j.jsxs)(s.xA9,{item:!0,xs:12,sx:i.Uz.modalButtonBar,children:[(0,j.jsx)(s.$nd,{id:"clear",type:"button",variant:"regular",onClick:()=>{h("")},label:"Clear"}),(0,j.jsx)(s.$nd,{id:"save-key",type:"submit",variant:"callAction",color:"primary",disabled:m||!y,label:"Save"})]})]})})})})};var m=t(48793),u=t(55968);const y=()=>{const e=(0,l.jL)(),n=(0,r.Zp)();return(0,a.useEffect)((()=>{e((0,d.ph)("add_key"))}),[]),(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(s.xA9,{item:!0,xs:12,children:[(0,j.jsx)(m.A,{label:(0,j.jsx)(s.EGL,{label:"Keys",onClick:()=>n(c.zZ.KMS_KEYS)}),actions:(0,j.jsx)(u.A,{})}),(0,j.jsx)(h,{})]})})}},38375:(e,n,t)=>{t.d(n,{A:()=>c});var a=t(65043),s=t(89923),r=t(70579);const c=e=>{let{helpText:n,contents:t}=e;return(0,r.jsx)(s.lVp,{iconComponent:(0,r.jsx)(s.nag,{}),title:n,help:(0,r.jsx)(a.Fragment,{children:t.map((e=>(0,r.jsx)(s.azJ,{sx:{paddingBottom:"20px"},children:e})))})})}}}]);
//# sourceMappingURL=3329.89a09424.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3329],{53329:(e,n,t)=>{t.r(n),t.d(n,{default:()=>y});var a=t(65043),s=t(89923),r=t(73216),c=t(99161),l=t(21383),i=t(77403),o=t(38375),x=t(56629),d=t(64159),p=t(53518),j=t(70579);const h=()=>{const e=(0,l.jL)(),n=(0,r.Zp)(),[t,h]=(0,a.useState)(""),[m,u]=(0,a.useState)(!1),y=""!==t.trim()&&-1===t.indexOf(" ");return(0,j.jsx)(s.Mxu,{children:(0,j.jsx)(s.Hbc,{title:"Create Key",icon:(0,j.jsx)(s.No_,{}),helpBox:(0,j.jsx)(o.A,{helpText:"Encryption Key",contents:["Create a new cryptographic key in the Key Management Service server connected to MINIO."]}),children:(0,j.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:a=>{a.preventDefault(),u(!0),x.F.kms.kmsCreateKey({key:t}).then((e=>{n("".concat(c.zZ.KMS_KEYS))})).catch((async n=>{const t=await n.json();e((0,d.C9)((0,p.S)(t)))})).finally((()=>u(!1)))},children:(0,j.jsxs)(s.xA9,{container:!0,children:[(0,j.jsx)(s.xA9,{item:!0,xs:12,children:(0,j.jsx)(s.cl_,{id:"key-name",name:"key-name",label:"Key Name",autoFocus:!0,value:t,error:(e=>-1!==e.indexOf(" ")?"Key name cannot contain spaces":"")(t),onChange:e=>{h(e.target.value)}})}),(0,j.jsxs)(s.xA9,{item:!0,xs:12,sx:i.Uz.modalButtonBar,children:[(0,j.jsx)(s.$nd,{id:"clear",type:"button",variant:"regular",onClick:()=>{h("")},label:"Clear"}),(0,j.jsx)(s.$nd,{id:"save-key",type:"submit",variant:"callAction",color:"primary",disabled:m||!y,label:"Save"})]})]})})})})};var m=t(48793),u=t(55968);const y=()=>{const e=(0,l.jL)(),n=(0,r.Zp)();return(0,a.useEffect)((()=>{e((0,d.ph)("add_key"))}),[]),(0,j.jsx)(a.Fragment,{children:(0,j.jsxs)(s.xA9,{item:!0,xs:12,children:[(0,j.jsx)(m.A,{label:(0,j.jsx)(s.EGL,{label:"Keys",onClick:()=>n(c.zZ.KMS_KEYS)}),actions:(0,j.jsx)(u.A,{})}),(0,j.jsx)(h,{})]})})}},38375:(e,n,t)=>{t.d(n,{A:()=>c});var a=t(65043),s=t(89923),r=t(70579);const c=e=>{let{helpText:n,contents:t}=e;return(0,r.jsx)(s.lVp,{iconComponent:(0,r.jsx)(s.nag,{}),title:n,help:(0,r.jsx)(a.Fragment,{children:t.map((e=>(0,r.jsx)(s.azJ,{sx:{paddingBottom:"20px"},children:e})))})})}}}]);
//# sourceMappingURL=3329.c25b9821.chunk.js.map

View File

@@ -1,2 +0,0 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3654],{63654:(e,n,t)=>{t.r(n),t.d(n,{default:()=>c});t(65043);var s=t(94141),i=t(89923),l=t(95428),a=t(57195),o=t(35731),r=t(70579);const c=e=>{let{isOpen:n,onClose:t}=e;return(0,r.jsx)(s.A,{modalOpen:n,title:"License",onClose:()=>{t()},children:(0,r.jsxs)(i.azJ,{sx:{display:"flex",flexFlow:"column","& .link-text":{color:"#2781B0",fontWeight:600}},children:[(0,r.jsx)(i.azJ,{sx:{display:"flex",alignItems:"center",marginBottom:"40px",justifyContent:"center","& .min-icon":{fill:"blue",width:"188px",height:"62px"}},children:(0,r.jsx)(i.P1T,{})}),(0,r.jsxs)(i.azJ,{sx:{marginBottom:"27px"},children:["By using this software, you acknowledge that MinIO software is licensed under the ",(0,r.jsx)(a.A,{}),", for which, the full text can be found here:"," ",(0,r.jsx)("a",{href:"https://www.gnu.org/licenses/agpl-3.0.html",rel:"noopener",className:"link-text",children:"https://www.gnu.org/licenses/agpl-3.0.html."})]}),(0,r.jsxs)(i.azJ,{sx:{paddingBottom:"23px"},children:["Please review the terms carefully and ensure you are in compliance with the obligations of the license. If you are not able to satisfy the license obligations, we offer a commercial license which is available here:"," ",(0,r.jsx)("a",{href:"https://min.io/signup?ref=con",rel:"noopener",className:"link-text",children:"https://min.io/signup."})]}),(0,r.jsx)(o.A,{}),(0,r.jsx)(i.azJ,{sx:{marginTop:"19px",display:"flex",alignItems:"center",justifyContent:"center"},children:(0,r.jsx)(i.$nd,{id:"confirm",type:"button",variant:"callAction",onClick:()=>{(0,l.YN)(),t()},label:"Acknowledge"})})]})})}}}]);
//# sourceMappingURL=3654.877a48d3.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3851],{3851:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});var s=n(65043),l=n(89923),c=n(64159),o=n(20554),r=n(25448),i=n(58661),u=n(70579);const a=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedBucket:a}=e;const d=(0,o.jL)(),[p,b]=(0,r.A)((()=>t(!0)),(e=>d((0,c.C9)(e))));if(!a)return null;return(0,u.jsx)(i.A,{title:"Delete Bucket",confirmText:"Delete",isOpen:n,titleIcon:(0,u.jsx)(l.xWY,{}),isLoading:p,onConfirm:()=>{b("DELETE","/api/v1/buckets/".concat(a),{name:a})},onClose:()=>t(!1),confirmationContent:(0,u.jsxs)(s.Fragment,{children:["Are you sure you want to delete bucket ",(0,u.jsx)("b",{children:a}),"? ",(0,u.jsx)("br",{}),"A bucket can only be deleted if it's empty."]})})}}}]);
//# sourceMappingURL=3851.c5eaa08e.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[3851],{3851:(e,t,n)=>{n.r(t),n.d(t,{default:()=>a});var s=n(65043),l=n(89923),c=n(64159),o=n(21383),r=n(25448),i=n(58661),u=n(70579);const a=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedBucket:a}=e;const d=(0,o.jL)(),[p,b]=(0,r.A)((()=>t(!0)),(e=>d((0,c.C9)(e))));if(!a)return null;return(0,u.jsx)(i.A,{title:"Delete Bucket",confirmText:"Delete",isOpen:n,titleIcon:(0,u.jsx)(l.xWY,{}),isLoading:p,onConfirm:()=>{b("DELETE","/api/v1/buckets/".concat(a),{name:a})},onClose:()=>t(!1),confirmationContent:(0,u.jsxs)(s.Fragment,{children:["Are you sure you want to delete bucket ",(0,u.jsx)("b",{children:a}),"? ",(0,u.jsx)("br",{}),"A bucket can only be deleted if it's empty."]})})}}}]);
//# sourceMappingURL=3851.b9c2f806.chunk.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"static/js/3851.c5eaa08e.chunk.js","mappings":"iNA8BA,MA0CA,EA1CqBA,IAIM,IAJL,2BACpBC,EAA0B,WAC1BC,EAAU,eACVC,GACmBH,EACnB,MAAMI,GAAWC,EAAAA,EAAAA,OAMVC,EAAeC,IAAmBC,EAAAA,EAAAA,IALpBC,IAAMR,GAA2B,KAClCS,GAClBN,GAASO,EAAAA,EAAAA,IAAqBD,MAKhC,IAAKP,EACH,OAAO,KAST,OACES,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,gBACLC,YAAa,SACbC,OAAQd,EACRe,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAC7BC,UAAWb,EACXc,UAboBC,KACtBd,EAAgB,SAAS,mBAADe,OAAqBnB,GAAkB,CAC7DoB,KAAMpB,GACN,EAWAqB,QAtBYA,IAAMvB,GAA2B,GAuB7CwB,qBACEC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAC,SAAA,CAAC,2CAC+BhB,EAAAA,EAAAA,KAAA,KAAAgB,SAAIzB,IAAmB,MAAES,EAAAA,EAAAA,KAAA,SAAM,kDAI1E,C","sources":["screens/Console/Buckets/ListBuckets/DeleteBucket.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment } from \"react\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\ninterface IDeleteBucketProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n}\n\nconst DeleteBucket = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n}: IDeleteBucketProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedBucket) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/buckets/${selectedBucket}`, {\n name: selectedBucket,\n });\n };\n\n return (\n <ConfirmDialog\n title={`Delete Bucket`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={<ConfirmDeleteIcon />}\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n <Fragment>\n Are you sure you want to delete bucket <b>{selectedBucket}</b>? <br />\n A bucket can only be deleted if it's empty.\n </Fragment>\n }\n />\n );\n};\n\nexport default DeleteBucket;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","dispatch","useAppDispatch","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","err","setErrorSnackMessage","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","concat","name","onClose","confirmationContent","_jsxs","Fragment","children"],"sourceRoot":""}
{"version":3,"file":"static/js/3851.b9c2f806.chunk.js","mappings":"iNA8BA,MA0CA,EA1CqBA,IAIM,IAJL,2BACpBC,EAA0B,WAC1BC,EAAU,eACVC,GACmBH,EACnB,MAAMI,GAAWC,EAAAA,EAAAA,OAMVC,EAAeC,IAAmBC,EAAAA,EAAAA,IALpBC,IAAMR,GAA2B,KAClCS,GAClBN,GAASO,EAAAA,EAAAA,IAAqBD,MAKhC,IAAKP,EACH,OAAO,KAST,OACES,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,gBACLC,YAAa,SACbC,OAAQd,EACRe,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAC7BC,UAAWb,EACXc,UAboBC,KACtBd,EAAgB,SAAS,mBAADe,OAAqBnB,GAAkB,CAC7DoB,KAAMpB,GACN,EAWAqB,QAtBYA,IAAMvB,GAA2B,GAuB7CwB,qBACEC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAC,SAAA,CAAC,2CAC+BhB,EAAAA,EAAAA,KAAA,KAAAgB,SAAIzB,IAAmB,MAAES,EAAAA,EAAAA,KAAA,SAAM,kDAI1E,C","sources":["screens/Console/Buckets/ListBuckets/DeleteBucket.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment } from \"react\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\ninterface IDeleteBucketProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n}\n\nconst DeleteBucket = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n}: IDeleteBucketProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedBucket) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/buckets/${selectedBucket}`, {\n name: selectedBucket,\n });\n };\n\n return (\n <ConfirmDialog\n title={`Delete Bucket`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={<ConfirmDeleteIcon />}\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n <Fragment>\n Are you sure you want to delete bucket <b>{selectedBucket}</b>? <br />\n A bucket can only be deleted if it's empty.\n </Fragment>\n }\n />\n );\n};\n\nexport default DeleteBucket;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","dispatch","useAppDispatch","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","err","setErrorSnackMessage","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","concat","name","onClose","confirmationContent","_jsxs","Fragment","children"],"sourceRoot":""}

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[4172],{4172:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var s=n(65043),c=n(33097),l=n.n(c),r=n(25448),i=n(58661),o=n(89923),u=n(64159),a=n(20554),f=n(70579);const p=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedBucket:c,bucketEvent:p}=e;const d=(0,a.jL)(),[x,v]=(0,r.A)((()=>t(!0)),(e=>d((0,u.C9)(e))));if(!c)return null;return(0,f.jsx)(i.A,{title:"Delete Event",confirmText:"Delete",isOpen:n,titleIcon:(0,f.jsx)(o.xWY,{}),isLoading:x,onConfirm:()=>{if(null===p)return;const e=l()(p,"events",[]),t=l()(p,"prefix",""),n=l()(p,"suffix",""),s=e.reduce(((e,t)=>e.includes(t)?e:[...e,t]),[]);v("DELETE","/api/v1/buckets/".concat(c,"/events/").concat(p.arn),{events:s,prefix:t,suffix:n})},onClose:()=>t(!1),confirmationContent:(0,f.jsx)(s.Fragment,{children:"Are you sure you want to delete this event?"})})}}}]);
//# sourceMappingURL=4172.0d489f24.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[4172],{4172:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var s=n(65043),c=n(33097),l=n.n(c),r=n(25448),i=n(58661),o=n(89923),u=n(64159),a=n(21383),f=n(70579);const p=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedBucket:c,bucketEvent:p}=e;const d=(0,a.jL)(),[x,v]=(0,r.A)((()=>t(!0)),(e=>d((0,u.C9)(e))));if(!c)return null;return(0,f.jsx)(i.A,{title:"Delete Event",confirmText:"Delete",isOpen:n,titleIcon:(0,f.jsx)(o.xWY,{}),isLoading:x,onConfirm:()=>{if(null===p)return;const e=l()(p,"events",[]),t=l()(p,"prefix",""),n=l()(p,"suffix",""),s=e.reduce(((e,t)=>e.includes(t)?e:[...e,t]),[]);v("DELETE","/api/v1/buckets/".concat(c,"/events/").concat(p.arn),{events:s,prefix:t,suffix:n})},onClose:()=>t(!1),confirmationContent:(0,f.jsx)(s.Fragment,{children:"Are you sure you want to delete this event?"})})}}}]);
//# sourceMappingURL=4172.139ac13b.chunk.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"static/js/4172.0d489f24.chunk.js","mappings":"qOAiCA,MA6DA,EA7DoBA,IAKM,IALL,2BACnBC,EAA0B,WAC1BC,EAAU,eACVC,EAAc,YACdC,GACkBJ,EAClB,MAAMK,GAAWC,EAAAA,EAAAA,OAMVC,EAAeC,IAAmBC,EAAAA,EAAAA,IALpBC,IAAMT,GAA2B,KAClCU,GAClBN,GAASO,EAAAA,EAAAA,IAAqBD,MAKhC,IAAKR,EACH,OAAO,KA8BT,OACEU,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,eACLC,YAAa,SACbC,OAAQf,EACRgB,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAC7BC,UAAWb,EACXc,UAlCoBC,KACtB,GAAoB,OAAhBlB,EACF,OAGF,MAAMmB,EAAmBC,IAAIpB,EAAa,SAAU,IAC9CqB,EAASD,IAAIpB,EAAa,SAAU,IACpCsB,EAASF,IAAIpB,EAAa,SAAU,IAEpCuB,EAAcJ,EAAOK,QAAO,CAACC,EAAeC,IAC3CD,EAAIE,SAASD,GAGXD,EAFE,IAAIA,EAAKC,IAGjB,IAEHtB,EACE,SAAS,mBAADwB,OACW7B,EAAc,YAAA6B,OAAW5B,EAAY6B,KACxD,CACEV,OAAQI,EACRF,SACAC,UAEH,EAWCQ,QA3CYA,IAAMjC,GAA2B,GA4C7CkC,qBACEtB,EAAAA,EAAAA,KAACuB,EAAAA,SAAQ,CAAAC,SAAC,iDAEZ,C","sources":["screens/Console/Buckets/BucketDetails/DeleteEvent.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { NotificationConfig } from \"api/consoleApi\";\n\ninterface IDeleteEventProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n bucketEvent: NotificationConfig | null;\n}\n\nconst DeleteEvent = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n bucketEvent,\n}: IDeleteEventProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedBucket) {\n return null;\n }\n\n const onConfirmDelete = () => {\n if (bucketEvent === null) {\n return;\n }\n\n const events: string[] = get(bucketEvent, \"events\", []);\n const prefix = get(bucketEvent, \"prefix\", \"\");\n const suffix = get(bucketEvent, \"suffix\", \"\");\n\n const cleanEvents = events.reduce((acc: string[], currVal: string) => {\n if (!acc.includes(currVal)) {\n return [...acc, currVal];\n }\n return acc;\n }, []);\n\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/events/${bucketEvent.arn}`,\n {\n events: cleanEvents,\n prefix,\n suffix,\n },\n );\n };\n\n return (\n <ConfirmDialog\n title={`Delete Event`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={<ConfirmDeleteIcon />}\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n <Fragment>Are you sure you want to delete this event?</Fragment>\n }\n />\n );\n};\n\nexport default DeleteEvent;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","bucketEvent","dispatch","useAppDispatch","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","err","setErrorSnackMessage","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","events","get","prefix","suffix","cleanEvents","reduce","acc","currVal","includes","concat","arn","onClose","confirmationContent","Fragment","children"],"sourceRoot":""}
{"version":3,"file":"static/js/4172.139ac13b.chunk.js","mappings":"qOAiCA,MA6DA,EA7DoBA,IAKM,IALL,2BACnBC,EAA0B,WAC1BC,EAAU,eACVC,EAAc,YACdC,GACkBJ,EAClB,MAAMK,GAAWC,EAAAA,EAAAA,OAMVC,EAAeC,IAAmBC,EAAAA,EAAAA,IALpBC,IAAMT,GAA2B,KAClCU,GAClBN,GAASO,EAAAA,EAAAA,IAAqBD,MAKhC,IAAKR,EACH,OAAO,KA8BT,OACEU,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,eACLC,YAAa,SACbC,OAAQf,EACRgB,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAC7BC,UAAWb,EACXc,UAlCoBC,KACtB,GAAoB,OAAhBlB,EACF,OAGF,MAAMmB,EAAmBC,IAAIpB,EAAa,SAAU,IAC9CqB,EAASD,IAAIpB,EAAa,SAAU,IACpCsB,EAASF,IAAIpB,EAAa,SAAU,IAEpCuB,EAAcJ,EAAOK,QAAO,CAACC,EAAeC,IAC3CD,EAAIE,SAASD,GAGXD,EAFE,IAAIA,EAAKC,IAGjB,IAEHtB,EACE,SAAS,mBAADwB,OACW7B,EAAc,YAAA6B,OAAW5B,EAAY6B,KACxD,CACEV,OAAQI,EACRF,SACAC,UAEH,EAWCQ,QA3CYA,IAAMjC,GAA2B,GA4C7CkC,qBACEtB,EAAAA,EAAAA,KAACuB,EAAAA,SAAQ,CAAAC,SAAC,iDAEZ,C","sources":["screens/Console/Buckets/BucketDetails/DeleteEvent.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { NotificationConfig } from \"api/consoleApi\";\n\ninterface IDeleteEventProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n bucketEvent: NotificationConfig | null;\n}\n\nconst DeleteEvent = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n bucketEvent,\n}: IDeleteEventProps) => {\n const dispatch = useAppDispatch();\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedBucket) {\n return null;\n }\n\n const onConfirmDelete = () => {\n if (bucketEvent === null) {\n return;\n }\n\n const events: string[] = get(bucketEvent, \"events\", []);\n const prefix = get(bucketEvent, \"prefix\", \"\");\n const suffix = get(bucketEvent, \"suffix\", \"\");\n\n const cleanEvents = events.reduce((acc: string[], currVal: string) => {\n if (!acc.includes(currVal)) {\n return [...acc, currVal];\n }\n return acc;\n }, []);\n\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/events/${bucketEvent.arn}`,\n {\n events: cleanEvents,\n prefix,\n suffix,\n },\n );\n };\n\n return (\n <ConfirmDialog\n title={`Delete Event`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={<ConfirmDeleteIcon />}\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n <Fragment>Are you sure you want to delete this event?</Fragment>\n }\n />\n );\n};\n\nexport default DeleteEvent;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","bucketEvent","dispatch","useAppDispatch","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","err","setErrorSnackMessage","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","events","get","prefix","suffix","cleanEvents","reduce","acc","currVal","includes","concat","arn","onClose","confirmationContent","Fragment","children"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[4676],{4676:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var l=n(65043),o=n(58661),s=n(89923),c=n(64159),i=n(20554),r=n(56629),a=n(53518),u=n(70579);const p=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedPolicy:p}=e;const d=(0,i.jL)(),[f,y]=(0,l.useState)(!1);if(!p)return null;return(0,u.jsx)(o.A,{title:"Delete Policy",confirmText:"Delete",isOpen:n,titleIcon:(0,u.jsx)(s.xWY,{}),isLoading:f,onConfirm:()=>{y(!0),r.F.policy.removePolicy(p).then((e=>{t(!0)})).catch((async e=>{const n=await e.json();d((0,c.C9)((0,a.S)(n))),t(!1)})).finally((()=>y(!1)))},onClose:()=>t(!1),confirmationContent:(0,u.jsxs)(l.Fragment,{children:["Are you sure you want to delete policy ",(0,u.jsx)("br",{}),(0,u.jsx)("b",{children:p}),"?"]})})}}}]);
//# sourceMappingURL=4676.8d6be1dd.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[4676],{4676:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var l=n(65043),o=n(58661),s=n(89923),c=n(64159),i=n(21383),r=n(56629),a=n(53518),u=n(70579);const p=e=>{let{closeDeleteModalAndRefresh:t,deleteOpen:n,selectedPolicy:p}=e;const d=(0,i.jL)(),[f,y]=(0,l.useState)(!1);if(!p)return null;return(0,u.jsx)(o.A,{title:"Delete Policy",confirmText:"Delete",isOpen:n,titleIcon:(0,u.jsx)(s.xWY,{}),isLoading:f,onConfirm:()=>{y(!0),r.F.policy.removePolicy(p).then((e=>{t(!0)})).catch((async e=>{const n=await e.json();d((0,c.C9)((0,a.S)(n))),t(!1)})).finally((()=>y(!1)))},onClose:()=>t(!1),confirmationContent:(0,u.jsxs)(l.Fragment,{children:["Are you sure you want to delete policy ",(0,u.jsx)("br",{}),(0,u.jsx)("b",{children:p}),"?"]})})}}}]);
//# sourceMappingURL=4676.563616b8.chunk.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"static/js/4676.8d6be1dd.chunk.js","mappings":"4NA+BA,MAgDA,EAhDqBA,IAIM,IAJL,2BACpBC,EAA0B,WAC1BC,EAAU,eACVC,GACmBH,EACnB,MAAMI,GAAWC,EAAAA,EAAAA,OAGVC,EAAeC,IAAoBC,EAAAA,EAAAA,WAAkB,GAE5D,IAAKL,EACH,OAAO,KAkBT,OACEM,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,gBACLC,YAAa,SACbC,OAAQX,EACRY,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAC7BC,UAAWV,EACXW,UAtBoBC,KACtBX,GAAiB,GACjBY,EAAAA,EAAIC,OACDC,aAAalB,GACbmB,MAAMC,IACLtB,GAA2B,EAAK,IAEjCuB,OAAMC,UACL,MAAMC,QAAaC,EAAIC,OACvBxB,GAASyB,EAAAA,EAAAA,KAAqBC,EAAAA,EAAAA,GAAeJ,KAC7CzB,GAA2B,EAAM,IAElC8B,SAAQ,IAAMxB,GAAiB,IAAO,EAWvCyB,QA/BYA,IAAM/B,GAA2B,GAgC7CgC,qBACEC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAC,SAAA,CAAC,2CAC+B3B,EAAAA,EAAAA,KAAA,UACvCA,EAAAA,EAAAA,KAAA,KAAA2B,SAAIjC,IAAmB,QAG3B,C","sources":["screens/Console/Policies/DeletePolicy.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment, useState } from \"react\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport { api } from \"api\";\nimport { ApiError, HttpResponse } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IDeletePolicyProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedPolicy: string;\n}\n\nconst DeletePolicy = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedPolicy,\n}: IDeletePolicyProps) => {\n const dispatch = useAppDispatch();\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [loadingDelete, setLoadingDelete] = useState<boolean>(false);\n\n if (!selectedPolicy) {\n return null;\n }\n\n const onConfirmDelete = () => {\n setLoadingDelete(true);\n api.policy\n .removePolicy(selectedPolicy)\n .then((_) => {\n closeDeleteModalAndRefresh(true);\n })\n .catch(async (res: HttpResponse<void, ApiError>) => {\n const err = (await res.json()) as ApiError;\n dispatch(setErrorSnackMessage(errorToHandler(err)));\n closeDeleteModalAndRefresh(false);\n })\n .finally(() => setLoadingDelete(false));\n };\n\n return (\n <ConfirmDialog\n title={`Delete Policy`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={<ConfirmDeleteIcon />}\n isLoading={loadingDelete}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n <Fragment>\n Are you sure you want to delete policy <br />\n <b>{selectedPolicy}</b>?\n </Fragment>\n }\n />\n );\n};\n\nexport default DeletePolicy;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","selectedPolicy","dispatch","useAppDispatch","loadingDelete","setLoadingDelete","useState","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","api","policy","removePolicy","then","_","catch","async","err","res","json","setErrorSnackMessage","errorToHandler","finally","onClose","confirmationContent","_jsxs","Fragment","children"],"sourceRoot":""}
{"version":3,"file":"static/js/4676.563616b8.chunk.js","mappings":"4NA+BA,MAgDA,EAhDqBA,IAIM,IAJL,2BACpBC,EAA0B,WAC1BC,EAAU,eACVC,GACmBH,EACnB,MAAMI,GAAWC,EAAAA,EAAAA,OAGVC,EAAeC,IAAoBC,EAAAA,EAAAA,WAAkB,GAE5D,IAAKL,EACH,OAAO,KAkBT,OACEM,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,gBACLC,YAAa,SACbC,OAAQX,EACRY,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAC7BC,UAAWV,EACXW,UAtBoBC,KACtBX,GAAiB,GACjBY,EAAAA,EAAIC,OACDC,aAAalB,GACbmB,MAAMC,IACLtB,GAA2B,EAAK,IAEjCuB,OAAMC,UACL,MAAMC,QAAaC,EAAIC,OACvBxB,GAASyB,EAAAA,EAAAA,KAAqBC,EAAAA,EAAAA,GAAeJ,KAC7CzB,GAA2B,EAAM,IAElC8B,SAAQ,IAAMxB,GAAiB,IAAO,EAWvCyB,QA/BYA,IAAM/B,GAA2B,GAgC7CgC,qBACEC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAC,SAAA,CAAC,2CAC+B3B,EAAAA,EAAAA,KAAA,UACvCA,EAAAA,EAAAA,KAAA,KAAA2B,SAAIjC,IAAmB,QAG3B,C","sources":["screens/Console/Policies/DeletePolicy.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment, useState } from \"react\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { useAppDispatch } from \"../../../store\";\nimport { api } from \"api\";\nimport { ApiError, HttpResponse } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\n\ninterface IDeletePolicyProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedPolicy: string;\n}\n\nconst DeletePolicy = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedPolicy,\n}: IDeletePolicyProps) => {\n const dispatch = useAppDispatch();\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [loadingDelete, setLoadingDelete] = useState<boolean>(false);\n\n if (!selectedPolicy) {\n return null;\n }\n\n const onConfirmDelete = () => {\n setLoadingDelete(true);\n api.policy\n .removePolicy(selectedPolicy)\n .then((_) => {\n closeDeleteModalAndRefresh(true);\n })\n .catch(async (res: HttpResponse<void, ApiError>) => {\n const err = (await res.json()) as ApiError;\n dispatch(setErrorSnackMessage(errorToHandler(err)));\n closeDeleteModalAndRefresh(false);\n })\n .finally(() => setLoadingDelete(false));\n };\n\n return (\n <ConfirmDialog\n title={`Delete Policy`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={<ConfirmDeleteIcon />}\n isLoading={loadingDelete}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n <Fragment>\n Are you sure you want to delete policy <br />\n <b>{selectedPolicy}</b>?\n </Fragment>\n }\n />\n );\n};\n\nexport default DeletePolicy;\n"],"names":["_ref","closeDeleteModalAndRefresh","deleteOpen","selectedPolicy","dispatch","useAppDispatch","loadingDelete","setLoadingDelete","useState","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","api","policy","removePolicy","then","_","catch","async","err","res","json","setErrorSnackMessage","errorToHandler","finally","onClose","confirmationContent","_jsxs","Fragment","children"],"sourceRoot":""}

View File

@@ -1,2 +0,0 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[4705],{42967:(e,l,t)=>{t.d(l,{A:()=>x});var s=t(65043),i=t(89923),n=t(8185),c=t(64681),o=t(64159),a=t(20554),r=t(62560),d=t(22166),u=t(56629),h=t(70579);const x=e=>{let{noTitle:l=!1}=e;const t=(0,a.jL)(),[x,p]=(0,s.useState)([]),[m,v]=(0,s.useState)(!1),[j,y]=(0,s.useState)(""),g=(0,d.d4)((e=>e.createUser.selectedPolicies)),b=(0,s.useCallback)((()=>{v(!0),u.F.policies.listPolicies().then((e=>{var l;const t=null!==(l=e.data.policies)&&void 0!==l?l:[];v(!1),p(t.sort(n.Hw))})).catch((e=>{v(!1),t((0,o.Dy)(e))}))}),[t]);(0,s.useEffect)((()=>{v(!0)}),[]),(0,s.useEffect)((()=>{m&&b()}),[m,b]);const f=x.filter((e=>e.name.includes(j)));return(0,h.jsxs)(i.xA9,{item:!0,xs:12,className:"inputItem",children:[m&&(0,h.jsx)(i.z21,{}),x.length>0?(0,h.jsxs)(s.Fragment,{children:[(0,h.jsx)(i.xA9,{item:!0,xs:12,className:"inputItem",children:(0,h.jsx)(c.A,{placeholder:"Start typing to search for a Policy",onChange:e=>{y(e)},value:j,label:l?"":"Assign Policies"})}),(0,h.jsx)(i.bQt,{columns:[{label:"Policy",elementKey:"name"}],onSelect:e=>{const l=e.target,s=l.value,i=l.checked;let n=[...g];i?n.push(s):n=n.filter((e=>e!==s)),n=n.filter((e=>""!==e)),t((0,r.Gy)(n))},selectedItems:g,isLoading:m,records:f,entityName:"Policies",idField:"name",customPaperHeight:"200px"})]}):(0,h.jsx)(i.azJ,{sx:{textAlign:"center",padding:"10px 0"},children:"No Policies Available"})]})}},74705:(e,l,t)=>{t.r(l),t.d(l,{default:()=>v});var s=t(65043),i=t(33097),n=t.n(i),c=t(22166),o=t(89923),a=t(64159),r=t(20554),d=t(77403),u=t(62560),h=t(94141),x=t(42967),p=t(20649),m=t(70579);const v=e=>{let{closeModalAndRefresh:l,selectedUser:t,selectedGroups:i,open:v}=e;const j=(0,r.jL)(),[y,g]=(0,s.useState)(!1),[b,f]=(0,s.useState)([]),[A,P]=(0,s.useState)([]),S=(0,c.d4)((e=>e.createUser.selectedPolicies));(0,s.useEffect)((()=>{if(v){if(1===(null===i||void 0===i?void 0:i.length))return void(1===(null===i||void 0===i?void 0:i.length)&&p.A.invoke("GET","/api/v1/group/".concat(encodeURIComponent(i[0]))).then((e=>{const l=n()(e,"policy","");f(l.split(",")),P(l.split(",")),j((0,u.Gy)(l.split(",")))})).catch((e=>{j((0,a.Dy)(e)),g(!1)})));const e=n()(t,"policy",[]);f(e),P(e),j((0,u.Gy)(e))}}),[v,null===i||void 0===i?void 0:i.length,t]);const k=n()(t,"accessKey","");return(0,m.jsxs)(h.A,{onClose:()=>{l()},modalOpen:v,title:"Set Policies",children:[(0,m.jsxs)(o.Hbc,{withBorders:!1,containerPadding:!1,children:[(1===(null===i||void 0===i?void 0:i.length)||null!=t)&&(0,m.jsxs)(s.Fragment,{children:[(0,m.jsx)(o.EmB,{label:"Selected ".concat(null!==i?"Group":"User"),sx:{width:"100%"},children:null!==i?i[0]:k}),(0,m.jsx)(o.EmB,{label:"Current Policy",sx:{width:"100%"},children:b.join(", ")})]}),i&&(null===i||void 0===i?void 0:i.length)>1&&(0,m.jsx)(o.EmB,{label:"Selected Groups",sx:{width:"100%"},children:i.join(", ")}),(0,m.jsx)(o.xA9,{item:!0,xs:12,children:(0,m.jsx)(x.A,{selectedPolicy:A})})]}),(0,m.jsxs)(o.xA9,{item:!0,xs:12,sx:d.Uz.modalButtonBar,children:[(0,m.jsx)(o.$nd,{id:"reset",type:"button",variant:"regular",onClick:()=>{P(b),j((0,u.Gy)(b))},label:"Reset"}),(0,m.jsx)(o.$nd,{id:"save",type:"button",variant:"callAction",color:"primary",disabled:y,onClick:()=>{let e=null,s=null;null!==i?s=i:null!==t&&(e=[t.accessKey]||0),g(!0),p.A.invoke("PUT","/api/v1/set-policy-multi",{name:S,groups:s,users:e}).then((()=>{g(!1),l()})).catch((e=>{g(!1),j((0,a.Dy)(e))}))},label:"Save"})]}),y&&(0,m.jsx)(o.xA9,{item:!0,xs:12,children:(0,m.jsx)(o.z21,{})})]})}}}]);
//# sourceMappingURL=4705.1a1c4cd3.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[4705],{94141:(e,t,l)=>{l.d(t,{A:()=>d});var s=l(65043),i=l(22166),n=l(89923),o=l(21383),c=l(64159),a=l(49555),r=l(70579);const d=e=>{let{onClose:t,modalOpen:l,title:d,children:u,wideLimit:h=!0,titleIcon:p=null,iconColor:x="default",sx:m}=e;const v=(0,o.jL)(),[j,g]=(0,s.useState)(!1),y=(0,i.d4)((e=>e.system.modalSnackBar));(0,s.useEffect)((()=>{v((0,c.h0)(""))}),[v]),(0,s.useEffect)((()=>{if(y){if(""===y.message)return void g(!1);"error"!==y.type&&g(!0)}}),[y]);let f="";return y&&(f=y.detailedErrorMsg,(""===f||f&&f.length<5)&&(f=y.message)),(0,r.jsxs)(n.ngX,{onClose:t,open:l,title:d,titleIcon:p,widthLimit:h,sx:m,iconColor:x,children:[(0,r.jsx)(a.A,{isModal:!0}),(0,r.jsx)(n.qb_,{onClose:()=>{g(!1),v((0,c.h0)(""))},open:j,message:f,mode:"inline",variant:"error"===y.type?"error":"default",autoHideDuration:"error"===y.type?10:5,condensed:!0}),u]})}},42967:(e,t,l)=>{l.d(t,{A:()=>p});var s=l(65043),i=l(89923),n=l(8185),o=l(64681),c=l(64159),a=l(21383),r=l(62560),d=l(22166),u=l(56629),h=l(70579);const p=e=>{let{noTitle:t=!1}=e;const l=(0,a.jL)(),[p,x]=(0,s.useState)([]),[m,v]=(0,s.useState)(!1),[j,g]=(0,s.useState)(""),y=(0,d.d4)((e=>e.createUser.selectedPolicies)),f=(0,s.useCallback)((()=>{v(!0),u.F.policies.listPolicies().then((e=>{var t;const l=null!==(t=e.data.policies)&&void 0!==t?t:[];v(!1),x(l.sort(n.Hw))})).catch((e=>{v(!1),l((0,c.Dy)(e))}))}),[l]);(0,s.useEffect)((()=>{v(!0)}),[]),(0,s.useEffect)((()=>{m&&f()}),[m,f]);const b=p.filter((e=>e.name.includes(j)));return(0,h.jsxs)(i.xA9,{item:!0,xs:12,className:"inputItem",children:[m&&(0,h.jsx)(i.z21,{}),p.length>0?(0,h.jsxs)(s.Fragment,{children:[(0,h.jsx)(i.xA9,{item:!0,xs:12,className:"inputItem",children:(0,h.jsx)(o.A,{placeholder:"Start typing to search for a Policy",onChange:e=>{g(e)},value:j,label:t?"":"Assign Policies"})}),(0,h.jsx)(i.bQt,{columns:[{label:"Policy",elementKey:"name"}],onSelect:e=>{const t=e.target,s=t.value,i=t.checked;let n=[...y];i?n.push(s):n=n.filter((e=>e!==s)),n=n.filter((e=>""!==e)),l((0,r.Gy)(n))},selectedItems:y,isLoading:m,records:b,entityName:"Policies",idField:"name",customPaperHeight:"200px"})]}):(0,h.jsx)(i.azJ,{sx:{textAlign:"center",padding:"10px 0"},children:"No Policies Available"})]})}},74705:(e,t,l)=>{l.r(t),l.d(t,{default:()=>v});var s=l(65043),i=l(33097),n=l.n(i),o=l(22166),c=l(89923),a=l(64159),r=l(21383),d=l(77403),u=l(62560),h=l(94141),p=l(42967),x=l(20649),m=l(70579);const v=e=>{let{closeModalAndRefresh:t,selectedUser:l,selectedGroups:i,open:v}=e;const j=(0,r.jL)(),[g,y]=(0,s.useState)(!1),[f,b]=(0,s.useState)([]),[A,C]=(0,s.useState)([]),P=(0,o.d4)((e=>e.createUser.selectedPolicies));(0,s.useEffect)((()=>{if(v){if(1===(null===i||void 0===i?void 0:i.length))return void(1===(null===i||void 0===i?void 0:i.length)&&x.A.invoke("GET","/api/v1/group/".concat(encodeURIComponent(i[0]))).then((e=>{const t=n()(e,"policy","");b(t.split(",")),C(t.split(",")),j((0,u.Gy)(t.split(",")))})).catch((e=>{j((0,a.Dy)(e)),y(!1)})));const e=n()(l,"policy",[]);b(e),C(e),j((0,u.Gy)(e))}}),[v,null===i||void 0===i?void 0:i.length,l]);const S=n()(l,"accessKey","");return(0,m.jsxs)(h.A,{onClose:()=>{t()},modalOpen:v,title:"Set Policies",children:[(0,m.jsxs)(c.Hbc,{withBorders:!1,containerPadding:!1,children:[(1===(null===i||void 0===i?void 0:i.length)||null!=l)&&(0,m.jsxs)(s.Fragment,{children:[(0,m.jsx)(c.EmB,{label:"Selected ".concat(null!==i?"Group":"User"),sx:{width:"100%"},children:null!==i?i[0]:S}),(0,m.jsx)(c.EmB,{label:"Current Policy",sx:{width:"100%"},children:f.join(", ")})]}),i&&(null===i||void 0===i?void 0:i.length)>1&&(0,m.jsx)(c.EmB,{label:"Selected Groups",sx:{width:"100%"},children:i.join(", ")}),(0,m.jsx)(c.xA9,{item:!0,xs:12,children:(0,m.jsx)(p.A,{selectedPolicy:A})})]}),(0,m.jsxs)(c.xA9,{item:!0,xs:12,sx:d.Uz.modalButtonBar,children:[(0,m.jsx)(c.$nd,{id:"reset",type:"button",variant:"regular",onClick:()=>{C(f),j((0,u.Gy)(f))},label:"Reset"}),(0,m.jsx)(c.$nd,{id:"save",type:"button",variant:"callAction",color:"primary",disabled:g,onClick:()=>{let e=null,s=null;null!==i?s=i:null!==l&&(e=[l.accessKey]||0),y(!0),x.A.invoke("PUT","/api/v1/set-policy-multi",{name:P,groups:s,users:e}).then((()=>{y(!1),t()})).catch((e=>{y(!1),j((0,a.Dy)(e))}))},label:"Save"})]}),g&&(0,m.jsx)(c.xA9,{item:!0,xs:12,children:(0,m.jsx)(c.z21,{})})]})}}}]);
//# sourceMappingURL=4705.b1d28560.chunk.js.map

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[502],{70502:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var s=n(65043),o=n(89923),l=n(64159),c=n(20554),r=n(56629),u=n(53518),a=n(58661),i=n(70579);const p=e=>{let{onClose:t,modalOpen:n,bucket:p,toDelete:f}=e;const h=(0,c.jL)(),[d,k]=(0,s.useState)(!1);return(0,i.jsx)(a.A,{title:"Delete Anonymous Access Rule",confirmText:"Delete",isOpen:n,isLoading:d,onConfirm:()=>{k(!0);let e={prefix:f};r.F.bucket.deleteAccessRuleWithBucket(p,e).then((()=>{t()})).catch((e=>{h((0,l.C9)((0,u.S)(e.error))),t()})).finally((()=>k(!1)))},titleIcon:(0,i.jsx)(o.xWY,{}),onClose:t,confirmationContent:(0,i.jsx)(s.Fragment,{children:"Are you sure you want to delete this access rule?"})})}}}]);
//# sourceMappingURL=502.0106f2a9.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[502],{70502:(e,t,n)=>{n.r(t),n.d(t,{default:()=>p});var s=n(65043),o=n(89923),l=n(64159),c=n(21383),r=n(56629),u=n(53518),a=n(58661),i=n(70579);const p=e=>{let{onClose:t,modalOpen:n,bucket:p,toDelete:f}=e;const h=(0,c.jL)(),[d,k]=(0,s.useState)(!1);return(0,i.jsx)(a.A,{title:"Delete Anonymous Access Rule",confirmText:"Delete",isOpen:n,isLoading:d,onConfirm:()=>{k(!0);let e={prefix:f};r.F.bucket.deleteAccessRuleWithBucket(p,e).then((()=>{t()})).catch((e=>{h((0,l.C9)((0,u.S)(e.error))),t()})).finally((()=>k(!1)))},titleIcon:(0,i.jsx)(o.xWY,{}),onClose:t,confirmationContent:(0,i.jsx)(s.Fragment,{children:"Are you sure you want to delete this access rule?"})})}}}]);
//# sourceMappingURL=502.b83faa7c.chunk.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"static/js/502.0106f2a9.chunk.js","mappings":"4NAgCA,MA0CA,EA1CyBA,IAKC,IALA,QACxBC,EAAO,UACPC,EAAS,OACTC,EAAM,SACNC,GACkBJ,EAClB,MAAMK,GAAWC,EAAAA,EAAAA,OAEVC,EAAyBC,IAC9BC,EAAAA,EAAAA,WAAkB,GAiBpB,OACEC,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,+BACLC,YAAa,SACbC,OAAQZ,EACRa,UAAWR,EACXS,UArBoBC,KACtBT,GAA2B,GAC3B,IAAIU,EAAyB,CAAEC,OAAQf,GACvCgB,EAAAA,EAAIjB,OACDkB,2BAA2BlB,EAAQe,GACnCI,MAAK,KACJrB,GAAS,IAEVsB,OAAOC,IACNnB,GAASoB,EAAAA,EAAAA,KAAqBC,EAAAA,EAAAA,GAAeF,EAAIG,SACjD1B,GAAS,IAEV2B,SAAQ,IAAMpB,GAA2B,IAAO,EAUjDqB,WAAWnB,EAAAA,EAAAA,KAACoB,EAAAA,IAAiB,IAC7B7B,QAASA,EACT8B,qBACErB,EAAAA,EAAAA,KAACsB,EAAAA,SAAQ,CAAAC,SAAC,uDAEZ,C","sources":["screens/Console/Buckets/BucketDetails/DeleteAccessRule.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment, useState } from \"react\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { api } from \"api\";\nimport { ApiError, HttpResponse, PrefixWrapper } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\ninterface IDeleteAccessRule {\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n toDelete: string;\n}\n\nconst DeleteAccessRule = ({\n onClose,\n modalOpen,\n bucket,\n toDelete,\n}: IDeleteAccessRule) => {\n const dispatch = useAppDispatch();\n\n const [loadingDeleteAccessRule, setLoadingDeleteAccessRule] =\n useState<boolean>(false);\n\n const onConfirmDelete = () => {\n setLoadingDeleteAccessRule(true);\n let wrapper: PrefixWrapper = { prefix: toDelete };\n api.bucket\n .deleteAccessRuleWithBucket(bucket, wrapper)\n .then(() => {\n onClose();\n })\n .catch((res: HttpResponse<boolean, ApiError>) => {\n dispatch(setErrorSnackMessage(errorToHandler(res.error)));\n onClose();\n })\n .finally(() => setLoadingDeleteAccessRule(false));\n };\n\n return (\n <ConfirmDialog\n title={`Delete Anonymous Access Rule`}\n confirmText={\"Delete\"}\n isOpen={modalOpen}\n isLoading={loadingDeleteAccessRule}\n onConfirm={onConfirmDelete}\n titleIcon={<ConfirmDeleteIcon />}\n onClose={onClose}\n confirmationContent={\n <Fragment>Are you sure you want to delete this access rule?</Fragment>\n }\n />\n );\n};\n\nexport default DeleteAccessRule;\n"],"names":["_ref","onClose","modalOpen","bucket","toDelete","dispatch","useAppDispatch","loadingDeleteAccessRule","setLoadingDeleteAccessRule","useState","_jsx","ConfirmDialog","title","confirmText","isOpen","isLoading","onConfirm","onConfirmDelete","wrapper","prefix","api","deleteAccessRuleWithBucket","then","catch","res","setErrorSnackMessage","errorToHandler","error","finally","titleIcon","ConfirmDeleteIcon","confirmationContent","Fragment","children"],"sourceRoot":""}
{"version":3,"file":"static/js/502.b83faa7c.chunk.js","mappings":"4NAgCA,MA0CA,EA1CyBA,IAKC,IALA,QACxBC,EAAO,UACPC,EAAS,OACTC,EAAM,SACNC,GACkBJ,EAClB,MAAMK,GAAWC,EAAAA,EAAAA,OAEVC,EAAyBC,IAC9BC,EAAAA,EAAAA,WAAkB,GAiBpB,OACEC,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,+BACLC,YAAa,SACbC,OAAQZ,EACRa,UAAWR,EACXS,UArBoBC,KACtBT,GAA2B,GAC3B,IAAIU,EAAyB,CAAEC,OAAQf,GACvCgB,EAAAA,EAAIjB,OACDkB,2BAA2BlB,EAAQe,GACnCI,MAAK,KACJrB,GAAS,IAEVsB,OAAOC,IACNnB,GAASoB,EAAAA,EAAAA,KAAqBC,EAAAA,EAAAA,GAAeF,EAAIG,SACjD1B,GAAS,IAEV2B,SAAQ,IAAMpB,GAA2B,IAAO,EAUjDqB,WAAWnB,EAAAA,EAAAA,KAACoB,EAAAA,IAAiB,IAC7B7B,QAASA,EACT8B,qBACErB,EAAAA,EAAAA,KAACsB,EAAAA,SAAQ,CAAAC,SAAC,uDAEZ,C","sources":["screens/Console/Buckets/BucketDetails/DeleteAccessRule.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment, useState } from \"react\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\nimport { api } from \"api\";\nimport { ApiError, HttpResponse, PrefixWrapper } from \"api/consoleApi\";\nimport { errorToHandler } from \"api/errors\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\ninterface IDeleteAccessRule {\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n toDelete: string;\n}\n\nconst DeleteAccessRule = ({\n onClose,\n modalOpen,\n bucket,\n toDelete,\n}: IDeleteAccessRule) => {\n const dispatch = useAppDispatch();\n\n const [loadingDeleteAccessRule, setLoadingDeleteAccessRule] =\n useState<boolean>(false);\n\n const onConfirmDelete = () => {\n setLoadingDeleteAccessRule(true);\n let wrapper: PrefixWrapper = { prefix: toDelete };\n api.bucket\n .deleteAccessRuleWithBucket(bucket, wrapper)\n .then(() => {\n onClose();\n })\n .catch((res: HttpResponse<boolean, ApiError>) => {\n dispatch(setErrorSnackMessage(errorToHandler(res.error)));\n onClose();\n })\n .finally(() => setLoadingDeleteAccessRule(false));\n };\n\n return (\n <ConfirmDialog\n title={`Delete Anonymous Access Rule`}\n confirmText={\"Delete\"}\n isOpen={modalOpen}\n isLoading={loadingDeleteAccessRule}\n onConfirm={onConfirmDelete}\n titleIcon={<ConfirmDeleteIcon />}\n onClose={onClose}\n confirmationContent={\n <Fragment>Are you sure you want to delete this access rule?</Fragment>\n }\n />\n );\n};\n\nexport default DeleteAccessRule;\n"],"names":["_ref","onClose","modalOpen","bucket","toDelete","dispatch","useAppDispatch","loadingDeleteAccessRule","setLoadingDeleteAccessRule","useState","_jsx","ConfirmDialog","title","confirmText","isOpen","isLoading","onConfirm","onConfirmDelete","wrapper","prefix","api","deleteAccessRuleWithBucket","then","catch","res","setErrorSnackMessage","errorToHandler","error","finally","titleIcon","ConfirmDeleteIcon","confirmationContent","Fragment","children"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[5079],{55079:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});var a=n(65043),s=n(25448),o=n(58661),r=n(89923),l=n(64159),c=n(20554),i=n(70579);const d=e=>{let{deleteOpen:t,currentTags:n,selectedTag:d,onCloseAndUpdate:u,bucketName:p}=e;const b=(0,c.jL)(),[g,h]=d,[w,f]=(0,s.A)((()=>u(!0)),(e=>b((0,l.C9)(e))));if(!d)return null;return(0,i.jsx)(o.A,{title:"Delete Tag",confirmText:"Delete",isOpen:t,titleIcon:(0,i.jsx)(r.xWY,{}),isLoading:w,onConfirm:()=>{const e={...n};delete e[g],f("PUT","/api/v1/buckets/".concat(p,"/tags"),{tags:e})},onClose:()=>u(!1),confirmationContent:(0,i.jsxs)(a.Fragment,{children:["Are you sure you want to delete the tag"," ",(0,i.jsxs)("b",{style:{maxWidth:200,whiteSpace:"normal",wordWrap:"break-word"},children:[g," : ",h]})," ","?"]})})}}}]);
//# sourceMappingURL=5079.a0847792.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[5079],{55079:(e,t,n)=>{n.r(t),n.d(t,{default:()=>d});var a=n(65043),s=n(25448),o=n(58661),r=n(89923),l=n(64159),c=n(21383),i=n(70579);const d=e=>{let{deleteOpen:t,currentTags:n,selectedTag:d,onCloseAndUpdate:u,bucketName:p}=e;const b=(0,c.jL)(),[g,h]=d,[w,f]=(0,s.A)((()=>u(!0)),(e=>b((0,l.C9)(e))));if(!d)return null;return(0,i.jsx)(o.A,{title:"Delete Tag",confirmText:"Delete",isOpen:t,titleIcon:(0,i.jsx)(r.xWY,{}),isLoading:w,onConfirm:()=>{const e={...n};delete e[g],f("PUT","/api/v1/buckets/".concat(p,"/tags"),{tags:e})},onClose:()=>u(!1),confirmationContent:(0,i.jsxs)(a.Fragment,{children:["Are you sure you want to delete the tag"," ",(0,i.jsxs)("b",{style:{maxWidth:200,whiteSpace:"normal",wordWrap:"break-word"},children:[g," : ",h]})," ","?"]})})}}}]);
//# sourceMappingURL=5079.118cae1f.chunk.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"static/js/5079.a0847792.chunk.js","mappings":"kNAgCA,MA0DA,EA1D6BA,IAMC,IANA,WAC5BC,EAAU,YACVC,EAAW,YACXC,EAAW,iBACXC,EAAgB,WAChBC,GACsBL,EACtB,MAAMM,GAAWC,EAAAA,EAAAA,OACVC,EAAQC,GAAYN,GAOpBO,EAAeC,IAAmBC,EAAAA,EAAAA,IALpBC,IAAMT,GAAiB,KACxBU,GAClBR,GAASS,EAAAA,EAAAA,IAAqBD,MAKhC,IAAKX,EACH,OAAO,KAYT,OACEa,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,aACLC,YAAa,SACbC,OAAQnB,EACRoB,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAC7BC,UAAWb,EACXc,UAhBoBC,KACtB,MAAMC,EAAc,IAAKxB,UAClBwB,EAAYlB,GAEnBG,EAAgB,MAAM,mBAADgB,OAAqBtB,EAAU,SAAS,CAC3DuB,KAAMF,GACN,EAWAG,QAzBYA,IAAMzB,GAAiB,GA0BnC0B,qBACEC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAC,SAAA,CAAC,0CACgC,KACxCF,EAAAA,EAAAA,MAAA,KACEG,MAAO,CACLC,SAAU,IACVC,WAAY,SACZC,SAAU,cACVJ,SAAA,CAEDzB,EAAO,MAAIC,KACT,IAAI,QAIb,C","sources":["screens/Console/Buckets/BucketDetails/DeleteBucketTagModal.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment } from \"react\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IDeleteBucketTagModal {\n deleteOpen: boolean;\n currentTags: any;\n bucketName: string;\n selectedTag: string[];\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst DeleteBucketTagModal = ({\n deleteOpen,\n currentTags,\n selectedTag,\n onCloseAndUpdate,\n bucketName,\n}: IDeleteBucketTagModal) => {\n const dispatch = useAppDispatch();\n const [tagKey, tagLabel] = selectedTag;\n\n const onDelSuccess = () => onCloseAndUpdate(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => onCloseAndUpdate(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedTag) {\n return null;\n }\n\n const onConfirmDelete = () => {\n const cleanObject = { ...currentTags };\n delete cleanObject[tagKey];\n\n invokeDeleteApi(\"PUT\", `/api/v1/buckets/${bucketName}/tags`, {\n tags: cleanObject,\n });\n };\n\n return (\n <ConfirmDialog\n title={`Delete Tag`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={<ConfirmDeleteIcon />}\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n <Fragment>\n Are you sure you want to delete the tag{\" \"}\n <b\n style={{\n maxWidth: 200,\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n }}\n >\n {tagKey} : {tagLabel}\n </b>{\" \"}\n ?\n </Fragment>\n }\n />\n );\n};\n\nexport default DeleteBucketTagModal;\n"],"names":["_ref","deleteOpen","currentTags","selectedTag","onCloseAndUpdate","bucketName","dispatch","useAppDispatch","tagKey","tagLabel","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","err","setErrorSnackMessage","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","cleanObject","concat","tags","onClose","confirmationContent","_jsxs","Fragment","children","style","maxWidth","whiteSpace","wordWrap"],"sourceRoot":""}
{"version":3,"file":"static/js/5079.118cae1f.chunk.js","mappings":"kNAgCA,MA0DA,EA1D6BA,IAMC,IANA,WAC5BC,EAAU,YACVC,EAAW,YACXC,EAAW,iBACXC,EAAgB,WAChBC,GACsBL,EACtB,MAAMM,GAAWC,EAAAA,EAAAA,OACVC,EAAQC,GAAYN,GAOpBO,EAAeC,IAAmBC,EAAAA,EAAAA,IALpBC,IAAMT,GAAiB,KACxBU,GAClBR,GAASS,EAAAA,EAAAA,IAAqBD,MAKhC,IAAKX,EACH,OAAO,KAYT,OACEa,EAAAA,EAAAA,KAACC,EAAAA,EAAa,CACZC,MAAK,aACLC,YAAa,SACbC,OAAQnB,EACRoB,WAAWL,EAAAA,EAAAA,KAACM,EAAAA,IAAiB,IAC7BC,UAAWb,EACXc,UAhBoBC,KACtB,MAAMC,EAAc,IAAKxB,UAClBwB,EAAYlB,GAEnBG,EAAgB,MAAM,mBAADgB,OAAqBtB,EAAU,SAAS,CAC3DuB,KAAMF,GACN,EAWAG,QAzBYA,IAAMzB,GAAiB,GA0BnC0B,qBACEC,EAAAA,EAAAA,MAACC,EAAAA,SAAQ,CAAAC,SAAA,CAAC,0CACgC,KACxCF,EAAAA,EAAAA,MAAA,KACEG,MAAO,CACLC,SAAU,IACVC,WAAY,SACZC,SAAU,cACVJ,SAAA,CAEDzB,EAAO,MAAIC,KACT,IAAI,QAIb,C","sources":["screens/Console/Buckets/BucketDetails/DeleteBucketTagModal.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { Fragment } from \"react\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IDeleteBucketTagModal {\n deleteOpen: boolean;\n currentTags: any;\n bucketName: string;\n selectedTag: string[];\n onCloseAndUpdate: (refresh: boolean) => void;\n}\n\nconst DeleteBucketTagModal = ({\n deleteOpen,\n currentTags,\n selectedTag,\n onCloseAndUpdate,\n bucketName,\n}: IDeleteBucketTagModal) => {\n const dispatch = useAppDispatch();\n const [tagKey, tagLabel] = selectedTag;\n\n const onDelSuccess = () => onCloseAndUpdate(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => onCloseAndUpdate(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedTag) {\n return null;\n }\n\n const onConfirmDelete = () => {\n const cleanObject = { ...currentTags };\n delete cleanObject[tagKey];\n\n invokeDeleteApi(\"PUT\", `/api/v1/buckets/${bucketName}/tags`, {\n tags: cleanObject,\n });\n };\n\n return (\n <ConfirmDialog\n title={`Delete Tag`}\n confirmText={\"Delete\"}\n isOpen={deleteOpen}\n titleIcon={<ConfirmDeleteIcon />}\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmationContent={\n <Fragment>\n Are you sure you want to delete the tag{\" \"}\n <b\n style={{\n maxWidth: 200,\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n }}\n >\n {tagKey} : {tagLabel}\n </b>{\" \"}\n ?\n </Fragment>\n }\n />\n );\n};\n\nexport default DeleteBucketTagModal;\n"],"names":["_ref","deleteOpen","currentTags","selectedTag","onCloseAndUpdate","bucketName","dispatch","useAppDispatch","tagKey","tagLabel","deleteLoading","invokeDeleteApi","useApi","onDelSuccess","err","setErrorSnackMessage","_jsx","ConfirmDialog","title","confirmText","isOpen","titleIcon","ConfirmDeleteIcon","isLoading","onConfirm","onConfirmDelete","cleanObject","concat","tags","onClose","confirmationContent","_jsxs","Fragment","children","style","maxWidth","whiteSpace","wordWrap"],"sourceRoot":""}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[5301],{55301:(e,t,o)=>{o.r(t),o.d(t,{default:()=>i});var a=o(65043),c=o(73216),s=o(20554),n=o(56483),r=o(64159),l=o(46537),p=o(20649),u=o(20685),g=o(70579);const i=()=>{const e=(0,s.jL)(),t=(0,c.Zp)();return(0,a.useEffect)((()=>{const o=()=>{e((0,r.WQ)(!1)),e({type:"socket/OBDisconnect"}),localStorage.setItem("userLoggedIn",""),localStorage.setItem("redirect-path",""),e((0,l.wD)()),(0,n.q7)(),t("/login"),window.location.reload()};(()=>{const e=localStorage.getItem("auth-state");p.A.invoke("POST","/api/v1/logout",{state:e}).then(o).catch((e=>{console.error(e),o()}))})()}),[e,t]),(0,g.jsx)(u.A,{})}}}]);
//# sourceMappingURL=5301.2c626a41.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[5301],{55301:(e,t,o)=>{o.r(t),o.d(t,{default:()=>i});var a=o(65043),c=o(73216),s=o(21383),n=o(56483),r=o(64159),l=o(46537),p=o(20649),u=o(20685),g=o(70579);const i=()=>{const e=(0,s.jL)(),t=(0,c.Zp)();return(0,a.useEffect)((()=>{const o=()=>{e((0,r.WQ)(!1)),e({type:"socket/OBDisconnect"}),localStorage.setItem("userLoggedIn",""),localStorage.setItem("redirect-path",""),e((0,l.wD)()),(0,n.q7)(),t("/login"),window.location.reload()};(()=>{const e=localStorage.getItem("auth-state");p.A.invoke("POST","/api/v1/logout",{state:e}).then(o).catch((e=>{console.error(e),o()}))})()}),[e,t]),(0,g.jsx)(u.A,{})}}}]);
//# sourceMappingURL=5301.79001158.chunk.js.map

View File

@@ -1 +1 @@
{"version":3,"file":"static/js/5301.2c626a41.chunk.js","mappings":"wOA0BA,MAgCA,EAhCmBA,KACjB,MAAMC,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MA2BjB,OA1BAC,EAAAA,EAAAA,YAAU,KACR,MAAMC,EAAgBA,KACpBL,GAASM,EAAAA,EAAAA,KAAW,IAEpBN,EAAS,CAAEO,KAAM,wBACjBC,aAAaC,QAAQ,eAAgB,IACrCD,aAAaC,QAAQ,gBAAiB,IACtCT,GAASU,EAAAA,EAAAA,QACTC,EAAAA,EAAAA,MAEAT,EAAS,UACTU,OAAOC,SAASC,QAAQ,EAGXC,MACb,MAAMC,EAAQR,aAAaS,QAAQ,cACnCC,EAAAA,EACGC,OAAO,OAAO,iBAAmB,CAAEH,UACnCI,KAAKf,GACLgB,OAAOC,IACNC,QAAQC,MAAMF,GACdjB,GAAe,GACf,EAENU,EAAQ,GACP,CAACf,EAAUE,KACPuB,EAAAA,EAAAA,KAACC,EAAAA,EAAgB,GAAG,C","sources":["screens/LogoutPage/LogoutPage.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../store\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport { clearSession } from \"../../common/utils\";\nimport { userLogged } from \"../../systemSlice\";\nimport { resetSession } from \"../Console/consoleSlice\";\nimport api from \"../../common/api\";\nimport LoadingComponent from \"../../common/LoadingComponent\";\n\nconst LogoutPage = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n useEffect(() => {\n const deleteSession = () => {\n dispatch(userLogged(false));\n // Disconnect OB Websocket\n dispatch({ type: \"socket/OBDisconnect\" });\n localStorage.setItem(\"userLoggedIn\", \"\");\n localStorage.setItem(\"redirect-path\", \"\");\n dispatch(resetSession());\n clearSession();\n\n navigate(\"/login\");\n window.location.reload(); //reset-all redux states etc. by force reloading.\n };\n\n const logout = () => {\n const state = localStorage.getItem(\"auth-state\");\n api\n .invoke(\"POST\", `/api/v1/logout`, { state })\n .then(deleteSession)\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n deleteSession();\n });\n };\n logout();\n }, [dispatch, navigate]);\n return <LoadingComponent />;\n};\n\nexport default LogoutPage;\n"],"names":["LogoutPage","dispatch","useAppDispatch","navigate","useNavigate","useEffect","deleteSession","userLogged","type","localStorage","setItem","resetSession","clearSession","window","location","reload","logout","state","getItem","api","invoke","then","catch","err","console","error","_jsx","LoadingComponent"],"sourceRoot":""}
{"version":3,"file":"static/js/5301.79001158.chunk.js","mappings":"wOA0BA,MAgCA,EAhCmBA,KACjB,MAAMC,GAAWC,EAAAA,EAAAA,MACXC,GAAWC,EAAAA,EAAAA,MA2BjB,OA1BAC,EAAAA,EAAAA,YAAU,KACR,MAAMC,EAAgBA,KACpBL,GAASM,EAAAA,EAAAA,KAAW,IAEpBN,EAAS,CAAEO,KAAM,wBACjBC,aAAaC,QAAQ,eAAgB,IACrCD,aAAaC,QAAQ,gBAAiB,IACtCT,GAASU,EAAAA,EAAAA,QACTC,EAAAA,EAAAA,MAEAT,EAAS,UACTU,OAAOC,SAASC,QAAQ,EAGXC,MACb,MAAMC,EAAQR,aAAaS,QAAQ,cACnCC,EAAAA,EACGC,OAAO,OAAO,iBAAmB,CAAEH,UACnCI,KAAKf,GACLgB,OAAOC,IACNC,QAAQC,MAAMF,GACdjB,GAAe,GACf,EAENU,EAAQ,GACP,CAACf,EAAUE,KACPuB,EAAAA,EAAAA,KAACC,EAAAA,EAAgB,GAAG,C","sources":["screens/LogoutPage/LogoutPage.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see <http://www.gnu.org/licenses/>.\n\nimport React, { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useAppDispatch } from \"../../store\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport { clearSession } from \"../../common/utils\";\nimport { userLogged } from \"../../systemSlice\";\nimport { resetSession } from \"../Console/consoleSlice\";\nimport api from \"../../common/api\";\nimport LoadingComponent from \"../../common/LoadingComponent\";\n\nconst LogoutPage = () => {\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n useEffect(() => {\n const deleteSession = () => {\n dispatch(userLogged(false));\n // Disconnect OB Websocket\n dispatch({ type: \"socket/OBDisconnect\" });\n localStorage.setItem(\"userLoggedIn\", \"\");\n localStorage.setItem(\"redirect-path\", \"\");\n dispatch(resetSession());\n clearSession();\n\n navigate(\"/login\");\n window.location.reload(); //reset-all redux states etc. by force reloading.\n };\n\n const logout = () => {\n const state = localStorage.getItem(\"auth-state\");\n api\n .invoke(\"POST\", `/api/v1/logout`, { state })\n .then(deleteSession)\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n deleteSession();\n });\n };\n logout();\n }, [dispatch, navigate]);\n return <LoadingComponent />;\n};\n\nexport default LogoutPage;\n"],"names":["LogoutPage","dispatch","useAppDispatch","navigate","useNavigate","useEffect","deleteSession","userLogged","type","localStorage","setItem","resetSession","clearSession","window","location","reload","logout","state","getItem","api","invoke","then","catch","err","console","error","_jsx","LoadingComponent"],"sourceRoot":""}

View File

@@ -1,2 +1,2 @@
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[5311],{5311:(e,t,n)=>{n.r(t),n.d(t,{default:()=>x});var l=n(65043),s=n(89923),a=n(56629),i=n(53518),r=n(64159),c=n(20554),o=n(12848),d=n(77403),u=n(70579);const x=e=>{let{closeVersioningModalAndRefresh:t,modalOpen:n,selectedBucket:x,versioningInfo:h={},objectLockingEnabled:g}=e;const p=(0,c.jL)(),[f,m]=(0,l.useState)(!1),[b,j]=(0,l.useState)("Enabled"===(null===h||void 0===h?void 0:h.status)),[v,k]=(0,l.useState)(!(null===h||void 0===h||!h.excludeFolders)),[w,C]=(0,l.useState)((e=>{const t=null===e||void 0===e?void 0:e.excludedPrefixes;return t?t.map((e=>e.prefix)).join(","):""})(h));return(0,u.jsx)(s.ngX,{onClose:()=>t(!1),open:n,title:"Versioning on Bucket",children:(0,u.jsxs)(s.Hbc,{withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(s.dOG,{id:"activateVersioning",label:"Versioning Status",checked:b,onChange:e=>{j(e.target.checked)},indicatorLabels:["Enabled","Disabled"]}),b&&!g&&(0,u.jsxs)(l.Fragment,{children:[(0,u.jsx)(s.dOG,{id:"excludeFolders",label:"Exclude Folders",checked:v,onChange:e=>{k(e.target.checked)},indicatorLabels:["Enabled","Disabled"]}),(0,u.jsx)(o.A,{elements:w,label:"Excluded Prefixes",name:"excludedPrefixes",onChange:e=>{let t="";t=Array.isArray(e)?e.join(","):e,C(t)},withBorder:!0})]}),(0,u.jsxs)(s.azJ,{sx:d.Uz.modalButtonBar,children:[(0,u.jsx)(s.$nd,{id:"clear",type:"button",variant:"regular",color:"primary",onClick:()=>{C(""),k(!1),j(!1)},label:"Clear"}),(0,u.jsx)(s.$nd,{type:"submit",variant:"callAction",onClick:()=>{f||(m(!0),a.F.buckets.setBucketVersioning(x,{enabled:b,excludeFolders:!!b&&v,excludePrefixes:b?w.split(",").filter((e=>""!==e.trim())):[]}).then((()=>{m(!1),t(!0)})).catch((e=>{m(!1),p((0,r.C9)((0,i.S)(e.error)))})))},id:"saveTag",label:"Save"})]})]})})}},12848:(e,t,n)=>{n.d(t,{A:()=>c});var l=n(65043),s=n(33097),a=n.n(s),i=n(89923),r=n(70579);const c=e=>{let{elements:t,name:n,label:s,tooltip:c="",commonPlaceholder:o="",onChange:d,withBorder:u=!1}=e;const[x,h]=(0,l.useState)([""]),g=(0,l.createRef)();(0,l.useEffect)((()=>{if(1===x.length&&""===x[0]&&t&&""!==t){const e=t.split(",");e.push(""),h(e)}}),[t,x]),(0,l.useEffect)((()=>{if(x.length>1){const e=g.current;e&&e.scrollIntoView(!1)}}),[x,g]);const p=(0,l.useCallback)((e=>{d(e)}),[d]),f=(0,l.useRef)(!0);(0,l.useEffect)((()=>{if(f.current)return void(f.current=!1);const e=x.filter((e=>""!==e.trim())).join(",");p(e)}),[x]);const m=e=>{e.persist();let t=[...x];const n=a()(e.target,"dataset.index","0");t[parseInt(n)]=e.target.value,h(t)},b=x.map(((e,t)=>(0,r.jsx)(i.cl_,{id:"".concat(n,"-").concat(t.toString()),label:"",name:"".concat(n,"-").concat(t.toString()),value:x[t],onChange:m,index:t,placeholder:o,overlayIcon:t===x.length-1?(0,r.jsx)(i.REV,{}):null,overlayAction:()=>{(e=>{if(""!==e[e.length-1].trim()){const t=[...e];t.push(""),h(t)}})(x)}},"csv-multi-".concat(n,"-").concat(t.toString()))));return(0,r.jsx)(l.Fragment,{children:(0,r.jsxs)(i.azJ,{sx:{display:"flex"},className:"inputItem",children:[(0,r.jsxs)(i.l1Y,{sx:{alignItems:"flex-start"},children:[(0,r.jsx)("span",{children:s}),""!==c&&(0,r.jsx)(i.azJ,{sx:{marginLeft:5,display:"flex",alignItems:"center","& .min-icon":{width:13}},children:(0,r.jsx)(i.m_M,{tooltip:c,placement:"top",children:(0,r.jsx)(i.azJ,{className:c,children:(0,r.jsx)(i.NTw,{})})})})]}),(0,r.jsxs)(i.azJ,{withBorders:u,sx:{width:"100%",overflowY:"auto",height:150,position:"relative"},children:[b,(0,r.jsx)("div",{ref:g})]})]})})}}}]);
//# sourceMappingURL=5311.bf44bf69.chunk.js.map
"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[5311],{5311:(e,t,n)=>{n.r(t),n.d(t,{default:()=>x});var l=n(65043),s=n(89923),a=n(56629),i=n(53518),r=n(64159),c=n(21383),o=n(12848),d=n(77403),u=n(70579);const x=e=>{let{closeVersioningModalAndRefresh:t,modalOpen:n,selectedBucket:x,versioningInfo:h={},objectLockingEnabled:g}=e;const p=(0,c.jL)(),[f,m]=(0,l.useState)(!1),[b,j]=(0,l.useState)("Enabled"===(null===h||void 0===h?void 0:h.status)),[v,k]=(0,l.useState)(!(null===h||void 0===h||!h.excludeFolders)),[w,C]=(0,l.useState)((e=>{const t=null===e||void 0===e?void 0:e.excludedPrefixes;return t?t.map((e=>e.prefix)).join(","):""})(h));return(0,u.jsx)(s.ngX,{onClose:()=>t(!1),open:n,title:"Versioning on Bucket",children:(0,u.jsxs)(s.Hbc,{withBorders:!1,containerPadding:!1,children:[(0,u.jsx)(s.dOG,{id:"activateVersioning",label:"Versioning Status",checked:b,onChange:e=>{j(e.target.checked)},indicatorLabels:["Enabled","Disabled"]}),b&&!g&&(0,u.jsxs)(l.Fragment,{children:[(0,u.jsx)(s.dOG,{id:"excludeFolders",label:"Exclude Folders",checked:v,onChange:e=>{k(e.target.checked)},indicatorLabels:["Enabled","Disabled"]}),(0,u.jsx)(o.A,{elements:w,label:"Excluded Prefixes",name:"excludedPrefixes",onChange:e=>{let t="";t=Array.isArray(e)?e.join(","):e,C(t)},withBorder:!0})]}),(0,u.jsxs)(s.azJ,{sx:d.Uz.modalButtonBar,children:[(0,u.jsx)(s.$nd,{id:"clear",type:"button",variant:"regular",color:"primary",onClick:()=>{C(""),k(!1),j(!1)},label:"Clear"}),(0,u.jsx)(s.$nd,{type:"submit",variant:"callAction",onClick:()=>{f||(m(!0),a.F.buckets.setBucketVersioning(x,{enabled:b,excludeFolders:!!b&&v,excludePrefixes:b?w.split(",").filter((e=>""!==e.trim())):[]}).then((()=>{m(!1),t(!0)})).catch((e=>{m(!1),p((0,r.C9)((0,i.S)(e.error)))})))},id:"saveTag",label:"Save"})]})]})})}},12848:(e,t,n)=>{n.d(t,{A:()=>c});var l=n(65043),s=n(33097),a=n.n(s),i=n(89923),r=n(70579);const c=e=>{let{elements:t,name:n,label:s,tooltip:c="",commonPlaceholder:o="",onChange:d,withBorder:u=!1}=e;const[x,h]=(0,l.useState)([""]),g=(0,l.createRef)();(0,l.useEffect)((()=>{if(1===x.length&&""===x[0]&&t&&""!==t){const e=t.split(",");e.push(""),h(e)}}),[t,x]),(0,l.useEffect)((()=>{if(x.length>1){const e=g.current;e&&e.scrollIntoView(!1)}}),[x,g]);const p=(0,l.useCallback)((e=>{d(e)}),[d]),f=(0,l.useRef)(!0);(0,l.useEffect)((()=>{if(f.current)return void(f.current=!1);const e=x.filter((e=>""!==e.trim())).join(",");p(e)}),[x]);const m=e=>{e.persist();let t=[...x];const n=a()(e.target,"dataset.index","0");t[parseInt(n)]=e.target.value,h(t)},b=x.map(((e,t)=>(0,r.jsx)(i.cl_,{id:"".concat(n,"-").concat(t.toString()),label:"",name:"".concat(n,"-").concat(t.toString()),value:x[t],onChange:m,index:t,placeholder:o,overlayIcon:t===x.length-1?(0,r.jsx)(i.REV,{}):null,overlayAction:()=>{(e=>{if(""!==e[e.length-1].trim()){const t=[...e];t.push(""),h(t)}})(x)}},"csv-multi-".concat(n,"-").concat(t.toString()))));return(0,r.jsx)(l.Fragment,{children:(0,r.jsxs)(i.azJ,{sx:{display:"flex"},className:"inputItem",children:[(0,r.jsxs)(i.l1Y,{sx:{alignItems:"flex-start"},children:[(0,r.jsx)("span",{children:s}),""!==c&&(0,r.jsx)(i.azJ,{sx:{marginLeft:5,display:"flex",alignItems:"center","& .min-icon":{width:13}},children:(0,r.jsx)(i.m_M,{tooltip:c,placement:"top",children:(0,r.jsx)(i.azJ,{className:c,children:(0,r.jsx)(i.NTw,{})})})})]}),(0,r.jsxs)(i.azJ,{withBorders:u,sx:{width:"100%",overflowY:"auto",height:150,position:"relative"},children:[b,(0,r.jsx)("div",{ref:g})]})]})})}}}]);
//# sourceMappingURL=5311.7739b1f7.chunk.js.map

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More