diff --git a/scm-ui-components/packages/ui-components/src/urls.js b/scm-ui-components/packages/ui-components/src/urls.js index 3c33265eae..dd8888d7a3 100644 --- a/scm-ui-components/packages/ui-components/src/urls.js +++ b/scm-ui-components/packages/ui-components/src/urls.js @@ -12,7 +12,7 @@ export function withEndingSlash(url: string) { return url + "/"; } -export function concat(base: string, ...parts: string) { +export function concat(base: string, ...parts: string[]) { let url = base; for ( let p of parts) { url = withEndingSlash(url) + p; diff --git a/scm-ui-components/packages/ui-types/src/RepositoryPermissions.js b/scm-ui-components/packages/ui-types/src/RepositoryPermissions.js index ceb5fe135e..d86e499378 100644 --- a/scm-ui-components/packages/ui-types/src/RepositoryPermissions.js +++ b/scm-ui-components/packages/ui-types/src/RepositoryPermissions.js @@ -1,14 +1,11 @@ //@flow import type { Links } from "./hal"; -export type Permission = { - name: string, - type: string, - groupPermission: boolean, - _links?: Links +export type Permission = PermissionCreateEntry & { + _links: Links }; -export type PermissionEntry = { +export type PermissionCreateEntry = { name: string, type: string, groupPermission: boolean diff --git a/scm-ui-components/packages/ui-types/src/index.js b/scm-ui-components/packages/ui-types/src/index.js index ccad0e8597..98a6ead283 100644 --- a/scm-ui-components/packages/ui-types/src/index.js +++ b/scm-ui-components/packages/ui-types/src/index.js @@ -17,4 +17,4 @@ export type { Tag } from "./Tags"; export type { Config } from "./Config"; -export type { Permission, PermissionEntry, PermissionCollection } from "./RepositoryPermissions"; +export type { Permission, PermissionCreateEntry, PermissionCollection } from "./RepositoryPermissions"; diff --git a/scm-ui/src/repos/components/changesets/AvatarWrapper.js b/scm-ui/src/repos/components/changesets/AvatarWrapper.js index c5274a5976..0d3d55e62a 100644 --- a/scm-ui/src/repos/components/changesets/AvatarWrapper.js +++ b/scm-ui/src/repos/components/changesets/AvatarWrapper.js @@ -1,5 +1,5 @@ //@flow -import React from "react"; +import * as React from "react"; import { binder } from "@scm-manager/ui-extensions"; type Props = { diff --git a/scm-ui/src/repos/components/changesets/ChangesetDetails.js b/scm-ui/src/repos/components/changesets/ChangesetDetails.js index fd1c475447..a8edf0365c 100644 --- a/scm-ui/src/repos/components/changesets/ChangesetDetails.js +++ b/scm-ui/src/repos/components/changesets/ChangesetDetails.js @@ -1,6 +1,9 @@ //@flow import React from "react"; -import type { Changeset, Repository } from "../../../../../scm-ui-components/packages/ui-types/src/index"; +import type { + Changeset, + Repository +} from "../../../../../scm-ui-components/packages/ui-types/src/index"; import { Interpolate, translate } from "react-i18next"; import injectSheet from "react-jss"; import ChangesetTag from "./ChangesetTag"; @@ -11,6 +14,7 @@ import AvatarWrapper from "./AvatarWrapper"; import AvatarImage from "./AvatarImage"; import classNames from "classnames"; import ChangesetId from "./ChangesetId"; +import type { Tag } from "@scm-manager/ui-types"; const styles = { spacing: { @@ -27,7 +31,7 @@ type Props = { class ChangesetDetails extends React.Component { render() { - const { changeset, repository, t, classes } = this.props; + const { changeset, repository, classes } = this.props; const description = parseDescription(changeset.description); diff --git a/scm-ui/src/repos/modules/changesets.test.js b/scm-ui/src/repos/modules/changesets.test.js index 351c31baad..489312688d 100644 --- a/scm-ui/src/repos/modules/changesets.test.js +++ b/scm-ui/src/repos/modules/changesets.test.js @@ -415,7 +415,7 @@ describe("changesets", () => { { "foo/bar": { byId: { - ["id2"]: { + "id2": { id: "id2", author: { mail: "mail@author.com", name: "author" } } diff --git a/scm-ui/src/repos/permissions/components/CreatePermissionForm.js b/scm-ui/src/repos/permissions/components/CreatePermissionForm.js index 595c27d8ef..5268de7e9d 100644 --- a/scm-ui/src/repos/permissions/components/CreatePermissionForm.js +++ b/scm-ui/src/repos/permissions/components/CreatePermissionForm.js @@ -5,13 +5,13 @@ import { Checkbox, InputField, SubmitButton } from "@scm-manager/ui-components"; import TypeSelector from "./TypeSelector"; import type { PermissionCollection, - PermissionEntry + PermissionCreateEntry } from "@scm-manager/ui-types"; import * as validator from "./permissionValidation"; type Props = { t: string => string, - createPermission: (permission: PermissionEntry) => void, + createPermission: (permission: PermissionCreateEntry) => void, loading: boolean, currentPermissions: PermissionCollection }; @@ -65,7 +65,7 @@ class CreatePermissionForm extends React.Component { diff --git a/scm-ui/src/repos/permissions/components/permissionValidation.js b/scm-ui/src/repos/permissions/components/permissionValidation.js index b74ae40988..d63ab72d54 100644 --- a/scm-ui/src/repos/permissions/components/permissionValidation.js +++ b/scm-ui/src/repos/permissions/components/permissionValidation.js @@ -1,21 +1,30 @@ // @flow import { validation } from "@scm-manager/ui-components"; -import type { - PermissionCollection, -} from "@scm-manager/ui-types"; +import type { PermissionCollection } from "@scm-manager/ui-types"; const isNameValid = validation.isNameValid; export { isNameValid }; -export const isPermissionValid = (name: string, groupPermission: boolean, permissions: PermissionCollection) => { - return isNameValid(name) && !currentPermissionIncludeName(name, groupPermission, permissions); +export const isPermissionValid = ( + name: string, + groupPermission: boolean, + permissions: PermissionCollection +) => { + return ( + isNameValid(name) && + !currentPermissionIncludeName(name, groupPermission, permissions) + ); }; -const currentPermissionIncludeName = (name: string, groupPermission: boolean, permissions: PermissionCollection) => { +const currentPermissionIncludeName = ( + name: string, + groupPermission: boolean, + permissions: PermissionCollection +) => { for (let i = 0; i < permissions.length; i++) { if ( permissions[i].name === name && - permissions[i].groupPermission == groupPermission + permissions[i].groupPermission === groupPermission ) return true; } diff --git a/scm-ui/src/repos/permissions/components/permissionValidation.test.js b/scm-ui/src/repos/permissions/components/permissionValidation.test.js index 036375a348..b2e7e8be68 100644 --- a/scm-ui/src/repos/permissions/components/permissionValidation.test.js +++ b/scm-ui/src/repos/permissions/components/permissionValidation.test.js @@ -17,7 +17,8 @@ describe("permission validation", () => { { name: "PermissionName", groupPermission: true, - type: "READ" + type: "READ", + _links: {} } ]; const name = "PermissionName"; @@ -33,7 +34,8 @@ describe("permission validation", () => { { name: "PermissionName", groupPermission: false, - type: "READ" + type: "READ", + _links: {} } ]; const name = "PermissionName"; diff --git a/scm-ui/src/repos/permissions/containers/Permissions.js b/scm-ui/src/repos/permissions/containers/Permissions.js index e70e02f443..0a0b285102 100644 --- a/scm-ui/src/repos/permissions/containers/Permissions.js +++ b/scm-ui/src/repos/permissions/containers/Permissions.js @@ -21,7 +21,7 @@ import { Loading, ErrorPage } from "@scm-manager/ui-components"; import type { Permission, PermissionCollection, - PermissionEntry + PermissionCreateEntry } from "@scm-manager/ui-types"; import SinglePermission from "./SinglePermission"; import CreatePermissionForm from "../components/CreatePermissionForm"; @@ -39,7 +39,7 @@ type Props = { //dispatch functions fetchPermissions: (namespace: string, repoName: string) => void, createPermission: ( - permission: PermissionEntry, + permission: PermissionCreateEntry, namespace: string, repoName: string, callback?: () => void @@ -176,7 +176,7 @@ const mapDispatchToProps = dispatch => { dispatch(fetchPermissions(namespace, repoName)); }, createPermission: ( - permission: PermissionEntry, + permission: PermissionCreateEntry, namespace: string, repoName: string, callback?: () => void diff --git a/scm-ui/src/repos/permissions/modules/permissions.js b/scm-ui/src/repos/permissions/modules/permissions.js index 86d78e7ae9..35d0996cec 100644 --- a/scm-ui/src/repos/permissions/modules/permissions.js +++ b/scm-ui/src/repos/permissions/modules/permissions.js @@ -6,7 +6,7 @@ import type { Action } from "@scm-manager/ui-components"; import type { PermissionCollection, Permission, - PermissionEntry + PermissionCreateEntry } from "@scm-manager/ui-types"; import { isPending } from "../../../modules/pending"; import { getFailure } from "../../../modules/failure"; @@ -219,7 +219,7 @@ export function modifyPermissionReset(namespace: string, repoName: string) { // create permission export function createPermission( - permission: PermissionEntry, + permission: PermissionCreateEntry, namespace: string, repoName: string, callback?: () => void @@ -260,7 +260,7 @@ export function createPermission( } export function createPermissionPending( - permission: PermissionEntry, + permission: PermissionCreateEntry, namespace: string, repoName: string ): Action { @@ -272,7 +272,7 @@ export function createPermissionPending( } export function createPermissionSuccess( - permission: PermissionEntry, + permission: PermissionCreateEntry, namespace: string, repoName: string ): Action { diff --git a/scm-ui/src/repos/permissions/modules/permissions.test.js b/scm-ui/src/repos/permissions/modules/permissions.test.js index e546f6cb00..084e752724 100644 --- a/scm-ui/src/repos/permissions/modules/permissions.test.js +++ b/scm-ui/src/repos/permissions/modules/permissions.test.js @@ -640,7 +640,7 @@ describe("permissions selectors", () => { it("should return true, when createPermission is true", () => { const state = { permissions: { - ["hitchhiker/puzzle42"]: { + "hitchhiker/puzzle42": { createPermission: true } } @@ -651,7 +651,7 @@ describe("permissions selectors", () => { it("should return false, when createPermission is false", () => { const state = { permissions: { - ["hitchhiker/puzzle42"]: { + "hitchhiker/puzzle42": { createPermission: false } }