From c4e72f15840db659d973d32bf348d03d09bd6b8b Mon Sep 17 00:00:00 2001 From: Waldek Mastykarz Date: Sat, 6 May 2017 17:38:09 +0200 Subject: [PATCH] Added sample showing how to call custom APIs secured with Azure Active Directory without ADAL JS (#193) --- samples/aad-api-spo-cookie/.editorconfig | 25 +++ samples/aad-api-spo-cookie/.gitattributes | 1 + samples/aad-api-spo-cookie/.gitignore | 32 +++ samples/aad-api-spo-cookie/.npmignore | 14 ++ samples/aad-api-spo-cookie/.yo-rc.json | 8 + samples/aad-api-spo-cookie/README.md | 205 ++++++++++++++++++ .../assets/orders-fetch-error.png | Bin 0 -> 27231 bytes .../assets/orders-ie-error.png | Bin 0 -> 30964 bytes .../assets/orders-ie-zones-settings.png | Bin 0 -> 51354 bytes .../assets/preview-orders.png | Bin 0 -> 34930 bytes samples/aad-api-spo-cookie/config/config.json | 13 ++ .../config/copy-assets.json | 3 + .../config/deploy-azure-storage.json | 6 + .../config/package-solution.json | 10 + samples/aad-api-spo-cookie/config/serve.json | 9 + samples/aad-api-spo-cookie/config/tslint.json | 45 ++++ .../config/write-manifests.json | 3 + samples/aad-api-spo-cookie/gulpfile.js | 6 + samples/aad-api-spo-cookie/package.json | 31 +++ .../latestOrders/ILatestOrdersWebPartProps.ts | 2 + .../src/webparts/latestOrders/IOrder.ts | 12 + .../latestOrders/LatestOrders.module.scss | 32 +++ .../LatestOrdersWebPart.manifest.json | 19 ++ .../latestOrders/LatestOrdersWebPart.ts | 116 ++++++++++ .../src/webparts/latestOrders/loc/en-us.js | 7 + .../webparts/latestOrders/loc/mystrings.d.ts | 10 + .../latestOrders/tests/LatestOrders.test.ts | 9 + samples/aad-api-spo-cookie/tsconfig.json | 15 ++ .../aad-api-spo-cookie/typings/@ms/odsp.d.ts | 8 + samples/aad-api-spo-cookie/typings/tsd.d.ts | 1 + 30 files changed, 642 insertions(+) create mode 100644 samples/aad-api-spo-cookie/.editorconfig create mode 100644 samples/aad-api-spo-cookie/.gitattributes create mode 100644 samples/aad-api-spo-cookie/.gitignore create mode 100644 samples/aad-api-spo-cookie/.npmignore create mode 100644 samples/aad-api-spo-cookie/.yo-rc.json create mode 100644 samples/aad-api-spo-cookie/README.md create mode 100644 samples/aad-api-spo-cookie/assets/orders-fetch-error.png create mode 100644 samples/aad-api-spo-cookie/assets/orders-ie-error.png create mode 100644 samples/aad-api-spo-cookie/assets/orders-ie-zones-settings.png create mode 100644 samples/aad-api-spo-cookie/assets/preview-orders.png create mode 100644 samples/aad-api-spo-cookie/config/config.json create mode 100644 samples/aad-api-spo-cookie/config/copy-assets.json create mode 100644 samples/aad-api-spo-cookie/config/deploy-azure-storage.json create mode 100644 samples/aad-api-spo-cookie/config/package-solution.json create mode 100644 samples/aad-api-spo-cookie/config/serve.json create mode 100644 samples/aad-api-spo-cookie/config/tslint.json create mode 100644 samples/aad-api-spo-cookie/config/write-manifests.json create mode 100644 samples/aad-api-spo-cookie/gulpfile.js create mode 100644 samples/aad-api-spo-cookie/package.json create mode 100644 samples/aad-api-spo-cookie/src/webparts/latestOrders/ILatestOrdersWebPartProps.ts create mode 100644 samples/aad-api-spo-cookie/src/webparts/latestOrders/IOrder.ts create mode 100644 samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrders.module.scss create mode 100644 samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrdersWebPart.manifest.json create mode 100644 samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrdersWebPart.ts create mode 100644 samples/aad-api-spo-cookie/src/webparts/latestOrders/loc/en-us.js create mode 100644 samples/aad-api-spo-cookie/src/webparts/latestOrders/loc/mystrings.d.ts create mode 100644 samples/aad-api-spo-cookie/src/webparts/latestOrders/tests/LatestOrders.test.ts create mode 100644 samples/aad-api-spo-cookie/tsconfig.json create mode 100644 samples/aad-api-spo-cookie/typings/@ms/odsp.d.ts create mode 100644 samples/aad-api-spo-cookie/typings/tsd.d.ts diff --git a/samples/aad-api-spo-cookie/.editorconfig b/samples/aad-api-spo-cookie/.editorconfig new file mode 100644 index 000000000..8ffcdc4ec --- /dev/null +++ b/samples/aad-api-spo-cookie/.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/aad-api-spo-cookie/.gitattributes b/samples/aad-api-spo-cookie/.gitattributes new file mode 100644 index 000000000..212566614 --- /dev/null +++ b/samples/aad-api-spo-cookie/.gitattributes @@ -0,0 +1 @@ +* text=auto \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/.gitignore b/samples/aad-api-spo-cookie/.gitignore new file mode 100644 index 000000000..b19bbe123 --- /dev/null +++ b/samples/aad-api-spo-cookie/.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/aad-api-spo-cookie/.npmignore b/samples/aad-api-spo-cookie/.npmignore new file mode 100644 index 000000000..2c93a9384 --- /dev/null +++ b/samples/aad-api-spo-cookie/.npmignore @@ -0,0 +1,14 @@ +# Folders +.vscode +coverage +node_modules +sharepoint +src +temp + +# Files +*.csproj +.git* +.yo-rc.json +gulpfile.js +tsconfig.json diff --git a/samples/aad-api-spo-cookie/.yo-rc.json b/samples/aad-api-spo-cookie/.yo-rc.json new file mode 100644 index 000000000..a0e51e096 --- /dev/null +++ b/samples/aad-api-spo-cookie/.yo-rc.json @@ -0,0 +1,8 @@ +{ + "@microsoft/generator-sharepoint": { + "libraryName": "aad-api-spo-cookie", + "framework": "none", + "version": "1.0.2", + "libraryId": "ae8e010a-71b4-479b-904b-15405d951d65" + } +} \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/README.md b/samples/aad-api-spo-cookie/README.md new file mode 100644 index 000000000..7e915bd39 --- /dev/null +++ b/samples/aad-api-spo-cookie/README.md @@ -0,0 +1,205 @@ +# Call custom APIs secured with Azure Active Directory without ADAL JS + +## Summary + +Sample SharePoint Framework client-side web part showing how to access a custom API secured with Azure Active Directory (AAD) without using ADAL JS. + +### Recent orders + +Sample web part showing the list of latest orders retrieved from a custom API secured with AAD. + +![Web part showing the list of latest orders retrieved from a custom API secured with AAD](./assets/preview-orders.png) + +## Used SharePoint Framework Version +![drop](https://img.shields.io/badge/drop-GA-green.svg) + +## Applies to + +* [SharePoint Framework](http://dev.office.com/sharepoint/docs/spfx/sharepoint-framework-overview) +* [Office 365 developer tenant](http://dev.office.com/sharepoint/docs/spfx/set-up-your-developer-tenant) + +## Solution + +Solution|Author(s) +--------|--------- +aad-api-spo-cookie|Waldek Mastykarz (MVP, Rencore, @waldekm) + +## Version history + +Version|Date|Comments +-------|----|-------- +1.0.0|May 5, 2017|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 + +### Create custom API secured with AAD + +- create an API and secure it with AAD + - in the API enable receiving credentials from cross-domain origins + - if you want to test the API from the local workbench, add **https://localhost:4321** as valid origin +- the API should return the following data (JSON): + +```json +[{ + id: 1, + orderDate: new Date(2016, 0, 6), + region: "east", + rep: "Jones", + item: "Pencil", + units: 95, + unitCost: 1.99, + total: 189.05 +}, +{ + id: 2, + orderDate: new Date(2016, 0, 23), + region: "central", + rep: "Kivell", + item: "Binder", + units: 50, + unitCost: 19.99, + total: 999.50 +}, +{ + id: 3, + orderDate: new Date(2016, 1, 9), + region: "central", + rep: "Jardine", + item: "Pencil", + units: 36, + unitCost: 4.99, + total: 179.64 +}, +{ + id: 4, + orderDate: new Date(2016, 1, 26), + region: "central", + rep: "Gill", + item: "Pen", + units: 27, + unitCost: 19.99, + total: 539.73 +}, +{ + id: 5, + orderDate: new Date(2016, 2, 15), + region: "west", + rep: "Sorvino", + item: "Pencil", + units: 56, + unitCost: 2.99, + total: 167.44 +}] +``` +Here is the complete code if you want to implement this API using a Node.js Azure Function: + +```js +module.exports = function (context, req) { + context.res = { + body: [ + { + id: 1, + orderDate: new Date(2016, 0, 6), + region: "east", + rep: "Jones", + item: "Pencil", + units: 95, + unitCost: 1.99, + total: 189.05 + }, + { + id: 2, + orderDate: new Date(2016, 0, 23), + region: "central", + rep: "Kivell", + item: "Binder", + units: 50, + unitCost: 19.99, + total: 999.50 + }, + { + id: 3, + orderDate: new Date(2016, 1, 9), + region: "central", + rep: "Jardine", + item: "Pencil", + units: 36, + unitCost: 4.99, + total: 179.64 + }, + { + id: 4, + orderDate: new Date(2016, 1, 26), + region: "central", + rep: "Gill", + item: "Pen", + units: 27, + unitCost: 19.99, + total: 539.73 + }, + { + id: 5, + orderDate: new Date(2016, 2, 15), + region: "west", + rep: "Sorvino", + item: "Pencil", + units: 56, + unitCost: 2.99, + total: 167.44 + }], + headers: { + "Access-Control-Allow-Credentials" : "true", + "Access-Control-Allow-Origin" : "https://contoso.sharepoint.com" + } + }; + context.done(); +}; +``` + +> **Important:** The **Access-Control-Allow-Origin** header specifies the origin that is allowed to call the API. If you want to test the web part in the hosted workbench, this URL should be set to the URL of your SharePoint tenant. For testing the web part in the local workbench this URL should be set to **https://localhost:4321**. + +### Update web part + +- in the **./src/webparts/latestOrders/LatestOrdersWebPart.ts** file: + - in line 21, update the value of the **src** attribute with the URL where your API is hosted. Navigating to that URL in the browser should trigger Azure Active Directory sign in page + - in line 51, update the URL to call your custom API secured with AAD and returning orders + +### Run web part + +- in the command line run `npm i` to restore project dependencies +- to test web part in local workbench + - in the command line run `gulp serve` + - if after adding the web part you get an error similar to the following: + ![Error when loading orders](./assets/orders-fetch-error.png) + you should navigate to the URL you entered in the main web part file in line 21 to sign in to Azure AD with your organizational account. After signing in, the web part should display orders as expected. +- to test web part in hosted workbench + - in the command line run `gulp serve --nobrowser` + - in the web browser navigate to **https://contoso.sharepoint.com/_layouts/workbench.aspx** + +If you're testing the web part in Internet Explorer and get an error similar to following: + +![Error when testing the web part in Internet Explorer](./assets/orders-ie-error.png) + +it means that the page where the web part is hosted and the Azure Active Directory sign in page are in different security zones. Update the security settings in Internet Explorer and add to the **Local intranet** zone the URL of your SharePoint tenant, the URL where your custom API is hosted and **https://login.microsoftonline.com**. + +![Microsoft Internet Explorer security zones settings](./assets/orders-ie-zones-settings.png) + +## Features + +This project contains sample client-side web part built on the SharePoint Framework illustrating how to access a custom API secured with AAD without using ADAL JS. + +This sample illustrates the following concepts on top of the SharePoint Framework: + +- using iframe to seamlessly authenticate to with Azure AD using the SharePoint Online authentication cookie +- executing cross-domain web requests with passing credentials +- communicating errors to users with the standard SharePoint Framework indicator +- communicating progress to users with the standard SharePoint Framework indicator +- manipulating DOM without using JavaScript libraries +- chaining promises + + \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/assets/orders-fetch-error.png b/samples/aad-api-spo-cookie/assets/orders-fetch-error.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d3ff81cf08bc463fc396fe5eb401ebb8fb4c8c GIT binary patch literal 27231 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 TI5hTTOwl=^ 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 literal 0 HcmV?d00001 diff --git a/samples/aad-api-spo-cookie/assets/orders-ie-error.png b/samples/aad-api-spo-cookie/assets/orders-ie-error.png new file mode 100644 index 0000000000000000000000000000000000000000..ea8543fb60ff1ef1ee1157835cebf9e0d4ec66a0 GIT binary patch literal 30964 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

GiH!DP>-&rnIRTB}#0JSNFwnF? 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 b^R}hLw0xbvw;D@wpBP>@xmI@dw+H_N4rN#z literal 0 HcmV?d00001 diff --git a/samples/aad-api-spo-cookie/assets/orders-ie-zones-settings.png b/samples/aad-api-spo-cookie/assets/orders-ie-zones-settings.png new file mode 100644 index 0000000000000000000000000000000000000000..2cc7e061d5c0f04c4936a471e4842d2806e5fd83 GIT binary patch literal 51354 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

n3Ma3_za<>Wn_?p_MXgP@Zu7nH{_)4!Jjd6kC9 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 M@JDO)6 zrO@)WD^c9N-Rd9G9sdBAcFBlTQpwAIRBcVu=|R zLSwQl<${Z?-1e-Tof|75X=J%|({XT`t!Eq@D{ISN#;A#q@PS zDK0Qk3Y-1%*>p0_>O6~Ip!S8eU6-gr9NI>ltSTbs>v4zVhxXgZcrr_11j{yVyOkK3 zzRgW$WtbQ{w8pxqZyYM)f27phnY^#aZeV>w!-aK7XipC1@YFRPuVQ&+lw%Q~FNXFMFfPwgOFKzxX857nf^(B2Wu~qXk5<~-OP~`zv2Xhso&jbBz?MwZp< zNfy05O*4nPgvMN1uI28+eE;ge>aQ)GFJ;o_$b3j%t{sCkyE-hHZoCqH%_d2L&?8}D1lcmwYf&1mpC zQ#U+#P>|nN?qMFTL~cWgI$^=IAAOn-@jLvn>%(~bd}GQ?<$RRt7?f_ZgiX$$cJH|hrhA(3LkL-5^7x?w~7gROk z8~cCz&z&GwzTuxMu>U^k{C}no|7UdncR|>H*6!b?D&;?0@&B?FZ>t|jH6Qmm_~IXc zjV;8x&fi`IKh;-g<9#iye2acS{4n(?c`}&c@-^JwI8)kg-+K6fPi1@%|9C6@$y+mq zTO9m?|KnGeEr7pq(p|LzUOwA;`Okm6;>v$@yX$Z3OOiiVeo7WjABaT~E+Q`fL{U~% Krc~", + "container": "aad-api-spo-cookie", + "accessKey": "" +} \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/config/package-solution.json b/samples/aad-api-spo-cookie/config/package-solution.json new file mode 100644 index 000000000..d0a670bc1 --- /dev/null +++ b/samples/aad-api-spo-cookie/config/package-solution.json @@ -0,0 +1,10 @@ +{ + "solution": { + "name": "aad-api-spo-cookie-client-side-solution", + "id": "ae8e010a-71b4-479b-904b-15405d951d65", + "version": "1.0.0.0" + }, + "paths": { + "zippedPackage": "solution/aad-api-spo-cookie.sppkg" + } +} diff --git a/samples/aad-api-spo-cookie/config/serve.json b/samples/aad-api-spo-cookie/config/serve.json new file mode 100644 index 000000000..087899637 --- /dev/null +++ b/samples/aad-api-spo-cookie/config/serve.json @@ -0,0 +1,9 @@ +{ + "port": 4321, + "initialPage": "https://localhost:5432/workbench", + "https": true, + "api": { + "port": 5432, + "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" + } +} diff --git a/samples/aad-api-spo-cookie/config/tslint.json b/samples/aad-api-spo-cookie/config/tslint.json new file mode 100644 index 000000000..1e8687a2b --- /dev/null +++ b/samples/aad-api-spo-cookie/config/tslint.json @@ -0,0 +1,45 @@ +{ + // Display errors as warnings + "displayAsWarning": true, + // The TSLint task may have been configured with several custom lint rules + // before this config file is read (for example lint rules from the tslint-microsoft-contrib + // project). If true, this flag will deactivate any of these rules. + "removeExistingRules": true, + // When true, the TSLint task is configured with some default TSLint "rules.": + "useDefaultConfigAsBase": false, + // Since removeExistingRules=true and useDefaultConfigAsBase=false, there will be no lint rules + // which are active, other than the list of rules below. + "lintConfig": { + // Opt-in to Lint rules which help to eliminate bugs in JavaScript + "rules": { + "class-name": false, + "export-name": false, + "forin": false, + "label-position": false, + "member-access": true, + "no-arg": false, + "no-console": false, + "no-construct": false, + "no-duplicate-case": true, + "no-duplicate-variable": true, + "no-eval": false, + "no-function-expression": true, + "no-internal-module": true, + "no-shadowed-variable": true, + "no-switch-case-fall-through": true, + "no-unnecessary-semicolons": true, + "no-unused-expression": true, + "no-unused-imports": true, + "no-use-before-declare": true, + "no-with-statement": true, + "semicolon": true, + "trailing-comma": false, + "typedef": false, + "typedef-whitespace": false, + "use-named-parameter": true, + "valid-typeof": true, + "variable-name": false, + "whitespace": false + } + } +} \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/config/write-manifests.json b/samples/aad-api-spo-cookie/config/write-manifests.json new file mode 100644 index 000000000..0a4bafb06 --- /dev/null +++ b/samples/aad-api-spo-cookie/config/write-manifests.json @@ -0,0 +1,3 @@ +{ + "cdnBasePath": "" +} \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/gulpfile.js b/samples/aad-api-spo-cookie/gulpfile.js new file mode 100644 index 000000000..7d36ddb1c --- /dev/null +++ b/samples/aad-api-spo-cookie/gulpfile.js @@ -0,0 +1,6 @@ +'use strict'; + +const gulp = require('gulp'); +const build = require('@microsoft/sp-build-web'); + +build.initialize(gulp); diff --git a/samples/aad-api-spo-cookie/package.json b/samples/aad-api-spo-cookie/package.json new file mode 100644 index 000000000..09c7a7da4 --- /dev/null +++ b/samples/aad-api-spo-cookie/package.json @@ -0,0 +1,31 @@ +{ + "name": "aad-api-spo-cookie", + "version": "1.0.0", + "private": true, + "engines": { + "node": ">=0.10.0" + }, + "author": { + "name": "Waldek Mastykarz", + "url": "https://rencore.com" + }, + "dependencies": { + "@microsoft/sp-client-base": "~1.0.0", + "@microsoft/sp-core-library": "~1.0.0", + "@microsoft/sp-webpart-base": "~1.0.0", + "@types/webpack-env": ">=1.12.1 <1.14.0" + }, + "devDependencies": { + "@microsoft/sp-build-web": "~1.0.1", + "@microsoft/sp-module-interfaces": "~1.0.0", + "@microsoft/sp-webpart-workbench": "~1.0.0", + "gulp": "~3.9.1", + "@types/chai": ">=3.4.34 <3.6.0", + "@types/mocha": ">=2.2.33 <2.6.0" + }, + "scripts": { + "build": "gulp bundle", + "clean": "gulp clean", + "test": "gulp test" + } +} \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/src/webparts/latestOrders/ILatestOrdersWebPartProps.ts b/samples/aad-api-spo-cookie/src/webparts/latestOrders/ILatestOrdersWebPartProps.ts new file mode 100644 index 000000000..217fbfd02 --- /dev/null +++ b/samples/aad-api-spo-cookie/src/webparts/latestOrders/ILatestOrdersWebPartProps.ts @@ -0,0 +1,2 @@ +export interface ILatestOrdersWebPartProps { +} diff --git a/samples/aad-api-spo-cookie/src/webparts/latestOrders/IOrder.ts b/samples/aad-api-spo-cookie/src/webparts/latestOrders/IOrder.ts new file mode 100644 index 000000000..44334ca56 --- /dev/null +++ b/samples/aad-api-spo-cookie/src/webparts/latestOrders/IOrder.ts @@ -0,0 +1,12 @@ +export interface IOrder { + id: number; + orderDate: Date; + region: Region; + rep: string; + item: string; + units: number; + unitCost: number; + total: number; +} + +export type Region = "east" | "central" | "west"; \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrders.module.scss b/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrders.module.scss new file mode 100644 index 000000000..bd4fd10cb --- /dev/null +++ b/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrders.module.scss @@ -0,0 +1,32 @@ +.latestOrders { + table { + width: 100%; + border-collapse: collapse; + color: #333; + font-size: 14px; + font-weight: 400; + margin-top: 20px; + } + + thead tr { + border-bottom: 1px solid #767676; + } + + thead th { + font-weight: 600; + color: #666; + text-align: left; + } + + tbody tr { + border-bottom: 1px solid #c8c8c8; + } + + th, td { + padding: 10px 8px; + } + + .number { + text-align: right; + } +} \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrdersWebPart.manifest.json b/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrdersWebPart.manifest.json new file mode 100644 index 000000000..f0043c8b5 --- /dev/null +++ b/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrdersWebPart.manifest.json @@ -0,0 +1,19 @@ +{ + "$schema": "../../../node_modules/@microsoft/sp-module-interfaces/lib/manifestSchemas/jsonSchemas/clientSideComponentManifestSchema.json", + + "id": "63d86d5a-2e61-4bff-82e5-0d05509f939a", + "alias": "LatestOrdersWebPart", + "componentType": "WebPart", + "version": "0.0.1", + "manifestVersion": 2, + + "preconfiguredEntries": [{ + "groupId": "63d86d5a-2e61-4bff-82e5-0d05509f939a", + "group": { "default": "Under Development" }, + "title": { "default": "Latest orders" }, + "description": { "default": "Shows latest orders" }, + "officeFabricIconFontName": "Page", + "properties": { + } + }] +} diff --git a/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrdersWebPart.ts b/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrdersWebPart.ts new file mode 100644 index 000000000..eec3c1a6f --- /dev/null +++ b/samples/aad-api-spo-cookie/src/webparts/latestOrders/LatestOrdersWebPart.ts @@ -0,0 +1,116 @@ +import { Version } from '@microsoft/sp-core-library'; +import { + BaseClientSideWebPart, + IPropertyPaneConfiguration +} from '@microsoft/sp-webpart-base'; +import { HttpClient, HttpClientResponse } from "@microsoft/sp-http"; + +import styles from './LatestOrders.module.scss'; +import { ILatestOrdersWebPartProps } from './ILatestOrdersWebPartProps'; +import { IOrder, Region } from './IOrder'; + +export default class LatestOrdersWebPart extends BaseClientSideWebPart { + private remotePartyLoaded: boolean = false; + private orders: IOrder[]; + + public render(): void { + this.domElement.innerHTML = ` +

`; + + this.context.statusRenderer.displayLoadingIndicator( + this.domElement.querySelector(".loading"), "orders"); + + this.domElement.querySelector("iframe").addEventListener("load", (): void => { + this.remotePartyLoaded = true; + }); + + this.executeOrDelayUntilRemotePartyLoaded((): void => { + this.context.httpClient.get("https://contoso.azurewebsites.net/api/orders", + HttpClient.configurations.v1, { + credentials: "include" + }) + .then((response: HttpClientResponse): Promise => { + if (response.ok) { + return response.json(); + } else { + return Promise.resolve(null); + } + }) + .then((orders: IOrder[]): void => { + this.orders = orders; + this.context.statusRenderer.clearLoadingIndicator( + this.domElement.querySelector(".loading")); + this.renderData(); + }) + .catch((error: any): void => { + this.context.statusRenderer.clearLoadingIndicator( + this.domElement.querySelector(".loading")); + this.context.statusRenderer.renderError(this.domElement, "Error loading orders: " + (error ? error.message : "")); + }); + }); + } + + private renderData(): void { + if (this.orders === null) { + return; + } + + let ordersString: string = ""; + this.orders.forEach(order => { + ordersString += ` + + ${order.id} + ${new Date(order.orderDate).toLocaleDateString()} + ${order.region.toString()} + ${order.rep} + ${order.item} + ${order.units} + $${order.unitCost.toFixed(2)} + $${order.total.toFixed(2)} +`; + }); + + const table: Element = this.domElement.querySelector(".data"); + table.removeAttribute("style"); + table.querySelector("tbody").innerHTML = ordersString; + } + + private executeOrDelayUntilRemotePartyLoaded(func: Function): void { + if (this.remotePartyLoaded) { + func(); + } else { + setTimeout((): void => { this.executeOrDelayUntilRemotePartyLoaded(func); }, 100); + } + } + + protected get dataVersion(): Version { + return Version.parse('1.0'); + } + + protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration { + return { + pages: [] + }; + } +} diff --git a/samples/aad-api-spo-cookie/src/webparts/latestOrders/loc/en-us.js b/samples/aad-api-spo-cookie/src/webparts/latestOrders/loc/en-us.js new file mode 100644 index 000000000..89f98bc1e --- /dev/null +++ b/samples/aad-api-spo-cookie/src/webparts/latestOrders/loc/en-us.js @@ -0,0 +1,7 @@ +define([], function() { + return { + "PropertyPaneDescription": "Description", + "BasicGroupName": "Group Name", + "DescriptionFieldLabel": "Description Field" + } +}); \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/src/webparts/latestOrders/loc/mystrings.d.ts b/samples/aad-api-spo-cookie/src/webparts/latestOrders/loc/mystrings.d.ts new file mode 100644 index 000000000..c6088183c --- /dev/null +++ b/samples/aad-api-spo-cookie/src/webparts/latestOrders/loc/mystrings.d.ts @@ -0,0 +1,10 @@ +declare interface ILatestOrdersStrings { + PropertyPaneDescription: string; + BasicGroupName: string; + DescriptionFieldLabel: string; +} + +declare module 'latestOrdersStrings' { + const strings: ILatestOrdersStrings; + export = strings; +} diff --git a/samples/aad-api-spo-cookie/src/webparts/latestOrders/tests/LatestOrders.test.ts b/samples/aad-api-spo-cookie/src/webparts/latestOrders/tests/LatestOrders.test.ts new file mode 100644 index 000000000..31c54176a --- /dev/null +++ b/samples/aad-api-spo-cookie/src/webparts/latestOrders/tests/LatestOrders.test.ts @@ -0,0 +1,9 @@ +/// + +import { assert } from 'chai'; + +describe('LatestOrdersWebPart', () => { + it('should do something', () => { + assert.ok(true); + }); +}); diff --git a/samples/aad-api-spo-cookie/tsconfig.json b/samples/aad-api-spo-cookie/tsconfig.json new file mode 100644 index 000000000..5fa39c930 --- /dev/null +++ b/samples/aad-api-spo-cookie/tsconfig.json @@ -0,0 +1,15 @@ +{ + "compilerOptions": { + "target": "es5", + "forceConsistentCasingInFileNames": true, + "module": "commonjs", + "jsx": "react", + "declaration": true, + "sourceMap": true, + "types": [ + "es6-promise", + "es6-collections", + "webpack-env" + ] + } +} diff --git a/samples/aad-api-spo-cookie/typings/@ms/odsp.d.ts b/samples/aad-api-spo-cookie/typings/@ms/odsp.d.ts new file mode 100644 index 000000000..2d2913e53 --- /dev/null +++ b/samples/aad-api-spo-cookie/typings/@ms/odsp.d.ts @@ -0,0 +1,8 @@ +// Type definitions for Microsoft ODSP projects +// Project: ODSP + +/* Global definition for UNIT_TEST builds + Code that is wrapped inside an if(UNIT_TEST) {...} + block will not be included in the final bundle when the + --ship flag is specified */ +declare const UNIT_TEST: boolean; \ No newline at end of file diff --git a/samples/aad-api-spo-cookie/typings/tsd.d.ts b/samples/aad-api-spo-cookie/typings/tsd.d.ts new file mode 100644 index 000000000..e7efdd728 --- /dev/null +++ b/samples/aad-api-spo-cookie/typings/tsd.d.ts @@ -0,0 +1 @@ +///