123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- /*
- * <<
- * Davinci
- * ==
- * Copyright (C) 2016 - 2017 EDP
- * ==
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * >>
- */
- import { IProject, IStarUser } from 'containers/Projects/types'
- export interface IDavinciUser {
- id: number
- username: string
- email: string
- role: number
- avatar: string
- }
- export interface IOrganization {
- id: number
- name: string
- role?: number
- avatar: string
- roleNum?: number
- memberNum?: number
- projectNum?: number
- description: string
- memberPermission?: number
- allowCreateProject?: number
- allowChangeVisibility?: number
- allowDeleteOrTransferProject?: number
- }
- export interface IOrganizationMember {
- id: number
- user: IDavinciUser
- }
- export interface IOrganizationRole {
- id: number
- name: string
- description: string
- }
- export interface IOrganizationState {
- organizations: IOrganization[],
- currentOrganization: IOrganization,
- currentOrganizationLoading: boolean,
- currentOrganizationProjects: IProject[],
- currentOrganizationProjectsDetail: { total: number, list: IProject[] },
- currentOrganizationMembers: IOrganizationMember[],
- currentOrganizationRole: IOrganizationRole[],
- inviteMemberLists: null, // @FIXME need change to remote org users search
- roleModalLoading: boolean,
- projectDetail: IProject,
- projectAdmins: IOrganizationMember[],
- projectRoles: IOrganizationRole[],
- inviteMemberfetching?: boolean
- }
- export interface IMembers {
- id: number
- user: IDavinciUser
- roles?: object[]
- }
- export interface ISetRange{
- start: number
- end: number
- }
- export interface IMembersState {
- category?: string
- formKey?: number
- keywords: string
- currentMemberId: number
- formVisible: boolean
- modalLoading: boolean
- currentMember: IOrganizationMember
- notUsersModalVisible: boolean
- notUsers: string[],
- changeRoleFormCategory: string
- changeRoleFormVisible: boolean
- changeRoleModalLoading: boolean
- organizationMembers: IMembers[]
- }
- type onGetRoleListByMemberId = (orgId: number, memberId: number, resolve?: (res: any) => void) => void
- export interface IMembersProps {
- loginUser: any
- organizationId: number
- loadOrganizationsMembers: (id: number) => any
- deleteOrganizationMember: (id: number, resolve: () => any) => any
- organizationMembers: IMembers[]
- changeOrganizationMemberRole: (
- id: number,
- role: number,
- resolve: () => any
- ) => any
- currentOrganization: IOrganization
- inviteMemberList: any
- onInviteMember: (ordId: number, members: string[], needEmail: boolean, resolve: (result: any) => void) => any
- handleSearchMember: (keywords: string) => any
- onGetRoleListByMemberId: onGetRoleListByMemberId
- }
- export interface IProjectsStates {
- formType?: string
- formVisible: boolean
- modalLoading: boolean
- editFormVisible: boolean
- adminFormVisible: boolean
- pageNum: number
- pageSize: number
- currentProject: any
- starModalVisble: boolean
- organizationProjects: IProject[]
- }
- export interface IProjectsProps {
- children?: React.ReactNode
- loginUser?: any
- organizationId?: number
- organizations?: any
- projectDetail?: any
- currentOrganization?: IOrganization
- toProject?: (id: number) => any
- deleteProject?: (id: number) => any
- starUser?: IStarUser[]
- collectProjects?: IProject[]
- onAddProject?: (project: any, resolve: () => any) => any
- onEditProject?: (project: any, resolve: () => any) => any
- organizationProjects?: IProject[]
- organizationProjectsDetail?: { total?: number; list: IProject[] }
- unStar?: (id: number) => any
- userList?: (id: number) => any
- onCheckUniqueName?: (
- pathname: any,
- data: any,
- resolve: () => any,
- reject: (error: string) => any
- ) => any
- getOrganizationProjectsByPagination?: (obj: {
- keyword?: string
- pageNum: number
- pageSize: number
- }) => any
- onLoadOrganizationProjects?: (param: {
- id: number
- pageNum?: number
- pageSize?: number
- }) => any
- onClickCollectProjects?: (
- formType,
- project: object,
- resolve: (id: number) => any
- ) => any
- onLoadCollectProjects?: () => any
- onTransferProject?: (id: number, orgId: number, resolve: () => any) => any
- onSetCurrentProject?: (option: any) => any
- starUserList?: IStarUser[]
- onStarProject?: (id: number, resolve: () => any) => any
- onDeleteProject?: (id: number, resolve?: any) => any
- onGetProjectStarUser?: (id: number) => any
- currentOrganizationProjects?: IProject[]
- organizationMembers?: any[]
- onLoadVizs?: (projectId: number) => any
- onLoadOrganizations?: () => any
- vizs?: any
- }
- export interface IOrganizationProps {
- loginUser: any
- organizations: any
- starUserList: IStarUser[]
- inviteMemberList: any
- currentOrganization: IOrganization
- collectProjects: IProject[]
- currentOrganizationRole: IOrganizationRole[]
- onLoadOrganizationProjects: (param: {id: number, pageNum?: number, pageSize?: number}) => any
- onLoadOrganizationMembers: (id: number) => any
- onLoadOrganizationDetail: (id: number) => any
- onDeleteOrganizationMember: (id: number, resolve: () => any) => any
- onChangeOrganizationMemberRole: (id: number, role: number, resolve: () => any) => any
- currentOrganizationProjects: IProject[]
- currentOrganizationProjectsDetail: {total?: number, list: IProject[]}
- currentOrganizationMembers: IOrganizationMember[]
- onInviteMember: (ordId: number, members: string[], needEmail: boolean, resolve: (result: any) => void) => any
- onSearchMember: (keywords: string) => any
- onClickCollectProjects: (formType: string, project: object, resolve: (id: number) => any) => any
- onLoadCollectProjects: () => any
- onEditOrganization: (organization: IOrganization) => any
- onDeleteOrganization: (id: number, resolve: () => any) => any
- onCheckUniqueName: (pathname: any, data: any, resolve: () => any, reject: (error: string) => any) => any
- onGetRoleListByMemberId: onGetRoleListByMemberId
- onLoadOrganizationRole: (id: number) => any
- }
- export interface IInviteMemberProps {
- category: string
- inviteMemberList: any
- addHandler: () => void
- handleSearchMember: (searchValue: string) => any
- organizationDetail: IOrganization
- }
|