From 0f4736ecbd7f404dbc6f59a08fb1a16e8615c6c4 Mon Sep 17 00:00:00 2001 From: Ejaz Hussain Date: Tue, 9 Apr 2019 13:57:49 +0100 Subject: [PATCH 1/2] react-graph-reports solution has been added --- samples/react-graph-reports/.editorconfig | 25 + samples/react-graph-reports/.gitignore | 32 + samples/react-graph-reports/.yo-rc.json | 12 + samples/react-graph-reports/README.md | 57 + .../graph-api-permissions-usage-reports.png | Bin 0 -> 6366 bytes .../assets/react-graph-reports.gif | Bin 0 -> 3455641 bytes .../react-graph-reports/config/config.json | 19 + .../config/copy-assets.json | 4 + .../config/deploy-azure-storage.json | 7 + .../config/package-solution.json | 24 + samples/react-graph-reports/config/serve.json | 10 + .../config/write-manifests.json | 4 + samples/react-graph-reports/gulpfile.js | 7 + samples/react-graph-reports/package-lock.json | 17923 ++++++++++++++++ samples/react-graph-reports/package.json | 53 + samples/react-graph-reports/src/index.ts | 1 + .../src/services/CustomGraphService.ts | 99 + .../react-graph-reports/src/services/index.ts | 1 + .../GraphReportsWebPart.manifest.json | 27 + .../graphReports/GraphReportsWebPart.ts | 63 + .../components/GraphReports.module.scss | 40 + .../graphReports/components/GraphReports.tsx | 71 + .../components/IGraphReportsProps.ts | 6 + .../components/IGraphReportsState.ts | 3 + .../GetOneDriveUsageFileCounts.tsx | 186 + .../OneDriveReports/OneDriveReports.tsx | 51 + .../GetEmailActivityUserDetail.tsx | 175 + .../OutlookReports/OutlookReports.tsx | 52 + .../GetSharePointActivityFileCounts.tsx | 165 + .../GetSharePointSiteUsagePages.tsx | 146 + .../GetSharePointSiteUsageSiteCounts.tsx | 174 + .../ISharePointReportsProps.ts | 5 + .../ISharePointReportsState.ts | 3 + .../SharePointReports/SharePointReports.tsx | 107 + .../src/webparts/graphReports/loc/en-us.js | 7 + .../webparts/graphReports/loc/mystrings.d.ts | 10 + ...94f0-6a72-4dd6-b324-cb813fdae517_color.png | Bin 0 -> 3023 bytes ...f0-6a72-4dd6-b324-cb813fdae517_outline.png | Bin 0 -> 1429 bytes ...f0be-dec4-4862-b893-db488b35980f_color.png | Bin 0 -> 3023 bytes ...be-dec4-4862-b893-db488b35980f_outline.png | Bin 0 -> 1429 bytes samples/react-graph-reports/tsconfig.json | 38 + samples/react-graph-reports/tslint.json | 30 + 42 files changed, 19637 insertions(+) create mode 100644 samples/react-graph-reports/.editorconfig create mode 100644 samples/react-graph-reports/.gitignore create mode 100644 samples/react-graph-reports/.yo-rc.json create mode 100644 samples/react-graph-reports/README.md create mode 100644 samples/react-graph-reports/assets/graph-api-permissions-usage-reports.png create mode 100644 samples/react-graph-reports/assets/react-graph-reports.gif create mode 100644 samples/react-graph-reports/config/config.json create mode 100644 samples/react-graph-reports/config/copy-assets.json create mode 100644 samples/react-graph-reports/config/deploy-azure-storage.json create mode 100644 samples/react-graph-reports/config/package-solution.json create mode 100644 samples/react-graph-reports/config/serve.json create mode 100644 samples/react-graph-reports/config/write-manifests.json create mode 100644 samples/react-graph-reports/gulpfile.js create mode 100644 samples/react-graph-reports/package-lock.json create mode 100644 samples/react-graph-reports/package.json create mode 100644 samples/react-graph-reports/src/index.ts create mode 100644 samples/react-graph-reports/src/services/CustomGraphService.ts create mode 100644 samples/react-graph-reports/src/services/index.ts create mode 100644 samples/react-graph-reports/src/webparts/graphReports/GraphReportsWebPart.manifest.json create mode 100644 samples/react-graph-reports/src/webparts/graphReports/GraphReportsWebPart.ts create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/GraphReports.module.scss create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/GraphReports.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/IGraphReportsProps.ts create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/IGraphReportsState.ts create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/OneDriveReports/GetOneDriveUsageFileCounts/GetOneDriveUsageFileCounts.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/OneDriveReports/OneDriveReports.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/OutlookReports/GetEmailActivityUserDetail/GetEmailActivityUserDetail.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/OutlookReports/OutlookReports.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/SharePointReports/GetSharePointActivityFileCounts/GetSharePointActivityFileCounts.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/SharePointReports/GetSharePointSiteUsagePages/GetSharePointSiteUsagePages.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/SharePointReports/GetSharePointSiteUsageSiteCounts/GetSharePointSiteUsageSiteCounts.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/SharePointReports/ISharePointReportsProps.ts create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/SharePointReports/ISharePointReportsState.ts create mode 100644 samples/react-graph-reports/src/webparts/graphReports/components/SharePointReports/SharePointReports.tsx create mode 100644 samples/react-graph-reports/src/webparts/graphReports/loc/en-us.js create mode 100644 samples/react-graph-reports/src/webparts/graphReports/loc/mystrings.d.ts create mode 100644 samples/react-graph-reports/teams/23c794f0-6a72-4dd6-b324-cb813fdae517_color.png create mode 100644 samples/react-graph-reports/teams/23c794f0-6a72-4dd6-b324-cb813fdae517_outline.png create mode 100644 samples/react-graph-reports/teams/e3b6f0be-dec4-4862-b893-db488b35980f_color.png create mode 100644 samples/react-graph-reports/teams/e3b6f0be-dec4-4862-b893-db488b35980f_outline.png create mode 100644 samples/react-graph-reports/tsconfig.json create mode 100644 samples/react-graph-reports/tslint.json diff --git a/samples/react-graph-reports/.editorconfig b/samples/react-graph-reports/.editorconfig new file mode 100644 index 000000000..8ffcdc4ec --- /dev/null +++ b/samples/react-graph-reports/.editorconfig @@ -0,0 +1,25 @@ +# EditorConfig helps developers define and maintain consistent +# coding styles between different editors and IDEs +# editorconfig.org + +root = true + + +[*] + +# change these settings to your own preference +indent_style = space +indent_size = 2 + +# we recommend you to keep these unchanged +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.md] +trim_trailing_whitespace = false + +[{package,bower}.json] +indent_style = space +indent_size = 2 \ No newline at end of file diff --git a/samples/react-graph-reports/.gitignore b/samples/react-graph-reports/.gitignore new file mode 100644 index 000000000..b19bbe123 --- /dev/null +++ b/samples/react-graph-reports/.gitignore @@ -0,0 +1,32 @@ +# Logs +logs +*.log +npm-debug.log* + +# Dependency directories +node_modules + +# Build generated files +dist +lib +solution +temp +*.sppkg + +# Coverage directory used by tools like istanbul +coverage + +# OSX +.DS_Store + +# Visual Studio files +.ntvs_analysis.dat +.vs +bin +obj + +# Resx Generated Code +*.resx.ts + +# Styles Generated Code +*.scss.ts diff --git a/samples/react-graph-reports/.yo-rc.json b/samples/react-graph-reports/.yo-rc.json new file mode 100644 index 000000000..a6202d7da --- /dev/null +++ b/samples/react-graph-reports/.yo-rc.json @@ -0,0 +1,12 @@ +{ + "@microsoft/generator-sharepoint": { + "isCreatingSolution": false, + "environment": "spo", + "version": "1.8.0", + "libraryName": "react-graph-reports", + "libraryId": "94cfede6-79e3-4298-8946-0347885a12d5", + "packageManager": "npm", + "isDomainIsolated": false, + "componentType": "webpart" + } +} \ No newline at end of file diff --git a/samples/react-graph-reports/README.md b/samples/react-graph-reports/README.md new file mode 100644 index 000000000..77fbc38ec --- /dev/null +++ b/samples/react-graph-reports/README.md @@ -0,0 +1,57 @@ +## react-graph-reports + +## Summary +This sample describe a SPFX application which reterive an office 365 usage reports using Microsoft Graph API. This application also use chartjs library to generate graph. + + +![Office 365 Usage Reports using Microsoft Graph API](./assets/react-graph-reports.gif) + +## Used SharePoint Framework Version +![drop](https://img.shields.io/badge/version-GA-green.svg) + +## Applies to + +* [SharePoint Framework](https:/dev.office.com/sharepoint) +* [Office 365 tenant](https://dev.office.com/sharepoint/docs/spfx/set-up-your-development-environment) + +> Update accordingly as needed. + +## Prerequisites + +> You need following set of permissions in order to retrieve office 365 usage reports. Find out more about consuming the [Microsoft Graph API in the SharePoint Framework](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-aad-tutorial)

![Microsoft Graph API Permissions](./assets/graph-api-permissions-usage-reports.png) + + +## Solution + +Solution|Author(s) +--------|--------- +react-graph-reports | Ejaz Hussain + +## Version history + +Version|Date|Comments +-------|----|-------- +1.0|April 09, 2019|Initial release + +## Disclaimer +**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.** + +--- + +## Minimal Path to Awesome + +- Clone this repository +- in the command line run: + - `npm install` + - `gulp serve` + +> Include any additional steps as needed. + + +## Features +Here are main features for this application + +- Material UI Components (Tab) +- Microsoft Graph API to reterive Office 365 Usage reports +- ChartJS integrations +- Dependency Injection in SPFX using Service Scope \ No newline at end of file diff --git a/samples/react-graph-reports/assets/graph-api-permissions-usage-reports.png b/samples/react-graph-reports/assets/graph-api-permissions-usage-reports.png new file mode 100644 index 0000000000000000000000000000000000000000..1a751f13c81a5932cc730c2158cba742381783f2 GIT binary patch literal 6366 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 RY8xL-RZ&Z!T+Sls{{TvBHPZk9 literal 0 HcmV?d00001 diff --git a/samples/react-graph-reports/assets/react-graph-reports.gif b/samples/react-graph-reports/assets/react-graph-reports.gif new file mode 100644 index 0000000000000000000000000000000000000000..e818600b6ea6ff91193f8bd90c9587ecd45e723a GIT binary patch literal 3455641 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