All Downloads are FREE. Search and download functionalities are using the official Maven repository.

theme.keycloak.v2.account.resources.content.my-resources-page.ShareTheResource.js.map Maven / Gradle / Ivy

There is a newer version: 26.0.5
Show newest version
{"version":3,"file":"ShareTheResource.js","names":["React","Button","Chip","ChipGroup","Form","FormGroup","Gallery","GalleryItem","Modal","Stack","StackItem","TextInput","ModalVariant","AccountServiceContext","Msg","ContentAlert","PermissionSelect","ShareTheResource","Component","constructor","props","context","_defineProperty","rscId","resource","_id","newPermissions","permission","state","permissionsSelected","push","name","permissions","username","usernames","scopes","handleToggleDialog","doPut","encodeURIComponent","then","success","onClose","isOpen","setState","clearState","usernameInput","includes","response","doGet","params","value","data","info","event","key","preventDefault","handleAddUsername","newUsernames","filter","user","permissionsUnSelected","isAddDisabled","isAlreadyShared","isFormInvalid","length","render","createElement","Fragment","children","title","variant","large","actions","onClick","msgKey","id","handleAddPermission","isDisabled","hasGutter","isFilled","label","type","helperTextInvalid","localize","fieldId","isRequired","placeholder","onChange","handleUsernameChange","onKeyPress","handleEnterKeyInAddField","categoryName","map","currentChip","handleDeleteUsername","onSelect","selection","direction","sharedWithUsersMsg"],"sources":["../../../src/app/content/my-resources-page/ShareTheResource.tsx"],"sourcesContent":["/*\n * Copyright 2019 Red Hat, Inc. and/or its affiliates.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *      http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport * as React from 'react';\n\nimport {\n    Button,\n    Chip,\n    ChipGroup,\n    Form,\n    FormGroup,\n    Gallery,\n    GalleryItem,\n    Modal,\n    Stack,\n    StackItem,\n    TextInput,\n    ModalVariant\n} from '@patternfly/react-core';\n\nimport { AccountServiceContext } from '../../account-service/AccountServiceContext';\nimport { Resource, Permission, Scope } from './resource-model';\nimport { Msg } from '../../widgets/Msg';\nimport {ContentAlert} from '../ContentAlert';\nimport { PermissionSelect } from './PermissionSelect';\n\ninterface ShareTheResourceProps {\n    resource: Resource;\n    permissions: Permission[];\n    sharedWithUsersMsg: React.ReactNode;\n    onClose: () => void;\n    children: (toggle: () => void) => void;\n}\n\ninterface ShareTheResourceState {\n    isOpen: boolean;\n    permissionsSelected: Scope[];\n    permissionsUnSelected: Scope[];\n    usernames: string[];\n    usernameInput: string;\n}\n\n/**\n * @author Stan Silvert [email protected] (C) 2019 Red Hat Inc.\n */\nexport class ShareTheResource extends React.Component {\n    protected static defaultProps:any = {permissions: []};\n    static contextType = AccountServiceContext;\n    context: React.ContextType;\n\n    public constructor(props: ShareTheResourceProps, context: React.ContextType) {\n        super(props);\n        this.context = context;\n    \n        this.state = {\n            isOpen: false,\n            permissionsSelected: [],\n            permissionsUnSelected: this.props.resource.scopes,\n            usernames: [],\n            usernameInput: ''\n        };\n    }\n\n    private clearState(): void {\n        this.setState({\n            permissionsSelected: [],\n            permissionsUnSelected: this.props.resource.scopes,\n            usernames: [],\n            usernameInput: ''\n        });\n    }\n\n    private handleAddPermission = () => {\n        const rscId: string = this.props.resource._id;\n        const newPermissions: string[] = [];\n\n        for (const permission of this.state.permissionsSelected) {\n            newPermissions.push(permission.name);\n        }\n\n        const permissions = [];\n\n        for (const username of this.state.usernames) {\n            permissions.push({username: username, scopes: newPermissions});\n        }\n\n        this.handleToggleDialog();\n\n        this.context!.doPut(`/resources/${encodeURIComponent(rscId)}/permissions`, permissions)\n            .then(() => {\n                ContentAlert.success('shareSuccess');\n                this.props.onClose();\n            })\n    };\n\n    private handleToggleDialog = () => {\n       if (this.state.isOpen) {\n           this.setState({isOpen: false});\n           this.props.onClose();\n       } else {\n           this.clearState();\n           this.setState({isOpen: true});\n       }\n    };\n\n    private handleUsernameChange = (username: string) => {\n        this.setState({usernameInput: username});\n    }\n\n    private handleAddUsername = async () => {\n        if ((this.state.usernameInput !== '') && (!this.state.usernames.includes(this.state.usernameInput))) {\n            const response = await this.context!.doGet<{username: string}>(`/resources/${encodeURIComponent(this.props.resource._id)}/user`, { params: { value: this.state.usernameInput } });\n            if (response.data && response.data.username) {\n                this.setState({ usernameInput: '', usernames: [...this.state.usernames, this.state.usernameInput] });\n            } else {\n                ContentAlert.info('userNotFound', [this.state.usernameInput]);\n            }\n        }\n    }\n\n    private handleEnterKeyInAddField = (event: React.KeyboardEvent) => {\n        if (event.key === \"Enter\") {\n            event.preventDefault();\n            this.handleAddUsername();\n        }\n    }\n\n    private handleDeleteUsername = (username: string) => {\n        const newUsernames: string[] = this.state.usernames.filter(user => user !== username);\n        this.setState({usernames: newUsernames});\n    }\n\n    private isAddDisabled(): boolean {\n        return this.state.usernameInput === '' || this.isAlreadyShared();\n    }\n\n    private isAlreadyShared(): boolean {\n        for (let permission of this.props.permissions) {\n            if (permission.username === this.state.usernameInput) return true;\n        }\n\n        return false;\n    }\n\n    private isFormInvalid(): boolean {\n        return (this.state.usernames.length === 0) || (this.state.permissionsSelected.length === 0);\n    }\n\n    public render(): React.ReactNode {\n        return (\n            \n                {this.props.children(this.handleToggleDialog)}\n\n                \n                        \n                    ,\n                    \n                ]}\n                >\n                    \n                        \n                        
\n \n \n \n \n \n \n \n \n\n \n \n {this.state.usernames.map((currentChip: string) => (\n this.handleDeleteUsername(currentChip)}>\n {currentChip}\n \n ))}\n \n \n \n this.setState({ permissionsSelected: selection })}\n direction=\"up\"\n />\n \n \n
\n
\n \n {this.props.sharedWithUsersMsg}\n \n\n
\n \n
\n );\n }\n}\n"],"mappings":"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"}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy