1 line
8.4 KiB
Plaintext
1 line
8.4 KiB
Plaintext
{"version":3,"sources":["webparts/workingWith/components/WorkingWith.tsx"],"names":[],"mappings":"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","file":"webparts/workingWith/components/WorkingWith.js","sourcesContent":["import * as React from 'react';\n\nimport styles from '../WorkingWith.module.scss';\nimport { IWorkingWithWebPartProps } from '../IWorkingWithWebPartProps';\nimport { SPHttpClient, SPHttpClientConfiguration, SPHttpClientResponse, ODataVersion, ISPHttpClientConfiguration } from '@microsoft/sp-http';\nimport { SearchUtils, ISearchQueryResponse, IRow } from '../../SearchUtils';\nimport { Utils } from '../../Utils';\nimport {\n css,\n Persona,\n PersonaSize,\n PersonaPresence,\n Spinner\n} from 'office-ui-fabric-react';\n\nexport interface IWorkingWithProps extends IWorkingWithWebPartProps {\n httpClient: SPHttpClient;\n siteUrl: string;\n}\n\nexport interface IPerson {\n name: string;\n email: string;\n jobTitle: string;\n department: string;\n photoUrl: string;\n profileUrl: string;\n}\n\nexport interface IWorkingWithState {\n loading: boolean;\n people: IPerson[];\n error: string;\n}\n\nexport default class WorkingWith extends React.Component<IWorkingWithProps, IWorkingWithState> {\n constructor(props: IWorkingWithProps, state: IWorkingWithState) {\n super(props);\n\n this.state = {\n people: [],\n loading: true,\n error: null\n };\n }\n\n public componentDidMount(): void {\n this.loadPeople(this.props.siteUrl, this.props.numberOfPeople);\n }\n\n public componentDidUpdate(prevProps: IWorkingWithProps, prevState: IWorkingWithState, prevContext: any): void {\n if (this.props.numberOfPeople !== prevProps.numberOfPeople ||\n this.props.siteUrl !== prevProps.siteUrl && (\n this.props.numberOfPeople && this.props.siteUrl\n )) {\n this.loadPeople(this.props.siteUrl, this.props.numberOfPeople);\n }\n }\n\n public render(): JSX.Element {\n const loading: JSX.Element = this.state.loading ? <div style={{ margin: '0 auto' }}><Spinner label={'Loading...'} /></div> : <div/>;\n const error: JSX.Element = this.state.error ? <div><strong>Error: </strong> {this.state.error}</div> : <div/>;\n const people: JSX.Element[] = this.state.people.map((person: IPerson, i: number) => {\n return (\n <Persona\n primaryText={person.name}\n secondaryText={person.jobTitle}\n tertiaryText={person.department}\n imageUrl={person.photoUrl}\n size={PersonaSize.large}\n presence={PersonaPresence.none}\n onClick={() => { this.navigateTo(person.profileUrl); } }\n key={person.email} />\n );\n });\n\n return (\n <div className={styles.workingWith}>\n <div className={css('ms-font-xl', styles.webPartTitle)}>{this.props.title}</div>\n {loading}\n {error}\n {people}\n </div>\n );\n }\n\n private navigateTo(url: string): void {\n window.open(url, '_blank');\n }\n\n private loadPeople(siteUrl: string, numberOfPeople: number): void {\n this.props.httpClient.get(`${siteUrl}/_api/search/query?querytext='*'&properties='GraphQuery:actor(me\\\\,action\\\\:1019)'&selectproperties='Title,WorkEmail,JobTitle,Department,Path'&rowlimit=${numberOfPeople}`, SPHttpClient.configurations.v1 , {\n headers: {\n 'Accept': 'application/json;odata=nometadata',\n 'odata-version': ''\n }\n })\n .then((response: SPHttpClientResponse): Promise<ISearchQueryResponse> => {\n return response.json();\n })\n .then((response: ISearchQueryResponse): void => {\n if (!response ||\n !response.PrimaryQueryResult ||\n !response.PrimaryQueryResult.RelevantResults ||\n response.PrimaryQueryResult.RelevantResults.RowCount === 0) {\n this.setState({\n loading: false,\n error: null,\n people: []\n });\n return;\n }\n\n const people: IPerson[] = [];\n for (let i: number = 0; i < response.PrimaryQueryResult.RelevantResults.Table.Rows.length; i++) {\n const personRow: IRow = response.PrimaryQueryResult.RelevantResults.Table.Rows[i];\n const email: string = SearchUtils.getValueFromResults('WorkEmail', personRow.Cells);\n people.push({\n name: SearchUtils.getValueFromResults('Title', personRow.Cells),\n email: email,\n jobTitle: SearchUtils.getValueFromResults('JobTitle', personRow.Cells),\n department: SearchUtils.getValueFromResults('Department', personRow.Cells),\n photoUrl: Utils.getUserPhotoUrl(email, siteUrl, 'L'),\n profileUrl: SearchUtils.getValueFromResults('Path', personRow.Cells)\n });\n }\n\n this.setState({\n loading: false,\n error: null,\n people: people\n });\n }, (error: any): void => {\n this.setState({\n loading: false,\n error: error,\n people: []\n });\n });\n }\n}\n"],"sourceRoot":"..\\..\\..\\..\\src"} |