Merge pull request #1264 from plamber/master
This commit is contained in:
commit
a11cb52af7
|
@ -1,11 +1,12 @@
|
||||||
{
|
{
|
||||||
"@microsoft/generator-sharepoint": {
|
"@microsoft/generator-sharepoint": {
|
||||||
"version": "1.6.0",
|
"version": "1.10.0",
|
||||||
"libraryName": "spfx-api-scopes-tutorial",
|
"libraryName": "spfx-api-scopes-tutorial",
|
||||||
"libraryId": "6b58cc7d-badc-4721-bfe2-9e4d91efd07c",
|
"libraryId": "6b58cc7d-badc-4721-bfe2-9e4d91efd07c",
|
||||||
"environment": "spo",
|
"environment": "spo",
|
||||||
"isCreatingSolution": true,
|
|
||||||
"packageManager": "npm",
|
"packageManager": "npm",
|
||||||
|
"isCreatingSolution": true,
|
||||||
|
"isDomainIsolated": true,
|
||||||
"componentType": "webpart"
|
"componentType": "webpart"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
This sub folders contains a client-side project that is related to the tutorial available at the following URL: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aad-tutorial
|
This sub-folder contains a client-side project that is related to the tutorial available at the following URL: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aad-tutorial
|
||||||
|
|
||||||
![The UI of the sample application](./images/api-scopes.gif)
|
![The UI of the sample application](./images/api-scopes.gif)
|
||||||
|
|
||||||
|
@ -16,8 +16,9 @@ This sub folders contains a client-side project that is related to the tutorial
|
||||||
|
|
||||||
| Version | Date | Comments |
|
| Version | Date | Comments |
|
||||||
| ------------- | ------------- | ------------- |
|
| ------------- | ------------- | ------------- |
|
||||||
| 1.0.0 | August 28th 2018 | Updated sample to SPFx v1.6.0 |
|
| 1.0.0 | April 29th, 2020 | Updated sample to SPFx v1.10.0 |
|
||||||
| 1.0.0 | February 18th 2018 | Initial release |
|
| 1.0.0 | August 28th, 2018 | Updated sample to SPFx v1.6.0 |
|
||||||
|
| 1.0.0 | February 18th, 2018 | Initial release |
|
||||||
|
|
||||||
## Disclaimer
|
## Disclaimer
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
"version": "1.0.0.0",
|
"version": "1.0.0.0",
|
||||||
"includeClientSideAssets": true,
|
"includeClientSideAssets": true,
|
||||||
"skipFeatureDeployment": true,
|
"skipFeatureDeployment": true,
|
||||||
|
"isDomainIsolated": false,
|
||||||
"webApiPermissionRequests": [
|
"webApiPermissionRequests": [
|
||||||
{
|
{
|
||||||
"resource": "Microsoft Graph",
|
"resource": "Microsoft Graph",
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const gulp = require('gulp');
|
|
||||||
const build = require('@microsoft/sp-build-web');
|
const build = require('@microsoft/sp-build-web');
|
||||||
|
|
||||||
build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`);
|
build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`);
|
||||||
|
|
||||||
build.initialize(gulp);
|
build.initialize(require('gulp'));
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,6 +2,7 @@
|
||||||
"name": "spfx-api-scopes-tutorial",
|
"name": "spfx-api-scopes-tutorial",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
"main": "lib/index.js",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
},
|
},
|
||||||
|
@ -11,25 +12,31 @@
|
||||||
"test": "gulp test"
|
"test": "gulp test"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@microsoft/sp-core-library": "1.6.0",
|
"react": "16.8.5",
|
||||||
"@microsoft/sp-lodash-subset": "1.6.0",
|
"react-dom": "16.8.5",
|
||||||
"@microsoft/sp-office-ui-fabric-core": "1.6.0",
|
"@types/react": "16.8.8",
|
||||||
"@microsoft/sp-webpart-base": "1.6.0",
|
"@types/react-dom": "16.8.3",
|
||||||
"@types/es6-promise": "0.0.33",
|
"office-ui-fabric-react": "6.189.2",
|
||||||
"@types/react": "15.6.6",
|
"@microsoft/sp-core-library": "1.10.0",
|
||||||
"@types/react-dom": "15.5.6",
|
"@microsoft/sp-property-pane": "1.10.0",
|
||||||
|
"@microsoft/sp-webpart-base": "1.10.0",
|
||||||
|
"@microsoft/sp-lodash-subset": "1.10.0",
|
||||||
|
"@microsoft/sp-office-ui-fabric-core": "1.10.0",
|
||||||
"@types/webpack-env": "1.13.1",
|
"@types/webpack-env": "1.13.1",
|
||||||
"react": "15.6.2",
|
"@types/es6-promise": "0.0.33"
|
||||||
"react-dom": "15.6.2"
|
},
|
||||||
|
"resolutions": {
|
||||||
|
"@types/react": "16.8.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@microsoft/sp-build-web": "1.6.0",
|
"@microsoft/sp-build-web": "1.10.0",
|
||||||
"@microsoft/sp-module-interfaces": "1.6.0",
|
"@microsoft/sp-tslint-rules": "1.10.0",
|
||||||
"@microsoft/sp-webpart-workbench": "1.6.0",
|
"@microsoft/sp-module-interfaces": "1.10.0",
|
||||||
|
"@microsoft/sp-webpart-workbench": "1.10.0",
|
||||||
|
"@microsoft/rush-stack-compiler-3.3": "0.3.5",
|
||||||
|
"gulp": "~3.9.1",
|
||||||
"@types/chai": "3.4.34",
|
"@types/chai": "3.4.34",
|
||||||
"@types/mocha": "2.2.38",
|
"@types/mocha": "2.2.38",
|
||||||
"ajv": "~5.2.2",
|
"ajv": "~5.2.2"
|
||||||
"gulp": "~3.9.1",
|
|
||||||
"tslint-microsoft-contrib": "5.0.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
// Components that allow authors to embed arbitrary script code should set this to true.
|
// Components that allow authors to embed arbitrary script code should set this to true.
|
||||||
// https://support.office.com/en-us/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f
|
// https://support.office.com/en-us/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f
|
||||||
"requiresCustomScript": false,
|
"requiresCustomScript": false,
|
||||||
|
"supportedHosts": ["SharePointWebPart"],
|
||||||
|
|
||||||
"preconfiguredEntries": [{
|
"preconfiguredEntries": [{
|
||||||
"groupId": "5c03119e-3074-46fd-976b-c60198311f70", // Other
|
"groupId": "5c03119e-3074-46fd-976b-c60198311f70", // Other
|
||||||
|
|
|
@ -19,7 +19,7 @@ export interface IGraphConsumerWebPartProps {
|
||||||
export default class GraphConsumerWebPart extends BaseClientSideWebPart<IGraphConsumerWebPartProps> {
|
export default class GraphConsumerWebPart extends BaseClientSideWebPart<IGraphConsumerWebPartProps> {
|
||||||
|
|
||||||
public render(): void {
|
public render(): void {
|
||||||
const element: React.ReactElement<IGraphConsumerProps > = React.createElement(
|
const element: React.ReactElement<IGraphConsumerProps> = React.createElement(
|
||||||
GraphConsumer,
|
GraphConsumer,
|
||||||
{
|
{
|
||||||
clientMode: this.properties.clientMode,
|
clientMode: this.properties.clientMode,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
@import '~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss';
|
@import '~office-ui-fabric-react/dist/sass/_References.scss';
|
||||||
|
|
||||||
.graphConsumer {
|
.graphConsumer {
|
||||||
.container {
|
.container {
|
||||||
|
|
|
@ -6,18 +6,16 @@ import { IGraphConsumerState } from './IGraphConsumerState';
|
||||||
import { ClientMode } from './ClientMode';
|
import { ClientMode } from './ClientMode';
|
||||||
import { IUserItem } from './IUserItem';
|
import { IUserItem } from './IUserItem';
|
||||||
import { escape } from '@microsoft/sp-lodash-subset';
|
import { escape } from '@microsoft/sp-lodash-subset';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
autobind,
|
|
||||||
PrimaryButton,
|
PrimaryButton,
|
||||||
TextField,
|
TextField,
|
||||||
Label,
|
|
||||||
DetailsList,
|
DetailsList,
|
||||||
DetailsListLayoutMode,
|
DetailsListLayoutMode,
|
||||||
CheckboxVisibility,
|
CheckboxVisibility,
|
||||||
SelectionMode
|
SelectionMode,
|
||||||
|
BaseButton,
|
||||||
|
Button
|
||||||
} from 'office-ui-fabric-react';
|
} from 'office-ui-fabric-react';
|
||||||
|
|
||||||
import { AadHttpClient, MSGraphClient } from "@microsoft/sp-http";
|
import { AadHttpClient, MSGraphClient } from "@microsoft/sp-http";
|
||||||
|
|
||||||
// Configure the columns for the DetailsList component
|
// Configure the columns for the DetailsList component
|
||||||
|
@ -79,9 +77,9 @@ export default class GraphConsumer extends React.Component<IGraphConsumerProps,
|
||||||
<TextField
|
<TextField
|
||||||
label={ strings.SearchFor }
|
label={ strings.SearchFor }
|
||||||
required={ true }
|
required={ true }
|
||||||
value={ this.state.searchFor }
|
onChange={ this._onSearchForChanged }
|
||||||
onChanged={ this._onSearchForChanged }
|
|
||||||
onGetErrorMessage={ this._getSearchForErrorMessage }
|
onGetErrorMessage={ this._getSearchForErrorMessage }
|
||||||
|
value={ this.state.searchFor }
|
||||||
/>
|
/>
|
||||||
</p>
|
</p>
|
||||||
<p className={ styles.form }>
|
<p className={ styles.form }>
|
||||||
|
@ -113,8 +111,7 @@ export default class GraphConsumer extends React.Component<IGraphConsumerProps,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@autobind
|
private _onSearchForChanged = (event: React.FormEvent<HTMLInputElement | HTMLTextAreaElement>, newValue?: string): void => {
|
||||||
private _onSearchForChanged(newValue: string): void {
|
|
||||||
|
|
||||||
// Update the component state accordingly to the current user's input
|
// Update the component state accordingly to the current user's input
|
||||||
this.setState({
|
this.setState({
|
||||||
|
@ -129,9 +126,7 @@ export default class GraphConsumer extends React.Component<IGraphConsumerProps,
|
||||||
: `${strings.SearchForValidationErrorMessage}`;
|
: `${strings.SearchForValidationErrorMessage}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
@autobind
|
private _search = (event: React.MouseEvent<HTMLAnchorElement | HTMLButtonElement | HTMLDivElement | BaseButton | Button, MouseEvent>) : void => {
|
||||||
private _search(): void {
|
|
||||||
|
|
||||||
console.log(this.props.clientMode);
|
console.log(this.props.clientMode);
|
||||||
|
|
||||||
// Based on the clientMode value search users
|
// Based on the clientMode value search users
|
||||||
|
|
|
@ -1,15 +1,19 @@
|
||||||
{
|
{
|
||||||
|
"extends": "./node_modules/@microsoft/rush-stack-compiler-3.3/includes/tsconfig-web.json",
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es5",
|
"target": "es5",
|
||||||
"forceConsistentCasingInFileNames": true,
|
"forceConsistentCasingInFileNames": true,
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
|
"moduleResolution": "node",
|
||||||
"jsx": "react",
|
"jsx": "react",
|
||||||
"declaration": true,
|
"declaration": true,
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"moduleResolution": "node",
|
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"outDir": "lib",
|
"outDir": "lib",
|
||||||
|
"inlineSources": false,
|
||||||
|
"strictNullChecks": false,
|
||||||
|
"noUnusedLocals": false,
|
||||||
"typeRoots": [
|
"typeRoots": [
|
||||||
"./node_modules/@types",
|
"./node_modules/@types",
|
||||||
"./node_modules/@microsoft"
|
"./node_modules/@microsoft"
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
{
|
{
|
||||||
"rulesDirectory": [
|
"extends": "@microsoft/sp-tslint-rules/base-tslint.json",
|
||||||
"tslint-microsoft-contrib"
|
|
||||||
],
|
|
||||||
"rules": {
|
"rules": {
|
||||||
"class-name": false,
|
"class-name": false,
|
||||||
"export-name": false,
|
"export-name": false,
|
||||||
|
|
Loading…
Reference in New Issue