message-bar

VRTKSSUP-229
Осьмаков Денис 5 years ago
parent 705403106b
commit 8a3b080608
  1. 5
      src/webparts/summaryWebPart/components/SummaryContainer/SummaryContainer.tsx
  2. 24
      src/webparts/summaryWebPart/components/SummaryWebPart.tsx

@ -70,6 +70,11 @@ export default class SummaryContainer extends React.Component<IComponentProps,IC
res.forEach(e=>{ res.forEach(e=>{
let fieldValue = !e.fieldName.match(/\/Title/gi)?currentProject[0][e.fieldName] : currentProject[0][e.fieldName.split('/')[0]]? currentProject[0][e.fieldName.split('/')[0]]['Title'] : ''; let fieldValue = !e.fieldName.match(/\/Title/gi)?currentProject[0][e.fieldName] : currentProject[0][e.fieldName.split('/')[0]]? currentProject[0][e.fieldName.split('/')[0]]['Title'] : '';
if (fieldValue && fieldValue.toString().match(/\;\#/gi)){
fieldValue = fieldValue.toString().replace(/[\;\#][^\s]/gi, '');
if (fieldValue.toString().match(/undefined/gi)) fieldValue = fieldValue.toString().replace(/undefined/gi, '');
}
if (fieldValue || typeof fieldValue === 'boolean'){ if (fieldValue || typeof fieldValue === 'boolean'){
toState.push({ toState.push({
key: e.key, key: e.key,

@ -2,7 +2,7 @@ import * as React from 'react';
import { ISummaryWebPartProps } from './ISummaryWebPartProps'; import { ISummaryWebPartProps } from './ISummaryWebPartProps';
import { Spinner, SpinnerSize } from 'office-ui-fabric-react/lib/Spinner'; import { Spinner, SpinnerSize } from 'office-ui-fabric-react/lib/Spinner';
import SummaryGlobalComponent from './SummaryGlobalComponent/SummaryGlobalComponent' import SummaryGlobalComponent from './SummaryGlobalComponent/SummaryGlobalComponent'
import { PrimaryButton } from 'office-ui-fabric-react'; import { PrimaryButton, MessageBar, MessageBarType } from 'office-ui-fabric-react';
import { IPageData } from '../interfaces/IPageData'; import { IPageData } from '../interfaces/IPageData';
import {sp, Web} from '@pnp/sp' import {sp, Web} from '@pnp/sp'
@ -11,6 +11,7 @@ export interface IComponentState{
isLoaded: boolean; isLoaded: boolean;
isBlank: boolean; isBlank: boolean;
prjID: string | number; prjID: string | number;
isPerm: boolean;
} }
export default class SummaryWebPart extends React.Component<ISummaryWebPartProps, IComponentState > { export default class SummaryWebPart extends React.Component<ISummaryWebPartProps, IComponentState > {
@ -18,15 +19,24 @@ export default class SummaryWebPart extends React.Component<ISummaryWebPartProps
pageData: null, pageData: null,
isLoaded: false, isLoaded: false,
isBlank: false, isBlank: false,
prjID: '' prjID: '',
isPerm: false
} }
componentDidMount(){ componentDidMount(){
const {requestUrl,context} = this.props; const {requestUrl,context} = this.props;
let relUrl = context.pageContext.web.serverRelativeUrl let relUrl = context.pageContext.web.serverRelativeUrl;
let projectCode = relUrl ? relUrl.split('/')[relUrl.split('/').length - 1] : ''; let projectCode = relUrl ? relUrl.split('/')[relUrl.split('/').length - 1] : '';
let web = new Web('http://portal.vertex.spb.ru/PMIS'); let web = new Web('http://portal.vertex.spb.ru/PMIS');
let thisWeb = new Web('http://portal.vertex.spb.ru/PMIS/' + projectCode);
thisWeb.lists.getByTitle('CustomPerm').items.get().then(e => {
if(e.length){
this.setState({ isPerm: true })
}
})
web.lists.getById('eeba7db6-4c28-41a2-a54e-82a2aaf0ca15').items.filter("Code_project eq '" + projectCode +"'").select('ID').get().then(e=>{ web.lists.getById('eeba7db6-4c28-41a2-a54e-82a2aaf0ca15').items.filter("Code_project eq '" + projectCode +"'").select('ID').get().then(e=>{
this.setState({prjID: e[0].ID}) this.setState({prjID: e[0].ID})
}) })
@ -45,8 +55,8 @@ export default class SummaryWebPart extends React.Component<ISummaryWebPartProps
} }
public render(): React.ReactElement<ISummaryWebPartProps> { public render(): React.ReactElement<ISummaryWebPartProps> {
const { pageData, isLoaded, isBlank } = this.state; const { pageData, isLoaded, isBlank, isPerm } = this.state;
return isLoaded ? ( return isPerm ? isLoaded ? (
<div style={{ display: "flex", flexDirection: "column" }}> <div style={{ display: "flex", flexDirection: "column" }}>
<div style={{ display: "flex", justifyContent: "flex-end" }}> <div style={{ display: "flex", justifyContent: "flex-end" }}>
<PrimaryButton <PrimaryButton
@ -68,6 +78,8 @@ export default class SummaryWebPart extends React.Component<ISummaryWebPartProps
ariaLive="assertive" ariaLive="assertive"
size={SpinnerSize.large} size={SpinnerSize.large}
/> />
); ) : <MessageBar messageBarType={MessageBarType.error} isMultiline={false} dismissButtonAriaLabel="Close">
{'Отсутствует доступ к странице'}
</MessageBar>
} }
} }

Loading…
Cancel
Save