├── .gitignore ├── Champion Management Platform ├── .editorconfig ├── .gitignore ├── .yo-rc.json ├── Images │ ├── APIAccess.png │ ├── AddChampion_msg.jpg │ ├── AddMember_small.png │ ├── AddTab_ChampionAdd.png │ ├── AddTab_Teams.png │ ├── Admin_menu.png │ ├── Admin_menu2.png │ ├── Admin_menu3.png │ ├── Admin_menu4.png │ ├── AppCatalog.png │ ├── AppCatalog2.png │ ├── AppCatalog3.png │ ├── AppCatalog4.png │ ├── Champion_small.png │ ├── Deploy.png │ ├── Digitalbadge.png │ ├── EmpView.png │ ├── Leaderboard.png │ ├── QuickGuide.png │ ├── Siteconfig1.png │ ├── Siteconfig2.png │ ├── Siteconfig3.png │ ├── SyncToTeams.png │ ├── Teams_Tab.jpg │ ├── Warning.png │ ├── WarningId.png │ ├── WelcomeCMP.png │ ├── banner.png │ ├── customization.png │ └── sitePerms.png ├── Manifest │ ├── icon-color.png │ ├── icon-outline.png │ └── manifest.json ├── README.md ├── config │ ├── config.json │ ├── copy-assets.json │ ├── deploy-azure-storage.json │ ├── package-solution.json │ ├── serve.json │ └── write-manifests.json ├── gulpfile.js ├── sharepoint │ └── solution │ │ └── ChampionManagementPlatform_Package.zip ├── src │ ├── index.ts │ └── webparts │ │ └── clbHome │ │ ├── ClbHomeWebPart.manifest.json │ │ ├── ClbHomeWebPart.ts │ │ ├── assets │ │ ├── images │ │ │ ├── Location.png │ │ │ ├── Preloader_2.gif │ │ │ ├── addmember.png │ │ │ ├── appbanner648.jpg │ │ │ ├── badge-strip.png │ │ │ ├── badge648.png │ │ │ ├── champion.png │ │ │ ├── digitalbadge.png │ │ │ ├── icon.png │ │ │ ├── leaderboard.jpg │ │ │ ├── list.jpg │ │ │ ├── loader.gif │ │ │ ├── mslogo.png │ │ │ ├── noimage.png │ │ │ ├── noprofile.png │ │ │ └── top-strip-icon.png │ │ └── stylesheets │ │ │ ├── components │ │ │ ├── _DigitalBadge.scss │ │ │ └── _all.scss │ │ │ └── main.scss │ │ ├── components │ │ ├── ChampionLeaderBoard.tsx │ │ ├── Champions.tsx │ │ ├── ChampionvView.tsx │ │ ├── ClbAddMember.tsx │ │ ├── ClbChampionsList.tsx │ │ ├── ClbHome.tsx │ │ ├── DigitalBadge.tsx │ │ ├── EmployeeView.tsx │ │ ├── Header.tsx │ │ ├── IClbHomeProps.ts │ │ ├── Sidebar.tsx │ │ └── TeamsBaseComponent.tsx │ │ ├── config │ │ └── siteconfig.json │ │ ├── constants │ │ └── strings.ts │ │ ├── imgs │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.png │ │ ├── Location.png │ │ ├── PersonPlaceholder.png │ │ ├── addmember.png │ │ ├── badge-strip.png │ │ ├── champion.png │ │ ├── digitalbadge.png │ │ ├── leaderboard.jpg │ │ ├── list.jpg │ │ ├── mslogo.png │ │ └── top-strip-icon.png │ │ ├── loc │ │ ├── en-us.js │ │ └── mystrings.d.ts │ │ ├── models │ │ └── IProfileImage.ts │ │ └── scss │ │ ├── Championleaderboard.scss │ │ ├── Championview.scss │ │ ├── ClbAddMember.scss │ │ ├── ClbHome.module.scss │ │ ├── DigitalBadge.module.scss │ │ └── Employeeview.scss ├── teams │ ├── 6df47bd5-d84a-41ab-8c4a-9352076e8b6c_color.png │ └── 6df47bd5-d84a-41ab-8c4a-9352076e8b6c_outline.png ├── tsconfig.json └── tslint.json ├── M365 Learning Pathways ├── .vs │ └── ProjectSettings.json ├── LICENSE ├── README.md └── getstartedapp │ ├── GettingStarted.zip │ ├── README.md │ ├── color.png │ ├── installandconfig.md │ ├── manifest.json │ └── outline.png └── TeamsSampleHub ├── LICENSE ├── SampleHubHTMLCSSVersion ├── README.md └── SampleHub │ ├── Manifest │ ├── color.png │ ├── manifest.json │ └── outline.png │ └── Source │ ├── BrandHome.csproj │ ├── Brandhome.sln │ ├── Connected Services │ └── Application Insights │ │ └── ConnectedService.json │ ├── Controllers │ ├── AppDataController.cs │ └── ApplicationConfigurationsController.cs │ ├── Helper │ ├── AuthenticationHelper.cs │ ├── GraphHelper.cs │ ├── SharePointHelper.cs │ └── TableStorageHelper.cs │ ├── Interfaces │ ├── IGraph.cs │ ├── ISharePoint.cs │ └── ITableStorage.cs │ ├── Models │ ├── CompanyCommunicatorTableData.cs │ ├── News.cs │ ├── TeamMemberDetails.cs │ ├── TeamMembers.cs │ ├── TeamsConfiguration.cs │ └── TokenResponse.cs │ ├── Program.cs │ ├── Startup.cs │ ├── Views │ ├── ApplicationConfigurations │ │ ├── End.cshtml │ │ ├── Index.cshtml │ │ ├── Learning.cshtml │ │ ├── Payhistory.cshtml │ │ ├── Paystubs.cshtml │ │ ├── Rewards.cshtml │ │ ├── Surveys.cshtml │ │ └── start.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── libman.json │ └── wwwroot │ ├── Data │ └── ContosoTown Shop Employee Handbook.docx │ ├── css │ ├── index.css │ ├── learning.css │ ├── payhistory.css │ ├── paystubs.css │ ├── reward.css │ └── surveys.css │ ├── favicon.ico │ ├── fonts │ ├── TeamsAssets-Light.woff │ └── TeamsAssets-Light.woff2 │ ├── images │ ├── Benefits.png │ ├── Bottom Brand Home.svg │ ├── Bottom Brand.svg │ ├── Deafult-Profile.png │ ├── ErrorLogo.svg │ ├── ErrorReddot.svg │ ├── How you feeling 2.svg │ ├── Insights1.png │ ├── Learning.png │ ├── Portal.png │ ├── Preloader_2.gif │ ├── Rewards.png │ ├── Survey.png │ ├── average.png │ ├── gudafternoon.png │ ├── gudevening.png │ ├── gudmorning.png │ ├── kudos.PNG │ ├── logo-bg-img.svg │ ├── logo-rewards-lob.svg │ ├── logo.png │ ├── logo2.svg │ ├── news1.jfif │ ├── news2.png │ ├── news3.png │ ├── notsatisfied.png │ ├── offer.png │ ├── paystub.PNG │ ├── paystubs-lob.png │ ├── quote.svg │ ├── readmeimages │ │ ├── 1.png │ │ ├── 2.png │ │ ├── 3.png │ │ ├── 4.png │ │ ├── 5.png │ │ ├── 6.PNG │ │ └── 7.PNG │ ├── rewards-lob.png │ ├── satisfied.png │ ├── section3.png │ └── tag.png │ └── js │ ├── Index.js │ └── home.js └── SampleHubReactVersion ├── ClientApp ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public │ ├── Data │ │ └── ContosoTown Shop Employee Handbook.docx │ ├── end.html │ ├── favicon.ico │ ├── images │ │ ├── Benefits.png │ │ ├── Bottom Brand Home.svg │ │ ├── Bottom Brand.svg │ │ ├── Deafult-Profile.png │ │ ├── ErrorLogo.svg │ │ ├── ErrorReddot.svg │ │ ├── How you feeling 2.svg │ │ ├── Insights1.png │ │ ├── Learning.png │ │ ├── Portal.png │ │ ├── Preloader_2.gif │ │ ├── Rewards.png │ │ ├── Survey.png │ │ ├── average.png │ │ ├── gudafternoon.png │ │ ├── gudevening.png │ │ ├── gudmorning.png │ │ ├── kudos.PNG │ │ ├── logo-bg-img.svg │ │ ├── logo-rewards-lob.svg │ │ ├── logo.png │ │ ├── logo2.svg │ │ ├── news1.jfif │ │ ├── news2.png │ │ ├── news3.png │ │ ├── notsatisfied.png │ │ ├── offer.png │ │ ├── paystub.PNG │ │ ├── paystubs-lob.png │ │ ├── quote.svg │ │ ├── rewards-lob.png │ │ ├── satisfied.png │ │ ├── section3.png │ │ └── tag.png │ ├── index.html │ ├── lib │ │ ├── adaptivecards │ │ │ └── dist │ │ │ │ └── adaptivecards.js │ │ ├── bluebird │ │ │ └── bluebird.min.js │ │ ├── bootstrap │ │ │ └── dist │ │ │ │ ├── css │ │ │ │ ├── bootstrap.min.css │ │ │ │ └── bootstrap.min.css.map │ │ │ │ └── js │ │ │ │ ├── bootstrap.min.js │ │ │ │ └── bootstrap.min.js.map │ │ ├── jquery │ │ │ ├── jquery.min.js │ │ │ └── jquery.min.map │ │ ├── markdown-it │ │ │ └── dist │ │ │ │ └── markdown-it.js │ │ └── popper.js │ │ │ └── umd │ │ │ ├── popper.min.js │ │ │ └── popper.min.js.map │ ├── robots.txt │ ├── start.html │ └── web.config ├── src │ ├── App.test.tsx │ ├── App.tsx │ ├── assets │ │ ├── data │ │ │ └── data.json │ │ ├── fonts │ │ │ ├── TeamsAssets-Light.woff │ │ │ └── TeamsAssets-Light.woff2 │ │ └── images │ │ │ ├── Avatar.png │ │ │ ├── Benefits.png │ │ │ ├── Capture.png │ │ │ ├── Ellipse1.png │ │ │ ├── Ellipse2.png │ │ │ ├── Ellipse3.png │ │ │ ├── Ellipse4.png │ │ │ ├── Ellipse5.png │ │ │ ├── Ellipse6.png │ │ │ ├── Ellipse7.png │ │ │ ├── How you feeling 2.svg │ │ │ ├── Kudos.png │ │ │ ├── Paystub.png │ │ │ ├── Photo.png │ │ │ ├── Preloader_2.gif │ │ │ ├── Rewards.png │ │ │ ├── logo-bg-img.svg │ │ │ ├── news.png │ │ │ ├── quote.svg │ │ │ └── section3.png │ ├── components │ │ ├── Announcements │ │ │ ├── Announcements.tsx │ │ │ └── announcements.css │ │ ├── AppItem │ │ │ ├── AppItem.tsx │ │ │ └── appItem.css │ │ ├── Footer │ │ │ ├── Footer.tsx │ │ │ └── footer.css │ │ ├── Greeting │ │ │ ├── Greeting.tsx │ │ │ └── gretting.css │ │ ├── Home │ │ │ ├── Home.tsx │ │ │ └── home.css │ │ ├── Learning │ │ │ ├── Learning.tsx │ │ │ └── learning.css │ │ ├── MeetingVideo │ │ │ ├── MeetingVideo.css │ │ │ └── MeetingVideo.tsx │ │ ├── Metrics │ │ │ ├── Metrics.tsx │ │ │ └── metrics.css │ │ ├── NavList │ │ │ ├── NavList.tsx │ │ │ └── navlist.css │ │ ├── NewBannerLogo │ │ │ ├── NewBannerLogo.css │ │ │ └── NewBannerLogo.tsx │ │ ├── News │ │ │ ├── News.tsx │ │ │ └── news.css │ │ ├── Shift │ │ │ ├── OffShift.css │ │ │ ├── OffShift.tsx │ │ │ ├── Shift.tsx │ │ │ └── shift.css │ │ ├── Task │ │ │ ├── Task.tsx │ │ │ └── task.css │ │ ├── TeamMember │ │ │ ├── TeamMember.tsx │ │ │ └── teamMember.css │ │ ├── TellUs │ │ │ ├── TellUs.tsx │ │ │ └── tellUs.css │ │ └── WorkingNow │ │ │ ├── WorkingNow.tsx │ │ │ └── workingNow.css │ ├── index.tsx │ ├── links.tsx │ ├── react-app-env.d.ts │ ├── serviceWorker.ts │ ├── services │ │ ├── authService.tsx │ │ └── serviceApi.tsx │ └── strings .tsx └── tsconfig.json ├── Manifest ├── color.png ├── manifest.json └── outline.png ├── README.md └── SampleHubApi ├── .gitattributes ├── .gitignore ├── ConfigureSwaggerOptions.cs ├── Controllers └── SampleHubDataController.cs ├── Helpers ├── AuthenticationHelper.cs ├── AuthorizedApiControllerBase.cs ├── ExceptionExtension.cs ├── GraphHelper.cs ├── SharePointHelper.cs ├── TableStorageHelper.cs └── VersioningExtension.cs ├── Interfaces ├── IGraph.cs ├── ISharePoint.cs └── ITableStorage.cs ├── Models ├── CompanyCommunicatorTableData.cs ├── News.cs ├── TeamMemberDetails.cs ├── TeamMembers.cs ├── TeamsConfiguration.cs └── TokenResponse.cs ├── Program.cs ├── SampleHubApi.csproj ├── SampleHubApi.sln ├── Settings.StyleCop ├── Startup.cs ├── appsettings.Development.json └── appsettings.json /Champion Management Platform/.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # change these settings to your own preference 11 | indent_style = space 12 | indent_size = 2 13 | 14 | # we recommend you to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | 23 | [{package,bower}.json] 24 | indent_style = space 25 | indent_size = 2 -------------------------------------------------------------------------------- /Champion Management Platform/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | 6 | # Dependency directories 7 | node_modules 8 | 9 | # Build generated files 10 | dist 11 | lib 12 | temp 13 | # Coverage directory used by tools like istanbul 14 | coverage 15 | 16 | # OSX 17 | .DS_Store 18 | 19 | # Visual Studio files 20 | .ntvs_analysis.dat 21 | .vs 22 | bin 23 | obj 24 | 25 | # Resx Generated Code 26 | *.resx.ts 27 | 28 | # Styles Generated Code 29 | *.scss.ts 30 | -------------------------------------------------------------------------------- /Champion Management Platform/.yo-rc.json: -------------------------------------------------------------------------------- 1 | { 2 | "@microsoft/generator-sharepoint": { 3 | "isCreatingSolution": true, 4 | "environment": "spo", 5 | "version": "1.9.1", 6 | "libraryName": "clb", 7 | "libraryId": "5099a3ef-113f-4baf-bb6a-a73b1dd286f8", 8 | "packageManager": "npm", 9 | "isDomainIsolated": false, 10 | "componentType": "webpart" 11 | } 12 | } -------------------------------------------------------------------------------- /Champion Management Platform/Images/APIAccess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/APIAccess.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/AddChampion_msg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/AddChampion_msg.jpg -------------------------------------------------------------------------------- /Champion Management Platform/Images/AddMember_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/AddMember_small.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/AddTab_ChampionAdd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/AddTab_ChampionAdd.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/AddTab_Teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/AddTab_Teams.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Admin_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Admin_menu.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Admin_menu2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Admin_menu2.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Admin_menu3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Admin_menu3.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Admin_menu4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Admin_menu4.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/AppCatalog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/AppCatalog.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/AppCatalog2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/AppCatalog2.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/AppCatalog3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/AppCatalog3.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/AppCatalog4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/AppCatalog4.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Champion_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Champion_small.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Deploy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Deploy.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Digitalbadge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Digitalbadge.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/EmpView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/EmpView.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Leaderboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Leaderboard.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/QuickGuide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/QuickGuide.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Siteconfig1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Siteconfig1.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Siteconfig2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Siteconfig2.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Siteconfig3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Siteconfig3.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/SyncToTeams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/SyncToTeams.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/Teams_Tab.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Teams_Tab.jpg -------------------------------------------------------------------------------- /Champion Management Platform/Images/Warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/Warning.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/WarningId.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/WarningId.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/WelcomeCMP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/WelcomeCMP.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/banner.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/customization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/customization.png -------------------------------------------------------------------------------- /Champion Management Platform/Images/sitePerms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Images/sitePerms.png -------------------------------------------------------------------------------- /Champion Management Platform/Manifest/icon-color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Manifest/icon-color.png -------------------------------------------------------------------------------- /Champion Management Platform/Manifest/icon-outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/Manifest/icon-outline.png -------------------------------------------------------------------------------- /Champion Management Platform/Manifest/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.5/MicrosoftTeams.schema.json", 3 | "manifestVersion": "1.5", 4 | "id": "4316fda6-f0ed-4690-a2cc-68114a09f406", //manifestid should not be changed 5 | "version": "1.0.1", 6 | "packageName": "net.sharepoint.championsboard", 7 | "developer": { 8 | "name": "Microsoft", 9 | "websiteUrl": "https://www.microsoft.com", 10 | "privacyUrl": "https://privacy.microsoft.com/privacystatement", 11 | "termsOfUseUrl": "https://www.microsoft.com/servicesagreement", 12 | "mpnId": "1234567890" 13 | }, 14 | "name": { 15 | "short": "Champion Management Platform", 16 | "full": "Champion Management Platform Program" 17 | }, 18 | "description": { 19 | "short": "Champion Management Platform for Teamwork Champions", 20 | "full": "The Champion Management Platform for the Teamwork Champions program enables you to 'claim' your digital badge by overlaying it on top of your existing profile picture." 21 | }, 22 | "icons": { 23 | "outline": "icon-outline.png", 24 | "color": "icon-color.png" 25 | }, 26 | "accentColor": "#D85028", 27 | 28 | "configurableTabs": [ 29 | { 30 | "configurationUrl": "https://{{TenantName}}.sharepoint.com/_layouts/15/TeamsLogon.aspx?SPFX=true&dest=/sites/{{SiteName}}/_layouts/15/teamshostedapp.aspx%3FopenPropertyPane=true%26teams%26componentId=6df47bd5-d84a-41ab-8c4a-9352076e8b6c%26forceLocale={locale}",//Component id should not be changed 31 | "canUpdateConfiguration": true, 32 | "scopes": [ 33 | "team" 34 | ] 35 | 36 | } 37 | ], 38 | "validDomains": [ "m365x976425.sharepoint.com"], 39 | "webApplicationInfo": { 40 | "resource": "https://{{TenantName}}.sharepoint.com", 41 | "id": "00000003-0000-0ff1-ce00-000000000000" 42 | } 43 | 44 | } -------------------------------------------------------------------------------- /Champion Management Platform/config/config.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json", 3 | "version": "2.0", 4 | "bundles": { 5 | "clb-home-web-part": { 6 | "components": [ 7 | { 8 | "entrypoint": "./lib/webparts/clbHome/ClbHomeWebPart.js", 9 | "manifest": "./src/webparts/clbHome/ClbHomeWebPart.manifest.json" 10 | } 11 | ] 12 | } 13 | }, 14 | "externals": {}, 15 | "localizedResources": { 16 | "ClbHomeWebPartStrings": "lib/webparts/clbHome/loc/{locale}.js", 17 | "ControlStrings": "node_modules/@pnp/spfx-controls-react/lib/loc/{locale}.js", 18 | "PropertyControlStrings": "node_modules/@pnp/spfx-property-controls/lib/loc/{locale}.js" 19 | } 20 | } -------------------------------------------------------------------------------- /Champion Management Platform/config/copy-assets.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/copy-assets.schema.json", 3 | "deployCdnPath": "temp/deploy" 4 | } 5 | -------------------------------------------------------------------------------- /Champion Management Platform/config/deploy-azure-storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json", 3 | "workingDir": "./temp/deploy/", 4 | "account": "", 5 | "container": "clb", 6 | "accessKey": "" 7 | } -------------------------------------------------------------------------------- /Champion Management Platform/config/package-solution.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json", 3 | "solution": { 4 | "name": "championmanagement", 5 | "id": "5099a3ef-113f-4baf-bb6a-a73b1dd286f8", 6 | "version": "1.0.0.0", 7 | "includeClientSideAssets": true, 8 | "skipFeatureDeployment": true, 9 | "isDomainIsolated": false,"developer": { 10 | "name": "", 11 | "websiteUrl": "", 12 | "privacyUrl": "", 13 | "termsOfUseUrl": "", 14 | "mpnId": "" 15 | } 16 | ,"webApiPermissionRequests": [ 17 | { 18 | "resource": "Microsoft Graph", 19 | "scope": "User.ReadWrite" 20 | }, 21 | { 22 | "resource": "Microsoft Graph", 23 | "scope": "Sites.ReadWrite.All" 24 | }, 25 | { 26 | "resource": "Microsoft Graph", 27 | "scope": "Sites.Manage.All" 28 | } 29 | ] 30 | 31 | }, 32 | "paths": { 33 | "zippedPackage": "solution/cmp.sppkg" 34 | } 35 | 36 | 37 | } 38 | -------------------------------------------------------------------------------- /Champion Management Platform/config/serve.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json", 3 | "port": 4321, 4 | "https": true, 5 | "initialPage": "https://localhost:5432/workbench", // Will be generated as part of SpFx webpart 6 | "api": { 7 | "port": 5432, 8 | "entryPath": "node_modules/@microsoft/sp-webpart-workbench/lib/api/" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Champion Management Platform/config/write-manifests.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json", 3 | "cdnBasePath": "" 4 | } -------------------------------------------------------------------------------- /Champion Management Platform/gulpfile.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const gulp = require('gulp'); 4 | const build = require('@microsoft/sp-build-web'); 5 | build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`); 6 | 7 | build.initialize(gulp); 8 | -------------------------------------------------------------------------------- /Champion Management Platform/sharepoint/solution/ChampionManagementPlatform_Package.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/sharepoint/solution/ChampionManagementPlatform_Package.zip -------------------------------------------------------------------------------- /Champion Management Platform/src/index.ts: -------------------------------------------------------------------------------- 1 | // A file is required to be in the root of the /src directory by the TypeScript compiler 2 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/ClbHomeWebPart.manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-web-part-manifest.schema.json", 3 | "id": "6df47bd5-d84a-41ab-8c4a-9352076e8b6c", // SpFx component id should not be changed it is reference across the deployment 4 | "alias": "CMPHomeWebPart", 5 | "componentType": "WebPart", 6 | "version": "*", 7 | "manifestVersion": 2, 8 | "requiresCustomScript": false, 9 | "supportedHosts": ["SharePointWebPart","TeamsTab","SharePointFullPage"], 10 | "preconfiguredEntries": [{ 11 | "groupId": "5c03119e-3074-46fd-976b-c60198311f70", // Share SpFx generated groupid. It should not be changed 12 | "group": { "default": "Other" }, 13 | "title": { "default": "Champion Management Platform" }, 14 | "description": { "default": "CMP Home webpart" }, 15 | "officeFabricIconFontName": "Page", 16 | "properties": { 17 | "description": "Champion Management Platform" 18 | } 19 | }] 20 | } 21 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/ClbHomeWebPart.ts: -------------------------------------------------------------------------------- 1 | import * as React from "react"; 2 | import * as ReactDom from "react-dom"; 3 | import { 4 | BaseClientSideWebPart, 5 | IPropertyPaneConfiguration, 6 | PropertyPaneTextField, 7 | } from "@microsoft/sp-webpart-base"; 8 | 9 | import * as strings from "ClbHomeWebPartStrings"; 10 | import ClbHome from "./components/ClbHome"; 11 | import { IClbHomeProps } from "./components/IClbHomeProps"; 12 | 13 | export interface IClbHomeWebPartProps { 14 | description: string; 15 | } 16 | export default class ClbHomeWebPart extends BaseClientSideWebPart { 17 | public render(): void { 18 | const element: React.ReactElement = React.createElement( 19 | ClbHome, 20 | { 21 | description: this.properties.description, 22 | context: this.context, 23 | // passing siteUrl here for mutlti tenant. 24 | siteUrl: this.context.pageContext.web.absoluteUrl.replace( 25 | this.context.pageContext.web.serverRelativeUrl, 26 | "" 27 | ), 28 | } 29 | ); 30 | 31 | ReactDom.render(element, this.domElement); 32 | } 33 | 34 | protected onDispose(): void { 35 | ReactDom.unmountComponentAtNode(this.domElement); 36 | } 37 | 38 | // you can edit property pane based on requriments 39 | protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration { 40 | return { 41 | pages: [ 42 | { 43 | header: { 44 | description: strings.PropertyPaneDescription, 45 | }, 46 | groups: [ 47 | { 48 | groupName: strings.BasicGroupName, 49 | groupFields: [ 50 | PropertyPaneTextField("description", { 51 | label: strings.DescriptionFieldLabel, 52 | }), 53 | ], 54 | }, 55 | ], 56 | }, 57 | ], 58 | }; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/Location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/Location.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/Preloader_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/Preloader_2.gif -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/addmember.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/addmember.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/appbanner648.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/appbanner648.jpg -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/badge-strip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/badge-strip.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/badge648.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/badge648.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/champion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/champion.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/digitalbadge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/digitalbadge.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/icon.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/leaderboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/leaderboard.jpg -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/list.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/list.jpg -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/loader.gif -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/mslogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/mslogo.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/noimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/noimage.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/noprofile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/noprofile.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/images/top-strip-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/assets/images/top-strip-icon.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/stylesheets/components/_DigitalBadge.scss: -------------------------------------------------------------------------------- 1 | @import "../../../../../../node_modules/office-ui-fabric-react/dist/sass/_References.scss"; 2 | 3 | .DigitalBadge { 4 | .container { 5 | max-width: 700px; 6 | margin: 0px auto; 7 | text-align: center; 8 | box-shadow: 0px 0px 4px 0px rgba(0, 0, 0, 0.2), 0px 0px 50px 0px rgba(0, 0, 0, 0.1); 9 | } 10 | .contentSection { 11 | padding: 10px; 12 | .bannerimage { 13 | max-width: 100%; 14 | } 15 | } 16 | 17 | .row { 18 | @include ms-Grid-row; 19 | padding: 20px; 20 | } 21 | 22 | .column { 23 | @include ms-Grid-col; 24 | @include ms-sm12; 25 | } 26 | 27 | .title { 28 | @include ms-font-xxl; 29 | } 30 | 31 | .description { 32 | @include ms-font-l; 33 | line-height: 1.5; 34 | strong { 35 | font-weight: 600; 36 | } 37 | } 38 | 39 | .profileContainer { 40 | position: relative; 41 | margin-top: 32px; 42 | 43 | #profileImage { 44 | display: block; 45 | margin: 0 auto; 46 | border-radius: 50%; 47 | } 48 | 49 | #badgeImage { 50 | @extend #profileImage; 51 | } 52 | .profiletext { 53 | position: absolute; 54 | z-index: 999; 55 | margin: 0 auto; 56 | left: 0; 57 | right: 0; 58 | top: 40%; 59 | text-align: center; 60 | /* width: 69%; */ 61 | font-size: 32px; 62 | } 63 | } 64 | 65 | .applySpinnerContainer { 66 | margin-top: 32px; 67 | } 68 | 69 | .messagingContainer { 70 | @extend .applySpinnerContainer; 71 | [class*="ms-MessageBar-innerText"] { 72 | font-size: 14px; 73 | line-height: 1.5 !important; 74 | } 75 | } 76 | 77 | .buttonContainer { 78 | margin-top: 24px; 79 | 80 | button { 81 | margin: 8px; 82 | .ms-Button-flexContainer{ 83 | .ms-Button-textContainer{ 84 | .ms-Button-description{ 85 | line-height: 1.5!important; 86 | } 87 | } 88 | } 89 | 90 | } 91 | 92 | } 93 | 94 | [id="profileCanvas"] { 95 | display: none; 96 | } 97 | 98 | [id="profileCanvasDownload"] { 99 | @extend [id="profileCanvas"]; 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/stylesheets/components/_all.scss: -------------------------------------------------------------------------------- 1 | @import 'DigitalBadge'; -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/assets/stylesheets/main.scss: -------------------------------------------------------------------------------- 1 | @import 'components/all'; -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/components/Header.tsx: -------------------------------------------------------------------------------- 1 | import React, { Component } from "react"; 2 | import "bootstrap/dist/css/bootstrap.min.css"; 3 | import styles from "../scss/ClbHome.module.scss"; 4 | import Navbar from "react-bootstrap/Navbar"; 5 | 6 | interface IHeaderProps { 7 | showSearch: boolean; 8 | clickcallback: () => void; //will redirects to home 9 | } 10 | export default class Header extends Component { 11 | constructor(_props: any) { 12 | super(_props); 13 | this.homeRedirect = this.homeRedirect.bind(this); 14 | } 15 | public homeRedirect() { 16 | this.props.clickcallback(); 17 | } 18 | public render() { 19 | return ( 20 | 21 | 22 | mslogo 30 | Champion Management Platform 31 | 32 | 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/components/IClbHomeProps.ts: -------------------------------------------------------------------------------- 1 | import { WebPartContext } from "@microsoft/sp-webpart-base"; 2 | export interface IClbHomeProps { 3 | context: WebPartContext; 4 | description: string; 5 | siteUrl: string; 6 | } 7 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/components/TeamsBaseComponent.tsx: -------------------------------------------------------------------------------- 1 | import * as React from 'react'; 2 | import { render } from 'react-dom'; 3 | import { ThemeStyle, ITeamsComponentProps, ITeamsComponentState } from 'msteams-ui-components-react'; 4 | 5 | /** 6 | * State interface for the Teams Base user interface React component 7 | */ 8 | export interface ITeamsBaseComponentState extends ITeamsComponentState { 9 | fontSize: number; 10 | theme: ThemeStyle; 11 | badgeImgURL: string; 12 | } 13 | 14 | /** 15 | * Properties interface for the Teams Base user interface React component 16 | */ 17 | export interface ITeamsBaseComponentProps extends ITeamsComponentProps { 18 | } 19 | 20 | /** 21 | * Base implementation of the React based interface for the Microsoft Teams app 22 | */ 23 | export class TeamsBaseComponent

24 | extends React.Component { 25 | constructor(props: P, state: S) { 26 | super(props, state); 27 | } 28 | 29 | public static render

(element: HTMLElement, props: P) { 30 | render(React.createElement(this, props), element); 31 | } 32 | 33 | protected pageFontSize = () => { 34 | let sizeStr = window.getComputedStyle(document.getElementsByTagName('html')[0]).getPropertyValue('font-size'); 35 | sizeStr = sizeStr.replace('px', ''); 36 | let fontSize = parseInt(sizeStr, 10); 37 | if (!fontSize) { 38 | fontSize = 16; 39 | } 40 | return fontSize; 41 | } 42 | protected inTeams = () => { 43 | try { 44 | return window.self !== window.top; 45 | } catch (e) { 46 | return true; 47 | } 48 | } 49 | 50 | protected updateTheme = (themeStr: any) => { 51 | let theme; 52 | switch (themeStr) { 53 | case 'dark': 54 | theme = ThemeStyle.Dark; 55 | break; 56 | case 'contrast': 57 | theme = ThemeStyle.HighContrast; 58 | break; 59 | default: 60 | theme = ThemeStyle.Light; 61 | } 62 | this.setState({ theme }); 63 | } 64 | 65 | protected getQueryVariable = (variable: any) => { 66 | const query = window.location.search.substring(1); 67 | const vars = query.split('&'); 68 | for (const varPairs of vars) { 69 | const pair = varPairs.split('='); 70 | if (decodeURIComponent(pair[0]) === variable) { 71 | return decodeURIComponent(pair[1]); 72 | } 73 | } 74 | return null; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/config/siteconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "inclusionPath": "sites", 3 | "sitename": "ChampionManagementPlatform", 4 | "lists": [ 5 | { 6 | "listName": "Member List", 7 | "columns": [ 8 | { 9 | "name": "FirstName", 10 | "type": "text" 11 | }, 12 | { 13 | "name": "LastName", 14 | "type": "text" 15 | }, 16 | { 17 | "name": "Region", 18 | "type": "choice" 19 | }, 20 | { 21 | "name": "Country", 22 | "type": "choice" 23 | }, 24 | { 25 | "name": "Role", 26 | "type": "choice" 27 | }, 28 | { 29 | "name": "Status", 30 | "type": "choice" 31 | }, 32 | { 33 | "name": "FocusArea", 34 | "type": "choice" 35 | }, 36 | { 37 | "name": "Group", 38 | "type": "choice" 39 | } 40 | ] 41 | }, 42 | { 43 | "listName": "Events List", 44 | "columns": [ 45 | { 46 | "name": "Points", 47 | "type": "number" 48 | }, 49 | { 50 | "name": "Description", 51 | "type": "choice" 52 | }, 53 | { 54 | "name": "IsActive", 55 | "type": "boolean" 56 | } 57 | ] 58 | }, 59 | { 60 | "listName": "Event Track Details", 61 | "columns": [ 62 | { 63 | "name": "MemberId", 64 | "type": "number" 65 | }, 66 | { 67 | "name": "EventId", 68 | "type": "number" 69 | }, 70 | { 71 | "name": "Count", 72 | "type": "number" 73 | }, 74 | { 75 | "name": "DateofEvent", 76 | "type": "dateTime" 77 | } 78 | ] 79 | } 80 | ], 81 | "eventsMasterData": [ 82 | { 83 | "Title": "Event Moderator", 84 | "Points": 10, 85 | "Description": "Event Moderator" 86 | }, 87 | { 88 | "Title": "Office Hours", 89 | "Points": 10, 90 | "Description": "Office Hours" 91 | }, 92 | { 93 | "Title": "Blogs", 94 | "Points": 10, 95 | "Description": "Blogs" 96 | }, 97 | { 98 | "Title": "Training", 99 | "Points": 10, 100 | "Description": "Training" 101 | } 102 | ] 103 | } 104 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/1.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/2.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/3.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/4.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/5.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/6.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/Location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/Location.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/PersonPlaceholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/PersonPlaceholder.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/addmember.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/addmember.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/badge-strip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/badge-strip.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/champion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/champion.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/digitalbadge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/digitalbadge.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/leaderboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/leaderboard.jpg -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/list.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/list.jpg -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/mslogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/mslogo.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/imgs/top-strip-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/src/webparts/clbHome/imgs/top-strip-icon.png -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/loc/en-us.js: -------------------------------------------------------------------------------- 1 | define([], function() { 2 | return { 3 | "PropertyPaneDescription": "Description", 4 | "BasicGroupName": "Group Name", 5 | "DescriptionFieldLabel": "Description Field" 6 | } 7 | }); -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/loc/mystrings.d.ts: -------------------------------------------------------------------------------- 1 | declare interface IClbHomeWebPartStrings { 2 | PropertyPaneDescription: string; 3 | BasicGroupName: string; 4 | DescriptionFieldLabel: string; 5 | } 6 | 7 | declare module 'ClbHomeWebPartStrings' { 8 | const strings: IClbHomeWebPartStrings; 9 | export = strings; 10 | } 11 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/models/IProfileImage.ts: -------------------------------------------------------------------------------- 1 | export default interface IProfileImage { 2 | url: string; 3 | width: number; 4 | } 5 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/scss/Championview.scss: -------------------------------------------------------------------------------- 1 | .Championview { 2 | .main { 3 | width: 100%; 4 | height: 100%; 5 | background-color: rgba(158, 187, 208, 0.5); 6 | .ag-theme-alpine > div > div { 7 | background-color: rgba(158, 187, 208, 0.5); 8 | } 9 | .loader { 10 | border: 16px solid #dde2eb; 11 | border-radius: 50%; 12 | border-top: 10px solid #3498db; 13 | width: 120px; 14 | height: 120px; 15 | -webkit-animation: spin 2s linear infinite; /* Safari */ 16 | animation: spin 2s linear infinite; 17 | margin: auto; 18 | top: 25%; 19 | transform: translate(-50%, -50%); 20 | position: relative; 21 | } 22 | 23 | /* Safari */ 24 | @-webkit-keyframes spin { 25 | 0% { 26 | -webkit-transform: rotate(0deg); 27 | } 28 | 100% { 29 | -webkit-transform: rotate(360deg); 30 | } 31 | } 32 | 33 | @keyframes spin { 34 | 0% { 35 | transform: rotate(0deg); 36 | } 37 | 100% { 38 | transform: rotate(360deg); 39 | } 40 | } 41 | } 42 | .cv { 43 | color: #163655; 44 | text-align: center; 45 | font-size: 20px; 46 | padding: 1rem 0; 47 | font-weight: bold; 48 | } 49 | .cvW { 50 | width: 100%; 51 | } 52 | .form-fields { 53 | width: auto; 54 | height: auto; 55 | background-color: #163655; 56 | border-radius: 6px; 57 | // margin: 1rem 2rem; 58 | color: whitesmoke; 59 | .form-data { 60 | padding: 2rem; 61 | } 62 | } 63 | .cb { 64 | background-color: rgba(158, 187, 208, 0.5); 65 | .float-end { 66 | float: right; 67 | margin: 1rem 0; 68 | .ms-Button-flexContainer { 69 | height: auto !important; 70 | } 71 | } 72 | .MuiDataGrid-root .MuiDataGrid-columnsContainer { 73 | background-color: darkslategrey; 74 | color: white; 75 | } 76 | } 77 | .cursor { 78 | cursor: pointer; 79 | background-color: #464775; 80 | color: white; 81 | } 82 | 83 | /* width */ 84 | ::-webkit-scrollbar { 85 | width: 5px; 86 | height: 5px; 87 | } 88 | 89 | /* Track */ 90 | ::-webkit-scrollbar-track { 91 | background: #f1f1f1; 92 | } 93 | 94 | /* Handle */ 95 | ::-webkit-scrollbar-thumb { 96 | background: #888; 97 | } 98 | 99 | /* Handle on hover */ 100 | ::-webkit-scrollbar-thumb:hover { 101 | background: #555; 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/scss/ClbAddMember.scss: -------------------------------------------------------------------------------- 1 | .ClbAddMember { 2 | .members { 3 | height: 24px; 4 | width: 80px; 5 | color: #000; 6 | font-family: "Segoe UI"; 7 | font-size: 18px; 8 | font-weight: 700; 9 | line-height: 24px; 10 | } 11 | .heading { 12 | margin-top: 30px; 13 | } 14 | .addInput { 15 | margin-top: 5px; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/scss/ClbHome.module.scss: -------------------------------------------------------------------------------- 1 | .clbHome { 2 | .container { 3 | height: 100%; 4 | width: 100%; 5 | .navbg { 6 | background-color: #3354ff; 7 | padding: 0 !important; 8 | .white { 9 | color: white !important; 10 | font-size: 16px; 11 | } 12 | } 13 | .imgheader { 14 | background: url("../assets/images/champion.png"); 15 | background-color: #333333; 16 | height: 300px; 17 | width: auto; 18 | background-size: 220px; 19 | background-repeat: no-repeat; 20 | background-position: right; 21 | h2 { 22 | // text-align: center; 23 | color: whitesmoke; 24 | font-weight: 600; 25 | padding: 6rem 4rem 0 4rem; 26 | } 27 | h3 { 28 | // text-align: center; 29 | color: #b3a7a7; 30 | font-weight: 500; 31 | padding: 0 4rem; 32 | } 33 | } 34 | .box { 35 | height: 5px; 36 | width: auto; 37 | margin: 2rem; 38 | margin-bottom: 1rem; 39 | background-color: #39f; 40 | } 41 | .grid { 42 | margin: 0 2rem; 43 | .quickguide { 44 | font-size: 20px; 45 | font-weight: 600; 46 | margin-bottom: 2rem; 47 | } 48 | .cursor { 49 | cursor: pointer; 50 | .dashboardimgs { 51 | height: 150px; 52 | width: auto; 53 | position: relative; 54 | } 55 | .center { 56 | text-align: center; 57 | } 58 | } 59 | #list { 60 | font-size: 20px; 61 | vertical-align: middle; 62 | } 63 | .mb { 64 | align-self: center; 65 | text-transform: capitalize; 66 | margin: 0 auto; 67 | } 68 | .margintop { 69 | margin-top: 3rem; 70 | } 71 | #badge { 72 | font-size: 20px; 73 | vertical-align: middle; 74 | } 75 | #addmembers { 76 | font-size: 20px; 77 | vertical-align: middle; 78 | } 79 | } 80 | } 81 | .load { 82 | border: 16px solid #dde2eb; 83 | border-radius: 50%; 84 | border-top: 10px solid #3498db; 85 | width: 120px; 86 | height: 120px; 87 | -webkit-animation: spin 2s linear infinite; 88 | animation: spin 2s linear infinite; 89 | margin: auto; 90 | left: 0; 91 | right: 0; 92 | top: 0; 93 | bottom: 0; 94 | position: fixed; 95 | } 96 | @keyframes spin { 97 | 0% { 98 | transform: rotate(0deg); 99 | } 100 | 100% { 101 | transform: rotate(360deg); 102 | } 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/scss/DigitalBadge.module.scss: -------------------------------------------------------------------------------- 1 | @import '~office-ui-fabric-react/dist/sass/References.scss'; 2 | 3 | .digitalBadge { 4 | .container { 5 | max-width: 700px; 6 | margin: 0px auto; 7 | box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1); 8 | } 9 | 10 | .row { 11 | @include ms-Grid-row; 12 | @include ms-fontColor-white; 13 | background-color: $ms-color-themeDark; 14 | padding: 20px; 15 | } 16 | 17 | .column { 18 | @include ms-Grid-col; 19 | @include ms-lg10; 20 | @include ms-xl8; 21 | @include ms-xlPush2; 22 | @include ms-lgPush1; 23 | } 24 | 25 | .title { 26 | @include ms-font-xl; 27 | @include ms-fontColor-white; 28 | } 29 | 30 | .subTitle { 31 | @include ms-font-l; 32 | @include ms-fontColor-white; 33 | } 34 | 35 | .description { 36 | @include ms-font-l; 37 | @include ms-fontColor-white; 38 | } 39 | 40 | .button { 41 | // Our button 42 | text-decoration: none; 43 | height: 32px; 44 | 45 | // Primary Button 46 | min-width: 80px; 47 | background-color: $ms-color-themePrimary; 48 | border-color: $ms-color-themePrimary; 49 | color: $ms-color-white; 50 | 51 | // Basic Button 52 | outline: transparent; 53 | position: relative; 54 | font-family: "Segoe UI WestEuropean","Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",sans-serif; 55 | -webkit-font-smoothing: antialiased; 56 | font-size: $ms-font-size-m; 57 | font-weight: $ms-font-weight-regular; 58 | border-width: 0; 59 | text-align: center; 60 | cursor: pointer; 61 | display: inline-block; 62 | padding: 0 16px; 63 | 64 | .label { 65 | font-weight: $ms-font-weight-semibold; 66 | font-size: $ms-font-size-m; 67 | height: 32px; 68 | line-height: 32px; 69 | margin: 0 4px; 70 | vertical-align: top; 71 | display: inline-block; 72 | } 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Champion Management Platform/src/webparts/clbHome/scss/Employeeview.scss: -------------------------------------------------------------------------------- 1 | .Employeeview { 2 | .main { 3 | width: 100vw; 4 | min-height: 100vh; 5 | background-color: rgba(158, 187, 208, 0.5); 6 | .search { 7 | margin: 1rem 2rem; 8 | } 9 | .gtc-cards { 10 | margin: 1rem 2rem; 11 | .cards { 12 | width: 145px; 13 | height: 161px; 14 | background-color: #828282; 15 | box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3), 0 6px 6px rgba(0, 0, 0, 0.3); 16 | margin: 1.2rem 0.7rem; 17 | border-radius: 6px; 18 | img { 19 | display: block; 20 | position: relative; 21 | float: right; 22 | } 23 | .profile-img { 24 | margin: -2rem 3rem; 25 | height: 48px; 26 | width: 48px; 27 | border-radius: 50%; 28 | } 29 | .rank { 30 | position: relative; 31 | top: 12%; 32 | left: 74%; 33 | transform: translate(0%, 0%); 34 | font-size: larger; 35 | font-weight: bold; 36 | color: white; 37 | } 38 | .gtc-name2 { 39 | text-align: center; 40 | color: white; 41 | margin-top: 6.4rem; 42 | font-weight: 600; 43 | width: auto; 44 | overflow: hidden; 45 | text-overflow: ellipsis; 46 | white-space: nowrap; 47 | padding: 0 0.5rem; 48 | } 49 | .gtc-name { 50 | text-align: center; 51 | margin-top: 0.2rem; 52 | color: white; 53 | margin-top: 6.4rem; 54 | font-weight: 600; 55 | width: auto; 56 | overflow: hidden; 57 | text-overflow: ellipsis; 58 | white-space: nowrap; 59 | padding: 0 0.5rem; 60 | } 61 | 62 | .chat-icon, 63 | .mail-icon { 64 | display: inline-flex; 65 | position: relative; 66 | float: left; 67 | margin: 0 1rem; 68 | cursor: pointer; 69 | & { 70 | color: white; 71 | font-size: 20px; 72 | } 73 | } 74 | .mail-icon { 75 | float: right; 76 | & { 77 | color: white; 78 | font-size: 20px; 79 | } 80 | } 81 | } 82 | } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /Champion Management Platform/teams/6df47bd5-d84a-41ab-8c4a-9352076e8b6c_color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/teams/6df47bd5-d84a-41ab-8c4a-9352076e8b6c_color.png -------------------------------------------------------------------------------- /Champion Management Platform/teams/6df47bd5-d84a-41ab-8c4a-9352076e8b6c_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/Champion Management Platform/teams/6df47bd5-d84a-41ab-8c4a-9352076e8b6c_outline.png -------------------------------------------------------------------------------- /Champion Management Platform/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./node_modules/@microsoft/rush-stack-compiler-2.9/includes/tsconfig-web.json", 3 | "compilerOptions": { 4 | "target": "es5", 5 | "forceConsistentCasingInFileNames": true, 6 | "module": "esnext", 7 | "moduleResolution": "node", 8 | "jsx": "react", 9 | "declaration": true, 10 | "sourceMap": true, 11 | "experimentalDecorators": true, 12 | "skipLibCheck": true, 13 | "outDir": "lib", 14 | "inlineSources": false, 15 | "strictNullChecks": false, 16 | "noUnusedLocals": false, 17 | "resolveJsonModule": true, 18 | "allowSyntheticDefaultImports": true, 19 | "typeRoots": [ 20 | "./node_modules/@types", 21 | "./node_modules/@microsoft" 22 | ], 23 | "types": [ 24 | "es6-promise", 25 | "webpack-env" 26 | ], 27 | "lib": [ 28 | "es5", 29 | "dom", 30 | "es2015.collection" 31 | ] 32 | }, 33 | "include": [ 34 | "src/**/*.ts" 35 | ], 36 | "exclude": [ 37 | "node_modules", 38 | "lib" 39 | ] 40 | } 41 | -------------------------------------------------------------------------------- /Champion Management Platform/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "@microsoft/sp-tslint-rules/base-tslint.json", 3 | "rules": { 4 | "class-name": false, 5 | "export-name": false, 6 | "forin": false, 7 | "label-position": false, 8 | "member-access": true, 9 | "no-arg": false, 10 | "no-console": false, 11 | "no-construct": false, 12 | "no-duplicate-variable": true, 13 | "no-eval": false, 14 | "no-function-expression": true, 15 | "no-internal-module": true, 16 | "no-shadowed-variable": true, 17 | "no-switch-case-fall-through": true, 18 | "no-unnecessary-semicolons": true, 19 | "no-unused-expression": true, 20 | "no-use-before-declare": true, 21 | "no-with-statement": true, 22 | "semicolon": true, 23 | "trailing-comma": false, 24 | "typedef": false, 25 | "typedef-whitespace": false, 26 | "use-named-parameter": true, 27 | "variable-name": false, 28 | "whitespace": false 29 | } 30 | } -------------------------------------------------------------------------------- /M365 Learning Pathways/.vs/ProjectSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "CurrentProjectSetting": null 3 | } -------------------------------------------------------------------------------- /M365 Learning Pathways/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Microsoft Teams 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | 24 | -------------------------------------------------------------------------------- /M365 Learning Pathways/README.md: -------------------------------------------------------------------------------- 1 | # Tools for Microsoft Teams 2 | Templates and tools from Microsoft Teams and our partner groups for open use in the community. 3 | 4 | # Item 5 | 6 | M365 Learning Pathways "Get Started" app for Microsoft Teams 7 | v1.7.3 June 2020 8 | 9 | # Summary 10 | 11 | Integrate Microsoft 365 Learning Pathways custom training solution into Microsoft Teams with this app template. This app will require the installation of M365 Learning Pathways free training solution and to edit the default files with your particular site URL's prior to installation. 12 | 13 | # Instructions 14 | 15 | Download the Zip file to your environment and unzip 16 | You will need to edit the JSON file to update the placeholder URL's to URL's from your environment 17 | Additional URL's separate from the Microsoft 365 Learning Pathways site can be included. Consider including your main intranet, IT support or help desk pages. 18 | You may change the app name from Getting Started to any other title that is more aligned with your organization within the JSON file 19 | You may change the app icons from the default Microsoft icon by replacing the color.png and outline.png files in the package 20 | 21 | When you are done with these edits you will need to rezip the files again 22 | Follow the instructions for uploading a custom app to Microsoft Teams here: https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deploy-and-publish/apps-upload 23 | 24 | Further reference for modern SharePoint page embedding can be found here: 25 | https://docs.microsoft.com/sharepoint/dev/features/embed-pages-to-teams 26 | 27 | # Questions and Issues 28 | 29 | For questions or issues please file an issue within this repo and our team and the community will respond as we are available. This repo does not have a response SLA. 30 | 31 | # Open Source 32 | 33 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 34 | 35 | # Disclaimer 36 | 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. 37 | -------------------------------------------------------------------------------- /M365 Learning Pathways/getstartedapp/GettingStarted.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/M365 Learning Pathways/getstartedapp/GettingStarted.zip -------------------------------------------------------------------------------- /M365 Learning Pathways/getstartedapp/README.md: -------------------------------------------------------------------------------- 1 | # Get Started App 2 | Demonstration app for M365 Learning Pathways or other SharePoint site integration into Microsoft Teams. View the ReadMe file for installation instructions 3 | 4 | # Questions and Issues 5 | 6 | For questions or issues please file an issue within this repo and our team and the community will respond as we are available. This repo does not have a response SLA. 7 | 8 | # Open Source 9 | 10 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 11 | 12 | # Disclaimer 13 | 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. 14 | -------------------------------------------------------------------------------- /M365 Learning Pathways/getstartedapp/color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/M365 Learning Pathways/getstartedapp/color.png -------------------------------------------------------------------------------- /M365 Learning Pathways/getstartedapp/outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/M365 Learning Pathways/getstartedapp/outline.png -------------------------------------------------------------------------------- /TeamsSampleHub/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Microsoft Teams 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Manifest/color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Manifest/color.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Manifest/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.5/MicrosoftTeams.schema.json", 3 | "manifestVersion": "1.5", 4 | "version": "1.1.1", 5 | "id": "e197a778-9520-4019-9894-7adac76d5397", 6 | "packageName": "com.contoso.helloworld", 7 | "developer": { 8 | "name": "Microsoft", 9 | "websiteUrl": "https://www.microsoft.com", 10 | "privacyUrl": "https://www.microsoft.com/privacy", 11 | "termsOfUseUrl": "https://www.microsoft.com/termsofuse", 12 | "mpnId": "{your mpnID}" 13 | }, 14 | "name": { 15 | "short": "Sample Hub", 16 | "full": "Sample Hub" 17 | }, 18 | "description": { 19 | "short": "Sample Hub", 20 | "full": "The Sample Hub is a personal-branded landing experience that is pinned to the Teams mobile app, allowing your organization to provide consolidated information and the functionality of important first-party and line-of-business apps to firstline worker employees." 21 | }, 22 | "icons": { 23 | "outline": "outline.png", 24 | "color": "color.png" 25 | }, 26 | "accentColor": "#60A18E", 27 | "staticTabs": [ 28 | { 29 | "entityId": "Hub", 30 | "name": "Hub", 31 | "contentUrl": "https://{{appdomain}}.azurewebsites.net", 32 | "scopes": [ "personal" ] 33 | }, 34 | { 35 | "entityId": "Learning", 36 | "name": "Learning", 37 | "contentUrl": "https://{{appdomain}}.azurewebsites.net/learning", 38 | "scopes": [ "personal" ] 39 | } 40 | ], 41 | "permissions": ["identity", "messageTeamMembers"], 42 | "validDomains": [ "*.ngrok.io", 43 | "*.powerapps.com", 44 | "youtu.be", 45 | "*.youtube.com", 46 | "{{appDomain}}.azurewebsites.net", 47 | "token.botframework.com", 48 | "{{spDomain}}.sharepoint.com"], 49 | "webApplicationInfo": { 50 | "id": "{{clientid}}", 51 | "resource": "api://{{appdomain}}.azurewebsites.net/{{clientid}}" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Manifest/outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Manifest/outline.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/BrandHome.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | update your appinsight id 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Brandhome.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29613.14 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BrandHome", "BrandHome.csproj", "{19CA5F31-C51D-47DA-9A95-81703D01E446}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {19CA5F31-C51D-47DA-9A95-81703D01E446}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {19CA5F31-C51D-47DA-9A95-81703D01E446}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {19CA5F31-C51D-47DA-9A95-81703D01E446}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {19CA5F31-C51D-47DA-9A95-81703D01E446}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {C30FBF0B-794A-4C8C-B13D-59BC16283287} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Connected Services/Application Insights/ConnectedService.json: -------------------------------------------------------------------------------- 1 | { 2 | "ProviderId": "Microsoft.ApplicationInsights.ConnectedService.ConnectedServiceProvider", 3 | "Version": "16.0.0.0", 4 | "GettingStartedDocument": { 5 | "Uri": "https://go.microsoft.com/fwlink/?LinkID=798432" 6 | } 7 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Interfaces/IGraph.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Interfaces 6 | { 7 | using System.Threading.Tasks; 8 | using BrandHome.Models; 9 | 10 | ///

11 | /// Graph Interface 12 | /// 13 | public interface IGraph 14 | { 15 | /// 16 | /// Declaration of method 17 | /// 18 | /// TokenResponse instance 19 | /// string type 20 | /// Task string 21 | Task GetPhoto( string userObjectId); 22 | 23 | /// 24 | /// Declaration of method 25 | /// 26 | /// TokenResponse instance 27 | /// task TeamMembers 28 | Task GetTeamMembers(); 29 | 30 | /// 31 | /// Declaration of method 32 | /// 33 | /// User id Token instance 34 | /// task GetAccessTokenOnBehalfUserAsync 35 | Task GetAccessTokenOnBehalfUserAsync(string idToken); 36 | } 37 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Interfaces/ISharePoint.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Interfaces 6 | { 7 | using System.Threading.Tasks; 8 | using BrandHome.Models; 9 | 10 | /// 11 | /// SharePoint Interface 12 | /// 13 | public interface ISharePoint 14 | { 15 | /// 16 | /// Declaration of method. 17 | /// 18 | /// Task string 19 | Task GetAuthenticationToken(); 20 | 21 | /// 22 | /// Declaration of method. 23 | /// 24 | /// Task News 25 | Task GetNewsFromSharePoint(); 26 | } 27 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Interfaces/ITableStorage.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Interfaces 6 | { 7 | using System.Threading.Tasks; 8 | using BrandHome.Models; 9 | 10 | /// 11 | /// Storage table Interface 12 | /// 13 | public interface ITableStorage 14 | { 15 | /// 16 | /// Declaration of method. 17 | /// 18 | /// Task CompanyCommunicatorTableData 19 | Task GetAdaptiveCardAsync(); 20 | } 21 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Models/CompanyCommunicatorTableData.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Models 6 | { 7 | /// 8 | /// Class for accessing storage table 9 | /// 10 | public class CompanyCommunicatorTableData 11 | { 12 | /// 13 | /// Gets or sets Array of storage table records. 14 | /// 15 | public Record[] Value { get; set; } 16 | } 17 | 18 | /// 19 | /// Storage table record. 20 | /// 21 | public class Record 22 | { 23 | /// 24 | /// Gets or sets Storage Table Partition key for company communicator 25 | /// 26 | public string PartitionKey { get; set; } 27 | 28 | /// 29 | /// Gets or sets Storage Table Row key for company communicator 30 | /// 31 | public string RowKey { get; set; } 32 | 33 | /// 34 | /// Gets or sets Adoptive card from storage table 35 | /// 36 | public string Content { get; set; } 37 | 38 | /// 39 | /// Gets or sets Teams channel id where the message is being posted 40 | /// 41 | public string TeamsInString { get; set; } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Models/News.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Models 6 | { 7 | /// 8 | /// News Model 9 | /// 10 | public class News 11 | { 12 | /// 13 | /// Gets or sets SharePoint News component array value 14 | /// 15 | public Value[] Value { get; set; } 16 | } 17 | 18 | /// 19 | /// News item model for SharePoint component 20 | /// 21 | public class Value 22 | { 23 | /// 24 | /// Gets or sets SharePoint News Title 25 | /// 26 | public string Title { get; set; } 27 | 28 | /// 29 | /// Gets or sets SharePoint News Description 30 | /// 31 | public string Description { get; set; } 32 | 33 | /// 34 | /// Gets or sets SharePoint News Link 35 | /// 36 | public string OData__OriginalSourceUrl { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Models/TeamMemberDetails.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Models 6 | { 7 | /// 8 | /// Team members details Model 9 | /// 10 | public class TeamMemberDetails 11 | { 12 | /// 13 | /// Gets or sets AAD User Name 14 | /// 15 | public string GivenName { get; set; } 16 | 17 | /// 18 | /// Gets or sets AAD User's Principal Name 19 | /// 20 | public string UserPrincipalName { get; set; } 21 | 22 | /// 23 | /// Gets or sets AAD User's Job title 24 | /// 25 | public string JobTitle { get; set; } 26 | 27 | /// 28 | /// Gets or sets AAD User profile photo 29 | /// 30 | public string ProfilePhotoUrl { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Models/TeamMembers.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Models 6 | { 7 | /// 8 | /// TeamMembers Model. 9 | /// 10 | public class TeamMembers 11 | { 12 | /// 13 | /// Gets or sets Array of Team members. 14 | /// 15 | public Member[] Value { get; set; } 16 | } 17 | 18 | /// 19 | /// Model for Member. 20 | /// 21 | public class Member 22 | { 23 | /// 24 | /// Gets or sets User's AAD Id. 25 | /// 26 | public string Id { get; set; } 27 | 28 | /// 29 | /// Gets or sets User's AAD given name. 30 | /// 31 | public string GivenName { get; set; } 32 | 33 | /// 34 | /// Gets or sets User's AAD job title. 35 | /// 36 | public string JobTitle { get; set; } 37 | 38 | /// 39 | /// Gets or sets User's AAD user principal name. 40 | /// 41 | public string UserPrincipalName { get; set; } 42 | } 43 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Models/TeamsConfiguration.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Models 6 | { 7 | /// 8 | /// Teams configuration model 9 | /// 10 | public class TeamsConfiguration 11 | { 12 | /// 13 | /// Gets or sets Teams Shifts App Id 14 | /// 15 | public string ShiftsAppId { get; set; } 16 | 17 | /// 18 | /// Gets or sets Teams Tasks App Id 19 | /// 20 | public string TasksAppId { get; set; } 21 | 22 | /// 23 | /// Gets or sets Teams News App Id 24 | /// 25 | public string NewsAppId { get; set; } 26 | 27 | /// 28 | /// Gets or sets Teams Paystubs App Id 29 | /// 30 | public string PayStubsAppId { get; set; } 31 | 32 | /// 33 | /// Gets or sets Teams Benefits App Id 34 | /// 35 | public string BenefitsAppId { get; set; } 36 | 37 | /// 38 | /// Gets or sets Teams Rewards App Id 39 | /// 40 | public string RewardsAppId { get; set; } 41 | 42 | /// 43 | /// Gets or sets Teams Kudos App Id 44 | /// 45 | public string KudosAppId { get; set; } 46 | 47 | /// 48 | /// Gets or sets Deep Link Base URL 49 | /// 50 | public string DeepLinkBaseUrl { get; set; } 51 | 52 | /// 53 | /// Gets or sets Teams Survey App Id 54 | /// 55 | public string SurveyAppId { get; set; } 56 | 57 | /// 58 | /// Gets or sets Teams Support App Id 59 | /// 60 | public string SupportAppId { get; set; } 61 | 62 | /// 63 | /// Gets or sets Teams Training App Id 64 | /// 65 | public string TrainingAppId { get; set; } 66 | 67 | /// 68 | /// Gets or sets Teams Portal App Id 69 | /// 70 | public string PortalAppId { get; set; } 71 | 72 | /// 73 | /// Gets or sets Teams Insights App Id 74 | /// 75 | public string InsightsAppId { get; set; } 76 | 77 | /// 78 | /// Gets or sets Hand Book URL 79 | /// 80 | public string HandBookUrl { get; set; } 81 | 82 | /// 83 | /// Gets or sets Teams Report App Id 84 | /// 85 | public string ReportAppId { get; set; } 86 | 87 | /// 88 | /// Gets or sets Channel Chat URL 89 | /// 90 | public string ChannelChatUrl { get; set; } 91 | 92 | /// 93 | /// Gets or sets Channel Chat URL 94 | /// 95 | public string TrainingVideoUrl { get; set; } 96 | } 97 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Models/TokenResponse.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace BrandHome.Models 6 | { 7 | /// 8 | /// Access token model 9 | /// 10 | public class TokenResponse 11 | { 12 | /// 13 | /// Gets or sets Access token 14 | /// 15 | public string Access_token { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Program.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | using System; 6 | using System.Collections.Generic; 7 | using System.Linq; 8 | using System.Threading.Tasks; 9 | using Microsoft.AspNetCore.Hosting; 10 | using Microsoft.Extensions.Configuration; 11 | using Microsoft.Extensions.Hosting; 12 | using Microsoft.Extensions.Logging; 13 | 14 | namespace BrandHome 15 | { 16 | public class Program 17 | { 18 | public static void Main(string[] args) 19 | { 20 | CreateHostBuilder(args).Build().Run(); 21 | } 22 | 23 | public static IHostBuilder CreateHostBuilder(string[] args) => 24 | Host.CreateDefaultBuilder(args) 25 | .ConfigureWebHostDefaults(webBuilder => 26 | { 27 | webBuilder.UseStartup(); 28 | }); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Views/ApplicationConfigurations/End.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = null; 3 | } 4 | 5 | 6 | 7 | 8 | Simple Authentication Sample Login 9 | 10 | 11 | 12 | 53 | 54 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Views/ApplicationConfigurations/Paystubs.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = ""; 3 | } 4 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | Paystubs 38 | 39 | 40 | 41 |
42 |
43 | 44 | Contoso 45 |
46 |
47 |
48 | dollar 49 |
50 |
Paystubs
51 |
52 | 53 |
54 | 55 |
56 | 57 |
58 | Show previous paystubs 59 |
60 |
61 | 64 |
65 | 66 | 67 | 70 | 71 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using BrandHome 2 | @using BrandHome.Models 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AzureAd": { 3 | "Instance": "https://login.microsoftonline.com/", 4 | "TenantId": "[AzureAD Tenant Id]", 5 | "ClientId": "[AzureAD Client Id]", 6 | "ApplicationIdURI": "[AzureAD Application Id URI]", 7 | "AppSecret": "[Azure App secret]", 8 | "AuthUrl": "/oauth2/v2.0/token", 9 | "ValidIssuers": "https://login.microsoftonline.com/TENANT_ID/v2.0,https://sts.windows.net/TENANT_ID/" 10 | }, 11 | "Logging": { 12 | "LogLevel": { 13 | "Default": "Information", 14 | "Microsoft": "Warning", 15 | "Microsoft.Hosting.Lifetime": "Information" 16 | } 17 | }, 18 | "AllowedHosts": "*", 19 | "AzureClientId": "[AzureAD Client Id]", 20 | "SharePointClientId": "[SharePoint client Id]", 21 | "AppSecret": "[SharePoint client secret]", 22 | "Resource": "[SharePoint resource]", 23 | "ListId": "[SharePoint News web part list id]", 24 | "StorageTableEndPoint": "[Company communicator's Notification table Shared access signature URL]", 25 | "TenantSharePointSiteUrl": "[SharePoint news web part's site URL]", 26 | "BaseUrl": "[App service base URL]", 27 | "GroupsEndPoint": "https://graph.microsoft.com/v1.0/groups/", 28 | "TeamId": "[Team ID for getting the shifts, members information]", 29 | "TeamMembersCount": 8, 30 | "UsersEndPoint": "https://graph.microsoft.com/v1.0/users/", 31 | "TeamsConfiguration": { 32 | "DeepLinkBaseUrl": "https://teams.microsoft.com/l/entity/", 33 | "TrainingVideoUrl": "[Video Stream URL]", 34 | "ChannelChatUrl": "[Channel URL]", 35 | "ShiftsAppId": "[Shifts app id]", 36 | "TasksAppId": "[Tasks app id]", 37 | "NewsAppId": "[News app id]", 38 | "PayStubsAppId": "[Paystubs app id]", 39 | "BenefitsAppId": "[Benefits app id]", 40 | "RewardsAppId": "[Rewards app id]", 41 | "KudosAppId": "[Kudos app id]", 42 | "SurveyAppId": "[Survey app id]", 43 | "SupportAppId": "[Support app id]", 44 | "TrainingAppId": "[Training app id]", 45 | "PortalAppId": "[Portal app id]", 46 | "InsightsAppId": "[Insights app id]", 47 | "ReportAppId": "[Report app id]", 48 | "HandBookUrl": "[Handbook URL]" 49 | }, 50 | "ApplicationInsights": { 51 | "InstrumentationKey": "[Application Insights Instrumentation Key]" 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/libman.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "1.0", 3 | "defaultProvider": "cdnjs", 4 | "libraries": [ 5 | { 6 | "library": "jquery@3.3.1", 7 | "destination": "wwwroot/lib/jquery/", 8 | "files": [ 9 | "jquery.min.js", 10 | "jquery.min.map" 11 | ] 12 | }, 13 | { 14 | "provider": "unpkg", 15 | "library": "adaptivecards@1.2.5", 16 | "destination": "wwwroot/lib/adaptivecards/", 17 | "files": [ 18 | "dist/adaptivecards.js" 19 | ] 20 | }, 21 | { 22 | "provider": "unpkg", 23 | "library": "@microsoft/teams-js@1.4.1", 24 | "destination": "wwwroot/lib/@microsoft/teams-js/", 25 | "files": [ 26 | "dist/MicrosoftTeams.min.js" 27 | ] 28 | }, 29 | { 30 | "library": "bluebird@3.3.4", 31 | "destination": "wwwroot/lib/bluebird/", 32 | "files": [ 33 | "bluebird.min.js" 34 | ] 35 | }, 36 | { 37 | "library": "popper.js@1.16.0", 38 | "destination": "wwwroot/lib/popper.js/", 39 | "files": [ 40 | "umd/popper.min.js", 41 | "umd/popper.min.js.map" 42 | ] 43 | }, 44 | { 45 | "provider": "jsdelivr", 46 | "library": "bootstrap@4.4.1", 47 | "destination": "wwwroot/lib/bootstrap/", 48 | "files": [ 49 | "dist/css/bootstrap.min.css", 50 | "dist/css/bootstrap.min.css.map", 51 | "dist/js/bootstrap.min.js", 52 | "dist/js/bootstrap.min.js.map" 53 | ] 54 | }, 55 | { 56 | "provider": "unpkg", 57 | "library": "markdown-it@8.4.0", 58 | "destination": "wwwroot/lib/markdown-it/", 59 | "files": [ 60 | "dist/markdown-it.js" 61 | ] 62 | } 63 | ] 64 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/Data/ContosoTown Shop Employee Handbook.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/Data/ContosoTown Shop Employee Handbook.docx -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/css/payhistory.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Teams Assets"; 3 | src: url("TeamsAssets-Light.woff") format("woff"), url("TeamsAssets-Light.woff2") format("woff2"); 4 | font-style: normal; 5 | } 6 | body { 7 | background: #47637b; 8 | } 9 | .head { 10 | height: 32px; 11 | width: auto; 12 | background: #72a1c8; 13 | text-align: center; 14 | } 15 | 16 | .head-title { 17 | /* font-family: Montserrat; */ 18 | position: relative; 19 | top: 1px; 20 | width: 64px; 21 | font-style: normal; 22 | font-weight: 600; 23 | font-size: 15px; 24 | color: #ffffff; 25 | vertical-align: middle; 26 | } 27 | .logo { 28 | height: 20px; 29 | width: auto; 30 | margin-top: 3px; 31 | } 32 | .card { 33 | margin: 0 16px; 34 | width: auto; 35 | margin-top: 16px; 36 | } 37 | .pay-stub { 38 | margin-left: 16px; 39 | margin-top: 24px; 40 | /* font-family: Montserrat; */ 41 | font-weight: 500; 42 | font-size: 12px; 43 | color: #6f7372; 44 | } 45 | .pay-date, 46 | .employee { 47 | margin-left: 16px; 48 | margin-top: 1%; 49 | /* font-family: Montserrat; */ 50 | font-weight: bold; 51 | font-size: 17px; 52 | color: #2e3333; 53 | display: inline-block; 54 | } 55 | .check, 56 | .emp-id { 57 | margin-top: 1%; 58 | /* font-family: Montserrat; */ 59 | font-size: 14px; 60 | float: right; 61 | margin-right: 16px; 62 | color: #2e3333; 63 | } 64 | .back { 65 | color: black; 66 | float: right; 67 | top: 3px; 68 | position: absolute; 69 | right: 19px; 70 | font-size: 30px; 71 | font-family: Symbol; 72 | } 73 | .border { 74 | height: 1px; 75 | margin: 0 16px; 76 | margin-top: 2%; 77 | background: #c4c4c4; 78 | } 79 | .employee { 80 | /* font-family: Montserrat; */ 81 | font-weight: 500; 82 | font-size: 14px; 83 | } 84 | .mb-no { 85 | margin-top: 1%; 86 | /* font-family: Montserrat; */ 87 | font-size: 14px; 88 | margin-left: 16px; 89 | color: #2e3333; 90 | } 91 | .gw, 92 | .deductions, 93 | .Current, 94 | .year { 95 | margin-top: 4%; 96 | /* font-family: Montserrat; */ 97 | font-size: 14px; 98 | margin-left: 16px; 99 | color: #2e3333; 100 | } 101 | .ml { 102 | margin-left: 16px; 103 | margin-top: 2%; 104 | } 105 | th,td { 106 | width: 33%; 107 | font-size: 14px; 108 | color: #2e3333; 109 | } 110 | table{ 111 | width:100%; 112 | } 113 | tbody,tr { 114 | width: 100%; 115 | } 116 | td { 117 | /* font-family: Montserrat; */ 118 | font-size: 12px; 119 | color: #6f7372; 120 | } 121 | @media screen and (max-width: 425px) { 122 | .container { 123 | padding: 0; 124 | } 125 | tbody,tr{ 126 | width:100%; 127 | } 128 | th,td { 129 | width: 33%; 130 | font-size: 14px; 131 | color: #2e3333; 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/favicon.ico -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/fonts/TeamsAssets-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/fonts/TeamsAssets-Light.woff -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/fonts/TeamsAssets-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/fonts/TeamsAssets-Light.woff2 -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Benefits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Benefits.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Deafult-Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Deafult-Profile.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/ErrorLogo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/ErrorReddot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Insights1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Insights1.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Learning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Learning.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Portal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Portal.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Preloader_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Preloader_2.gif -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Rewards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Rewards.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Survey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/Survey.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/average.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/average.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/gudafternoon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/gudafternoon.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/gudevening.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/gudevening.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/gudmorning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/gudmorning.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/kudos.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/kudos.PNG -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/logo-rewards-lob.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/logo.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/logo2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/news1.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/news1.jfif -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/news2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/news2.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/news3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/news3.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/notsatisfied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/notsatisfied.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/offer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/offer.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/paystub.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/paystub.PNG -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/paystubs-lob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/paystubs-lob.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/quote.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/1.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/2.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/3.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/4.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/5.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/6.PNG -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/readmeimages/7.PNG -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/rewards-lob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/rewards-lob.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/satisfied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/satisfied.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/section3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/section3.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubHTMLCSSVersion/SampleHub/Source/wwwroot/images/tag.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/README.md: -------------------------------------------------------------------------------- 1 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 2 | 3 | ## Available Scripts 4 | 5 | In the project directory, you can run: 6 | 7 | ### `npm start` 8 | 9 | Runs the app in the development mode.
10 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 11 | 12 | The page will reload if you make edits.
13 | You will also see any lint errors in the console. 14 | 15 | ### `npm test` 16 | 17 | Launches the test runner in the interactive watch mode.
18 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 19 | 20 | ### `npm run build` 21 | 22 | Builds the app for production to the `build` folder.
23 | It correctly bundles React in production mode and optimizes the build for the best performance. 24 | 25 | The build is minified and the filenames include the hashes.
26 | Your app is ready to be deployed! 27 | 28 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 29 | 30 | ### `npm run eject` 31 | 32 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 33 | 34 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 35 | 36 | Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. 37 | 38 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. 39 | 40 | ## Learn More 41 | 42 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 43 | 44 | To learn React, check out the [React documentation](https://reactjs.org/). 45 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "homeapp-client", 3 | "version": "1.0.0", 4 | "private": true, 5 | "dependencies": { 6 | "@microsoft/teams-js": "^1.7.0", 7 | "@testing-library/jest-dom": "^4.2.4", 8 | "@testing-library/react": "^9.4.0", 9 | "@testing-library/user-event": "^7.2.1", 10 | "adaptivecards": "^2.0.0", 11 | "axios": "^0.21.1", 12 | "bootstrap": "^4.5.0", 13 | "mobx-react": "^6.2.2", 14 | "moment": "^2.24.0", 15 | "node-sass": "^4.14.1", 16 | "office-ui-fabric-react": "^7.121.12", 17 | "popper.js": "^1.16.1", 18 | "react": "^16.12.0", 19 | "react-bootstrap": "^1.0.1", 20 | "react-dom": "^16.12.0", 21 | "react-fontawesome": "^1.6.1", 22 | "react-icons": "^3.10.0", 23 | "react-intl": "^5.8.0", 24 | "react-native": "^0.63.0", 25 | "react-native-unordered-list": "^1.0.4", 26 | "react-router-dom": "^5.1.2", 27 | "react-scripts": "3.4.0", 28 | "react-tabs": "^3.1.1", 29 | "reactjs-popup": "^1.5.0", 30 | "resolve-url-loader": "^3.1.1", 31 | "save": "^2.4.0", 32 | "typescript": "^3.7.5" 33 | }, 34 | "scripts": { 35 | "start": "react-scripts start", 36 | "build": "react-scripts build", 37 | "test": "react-scripts test", 38 | "eject": "react-scripts eject" 39 | }, 40 | "eslintConfig": { 41 | "extends": "react-app" 42 | }, 43 | "browserslist": { 44 | "production": [ 45 | ">0.2%", 46 | "not dead", 47 | "not op_mini all" 48 | ], 49 | "development": [ 50 | "last 1 chrome version", 51 | "last 1 firefox version", 52 | "last 1 safari version", 53 | "last 1 ie version" 54 | ] 55 | }, 56 | "devDependencies": { 57 | "@fortawesome/fontawesome-free": "^5.11.2", 58 | "@types/react-native": "^0.62.17", 59 | "@types/reactstrap": "^8.4.1", 60 | "@types/jest": "^24.9.1", 61 | "@types/jquery": "^3.3.32", 62 | "@types/lodash": "^4.14.150", 63 | "@types/node": "^12.12.26", 64 | "@types/react": "^16.9.19", 65 | "@types/react-datepicker": "^2.11.0", 66 | "@types/react-dom": "^16.9.5", 67 | "@types/react-redux": "^7.1.4", 68 | "@types/react-router-dom": "^5.1.3", 69 | "prettier": "2.1.1" 70 | }, 71 | "engines": { 72 | "node": "12" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/Data/ContosoTown Shop Employee Handbook.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/Data/ContosoTown Shop Employee Handbook.docx -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/end.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Simple Authentication Sample Login 5 | 6 | 7 | 8 | 9 | 50 | 51 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/favicon.ico -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Benefits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Benefits.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Deafult-Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Deafult-Profile.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/ErrorLogo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/ErrorReddot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Insights1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Insights1.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Learning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Learning.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Portal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Portal.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Preloader_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Preloader_2.gif -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Rewards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Rewards.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Survey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/Survey.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/average.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/average.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/gudafternoon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/gudafternoon.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/gudevening.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/gudevening.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/gudmorning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/gudmorning.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/kudos.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/kudos.PNG -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/logo-rewards-lob.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/logo.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/logo2.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/news1.jfif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/news1.jfif -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/news2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/news2.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/news3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/news3.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/notsatisfied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/notsatisfied.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/offer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/offer.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/paystub.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/paystub.PNG -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/paystubs-lob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/paystubs-lob.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/quote.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/rewards-lob.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/rewards-lob.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/satisfied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/satisfied.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/section3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/section3.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/public/images/tag.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | Home App React 16 | 17 | 18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/public/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/App.test.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import ReactDOM from "react-dom"; 3 | import App from "./App"; 4 | 5 | it("renders without crashing", () => { 6 | const div = document.createElement("div"); 7 | ReactDOM.render(, div); 8 | ReactDOM.unmountComponentAtNode(div); 9 | }); 10 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/App.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import Home from "./components/Home/Home"; 3 | import Learning from "./components/Learning/Learning"; 4 | import SampleData from "./assets/data/data.json"; 5 | import { BrowserRouter as Router, Route, Switch } from "react-router-dom"; 6 | import OffShift from "./components/Shift/OffShift"; 7 | 8 | const App: React.FC = () => { 9 | return ( 10 | 11 |
12 | 13 | 14 | 18 | 19 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
33 |
34 | ); 35 | }; 36 | 37 | export default App; 38 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/fonts/TeamsAssets-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/fonts/TeamsAssets-Light.woff -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/fonts/TeamsAssets-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/fonts/TeamsAssets-Light.woff2 -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Avatar.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Benefits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Benefits.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Capture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Capture.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse1.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse2.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse3.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse4.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse5.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse6.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Ellipse7.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Kudos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Kudos.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Paystub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Paystub.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Photo.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Preloader_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Preloader_2.gif -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Rewards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/Rewards.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/news.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/news.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/quote.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/section3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/assets/images/section3.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Announcements/Announcements.tsx: -------------------------------------------------------------------------------- 1 | import React, { Fragment } from "react"; 2 | import * as AdaptiveCards from "adaptivecards"; 3 | import * as microsoftTeams from "@microsoft/teams-js"; 4 | import "./announcements.css"; 5 | import { Announcements_TeamsLink } from "../../links"; 6 | import { Announcement_Title } from "../../strings "; 7 | import { GetAnnouncementAdaptiveCardDetails } from "../../services/serviceApi"; 8 | interface IProps { 9 | announcementData: Array; 10 | } 11 | 12 | interface IState { 13 | data: any; 14 | renderedCard: any; 15 | list: Array; 16 | } 17 | 18 | class Announcement extends React.Component { 19 | constructor(props: IProps) { 20 | super(props); 21 | this.state = { 22 | data: {}, 23 | renderedCard: "", 24 | list: [], 25 | }; 26 | } 27 | async componentDidMount() { 28 | this.bindData(); 29 | } 30 | 31 | async bindData() { 32 | //getting announcemet adaptive card details 33 | let announcementsfromApi = await GetAnnouncementAdaptiveCardDetails().catch( 34 | (err: any) => { 35 | console.log(err); 36 | } 37 | ); 38 | if (announcementsfromApi != null && announcementsfromApi.length != 0) { 39 | this.setState({ 40 | list: announcementsfromApi, 41 | data: announcementsfromApi 42 | .filter( 43 | (item: { partitionKey: string }) => 44 | item.partitionKey === "SendingNotifications" 45 | ) 46 | .sort((a: any, b: any) => { 47 | return b.createdDate - a.createdDate; 48 | })[0], 49 | }); 50 | } 51 | } 52 | 53 | handleClick() { 54 | microsoftTeams.initialize(); 55 | microsoftTeams.executeDeepLink(`${Announcements_TeamsLink}`); 56 | } 57 | 58 | render() { 59 | const { list = [] } = this.state; 60 | const lists = list.map((item) => { 61 | return { ...item, createdDate: new Date(item.createdDate) }; 62 | }); 63 | let da = lists 64 | .filter((item) => item.partitionKey === "SendingNotifications") 65 | .sort((a: any, b: any) => { 66 | return b.createdDate - a.createdDate; 67 | })[0]; 68 | if (da !== undefined) { 69 | let card = JSON.parse(da.content) || ""; 70 | if (card) { 71 | let adaptiveCard = new AdaptiveCards.AdaptiveCard(); 72 | adaptiveCard.hostConfig = new AdaptiveCards.HostConfig({ 73 | fontFamily: "Segoe UI, Helvetica Neue, sans-serif", 74 | }); 75 | adaptiveCard.parse(card); 76 | let renderedCard = adaptiveCard.render() || ""; 77 | document.getElementById("annoucement")?.append(renderedCard); 78 | } 79 | } 80 | 81 | return ( 82 | 83 |
${Announcement_Title}
84 |
89 | {this.state.renderedCard} 90 |
91 |
92 | ); 93 | } 94 | } 95 | 96 | export default Announcement; 97 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Announcements/announcements.css: -------------------------------------------------------------------------------- 1 | .announcement { 2 | height: 52.813rem; 3 | margin: 16px; 4 | } 5 | 6 | .ac-container.ac-adaptiveCard { 7 | background-color: white; 8 | margin: 2.5rem 0 !important; 9 | position: absolute; 10 | } 11 | 12 | .an-head { 13 | position: absolute; 14 | font-weight: bold; 15 | font-size: 1.063rem; 16 | color: #f6f6f6; 17 | } 18 | 19 | .an-img { 20 | height: 19.375rem; 21 | display: block; 22 | } 23 | 24 | .ann-img { 25 | display: block; 26 | position: relative; 27 | margin: auto; 28 | } 29 | 30 | @media screen and (max-width: 26.563rem) { 31 | .announcement { 32 | height: 28rem; 33 | margin: 0 1rem; 34 | } 35 | } 36 | 37 | @media screen and (max-width: 23.438rem) { 38 | .announcement { 39 | height: 27rem; 40 | } 41 | } 42 | 43 | @media screen and (max-width: 20rem) { 44 | .announcement { 45 | height: 25rem; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/AppItem/appItem.css: -------------------------------------------------------------------------------- 1 | .app-card:nth-child(1), 2 | .app-card2:nth-child(1) { 3 | margin-right: 0rem; 4 | margin-right: 0.5rem; 5 | } 6 | 7 | .app-card { 8 | margin: 0.5rem; 9 | text-align: center; 10 | flex: 1; 11 | } 12 | 13 | .card4 { 14 | background: #ffffff; 15 | border: 0.063rem solid #e5e5e5; 16 | box-sizing: border-box; 17 | box-shadow: 0rem 0.063rem 0.125rem rgba(0, 0, 0, 0.15); 18 | border-radius: 0.25rem; 19 | height: auto; 20 | padding-bottom: 1rem; 21 | } 22 | 23 | .app-img { 24 | border-radius: 0; 25 | width: 5rem; 26 | height: 5rem; 27 | } 28 | 29 | .app-head, 30 | .app-desc { 31 | margin-top: 0.313rem; 32 | } 33 | 34 | .app-desc { 35 | padding: 0 0.875rem; 36 | } 37 | 38 | .lob-cards { 39 | padding: 0 !important; 40 | } 41 | 42 | @media screen and (max-width: 26.563rem) { 43 | .card4 { 44 | height: 11.25rem !important; 45 | } 46 | } 47 | 48 | @media screen and (max-width: 20rem) { 49 | .apps { 50 | height: 28.125rem; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Footer/Footer.tsx: -------------------------------------------------------------------------------- 1 | import React, { Fragment } from "react"; 2 | import "./footer.css"; 3 | 4 | interface IProps { 5 | text: string; 6 | imageSrc: string; 7 | } 8 | 9 | interface IState {} 10 | 11 | class Footer extends React.Component { 12 | constructor(props: IProps) { 13 | super(props); 14 | this.state = {}; 15 | } 16 | 17 | render() { 18 | const { text, imageSrc } = this.props; 19 | return ( 20 | 21 |
22 | 23 | {text} 24 | 25 |
26 | footer-banner img 34 |
35 |
36 |
37 | ); 38 | } 39 | } 40 | 41 | export default Footer; 42 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Footer/footer.css: -------------------------------------------------------------------------------- 1 | .bt-brand { 2 | height: 14.375rem; 3 | } 4 | 5 | .footer-text { 6 | position: absolute; 7 | width: 30rem; 8 | height: 4rem; 9 | font-weight: bold; 10 | font-size: 25px; 11 | color: #ffffff; 12 | margin: 5rem; 13 | } 14 | 15 | .brand-img { 16 | width: 20rem; 17 | float: right; 18 | height: auto; 19 | margin-right: 1.5rem; 20 | } 21 | 22 | @media screen and (max-width: 26.563rem) { 23 | .footer-text { 24 | position: absolute; 25 | width: 9rem; 26 | height: auto; 27 | font-weight: bold; 28 | font-size: 0.9rem; 29 | color: #ffffff; 30 | margin: 2rem 3rem; 31 | } 32 | 33 | .bt-brand { 34 | height: 8rem; 35 | } 36 | 37 | .brand-img { 38 | width: 11.1rem; 39 | float: right; 40 | height: auto; 41 | margin-right: 1.5rem; 42 | } 43 | } 44 | 45 | @media screen and (max-width: 23.438rem) { 46 | .footer-text { 47 | margin: 2rem 2rem; 48 | } 49 | } 50 | 51 | @media screen and (max-width: 20rem) { 52 | .footer-text { 53 | margin: 1rem 1rem 0rem 1rem; 54 | } 55 | 56 | .bt-brand { 57 | height: 5.9rem; 58 | } 59 | 60 | .brand-img { 61 | width: 8.1rem; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Greeting/Greeting.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { ReactComponent as Quote } from "../../assets/images/quote.svg"; 3 | import "./gretting.css"; 4 | 5 | interface IProps { 6 | quote: string; 7 | } 8 | 9 | const Greeting = ({ quote }: IProps) => { 10 | return ( 11 |
12 | 13 |
14 | {quote}

15 | {"Thank you for all you do!"} 16 |
17 |
18 | ); 19 | }; 20 | 21 | export default Greeting; 22 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Greeting/gretting.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Greeting/gretting.css -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Learning/Learning.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import AppItem from "../AppItem/AppItem"; 3 | import Footer from "../Footer/Footer"; 4 | import "./learning.css"; 5 | import NewBannerLogo from "../NewBannerLogo/NewBannerLogo"; 6 | import Greeting from "../Greeting/Greeting"; 7 | import SectionImg from "../../assets/images/section3.png"; 8 | import NavList from "../NavList/NavList"; 9 | import MeetingVideo from "../MeetingVideo/MeetingVideo"; 10 | import { Learning_Link2, Learning_Link3, Learning_Link1 } from "../../links"; 11 | 12 | interface IProps { 13 | data: any; 14 | } 15 | 16 | interface IState {} 17 | 18 | class Learning extends React.Component { 19 | constructor(props: IProps) { 20 | super(props); 21 | this.state = {}; 22 | } 23 | 24 | render() { 25 | const { data } = this.props; 26 | const navListItems = [ 27 | { 28 | id: "handBook", 29 | label: "Read the employee handbook", 30 | link: `${Learning_Link1}`, 31 | }, 32 | { 33 | id: "chat", 34 | label: "Connect with your coworkers", 35 | link: `${Learning_Link2}`, 36 | }, 37 | { 38 | id: "portal", 39 | label: "Check out the employee portal", 40 | link: `${Learning_Link3}`, 41 | }, 42 | ]; 43 | 44 | return ( 45 |
46 |
47 | 51 |
52 | {data?.configuredData?.learningTabDescription && ( 53 | 54 | )} 55 |
56 | team-img 57 | 58 |
59 | {data?.configuredData?.learningVideoUrl && ( 60 |
61 | 65 |
66 | )} 67 |
68 | app.lobApp.tab === "Learning" 71 | )} 72 | /> 73 |
74 |
75 |
76 |
80 |
81 |
82 | ); 83 | } 84 | } 85 | 86 | export default Learning; 87 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Learning/learning.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: "Teams Assets"; 3 | src: url("../../assets/fonts/TeamsAssets-Light.woff") format("woff"), 4 | url("../../assets/fonts/TeamsAssets-Light.woff2") format("woff2"); 5 | font-style: normal; 6 | } 7 | 8 | .banner-logo { 9 | height: 15.625rem; 10 | background: linear-gradient(180deg, rgba(0, 0, 0, 0) 60.65%, #000000 125%), 11 | url("../../assets/images/logo-bg-img.svg") no-repeat center; 12 | background-size: cover; 13 | } 14 | 15 | .quote-img { 16 | position: absolute; 17 | } 18 | 19 | .quote-desc { 20 | font-weight: 600; 21 | font-size: 0.875rem; 22 | color: #2e3333; 23 | width: auto; 24 | height: 8.75rem; 25 | position: absolute; 26 | margin: 0rem 1rem 0rem 3.2rem; 27 | } 28 | 29 | .quote-block { 30 | width: 100%; 31 | background-color: #ffffff; 32 | height: 8rem; 33 | padding: 1rem 1.5rem 0 1.688rem; 34 | } 35 | 36 | .team-img { 37 | width: 100%; 38 | height: 25rem; 39 | } 40 | 41 | .head-blk { 42 | background: #47637b; 43 | height: 2.5rem; 44 | border-bottom: 0.063rem solid #496b88; 45 | } 46 | 47 | .section4 { 48 | width: 100%; 49 | height: 29.375rem; 50 | background: #2e3333; 51 | } 52 | 53 | @media screen and (max-width: 26.563rem) { 54 | .banner-logo { 55 | height: 8rem; 56 | } 57 | 58 | .quote-block { 59 | height: 11rem; 60 | } 61 | 62 | .team-img { 63 | height: auto; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/MeetingVideo/MeetingVideo.css: -------------------------------------------------------------------------------- 1 | .video-head { 2 | margin: 0 1.5rem; 3 | padding-top: 1rem; 4 | font-weight: bold; 5 | font-size: 1.063rem; 6 | line-height: 1.25rem; 7 | color: #ffffff; 8 | } 9 | 10 | .video { 11 | height: 25rem; 12 | margin: 1rem 1.5rem; 13 | background: linear-gradient( 14 | 180deg, 15 | rgba(0, 0, 0, 0) 0%, 16 | rgba(0, 0, 0, 0.15) 100% 17 | ), 18 | #72a1c8; 19 | border-radius: 0.5rem; 20 | } 21 | 22 | .vd-stream { 23 | height: 100%; 24 | width: 100%; 25 | border-radius: 0.5rem; 26 | } 27 | 28 | @media screen and (max-width: 26.563rem) { 29 | .team-img { 30 | height: 12.5rem; 31 | } 32 | 33 | .section4 { 34 | height: 16.625rem; 35 | } 36 | 37 | .video { 38 | height: 11.5rem; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/MeetingVideo/MeetingVideo.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import "./MeetingVideo.css"; 3 | 4 | interface IProps { 5 | title: string; 6 | videoUrl: string; 7 | } 8 | const MeetingVideo = ({ title, videoUrl }: IProps) => { 9 | return ( 10 | <> 11 |
{title}
12 |
13 | 20 |
21 | 22 | ); 23 | }; 24 | 25 | export default MeetingVideo; -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Metrics/metrics.css: -------------------------------------------------------------------------------- 1 | .ht { 2 | height: 1.25rem; 3 | } 4 | 5 | .box-tables { 6 | width: 100%; 7 | } 8 | 9 | .head-rw { 10 | display: block; 11 | margin: 1rem 1rem 0 1rem; 12 | } 13 | 14 | .data-num { 15 | position: relative; 16 | font-size: 0.875rem; 17 | text-align: center; 18 | color: #d93b3b; 19 | } 20 | 21 | .last-time { 22 | font-weight: 500; 23 | font-size: 0.75rem; 24 | color: #393f3e; 25 | opacity: 0.6; 26 | margin-left: 1rem; 27 | } 28 | .centage-block { 29 | margin: 1rem; 30 | height: auto; 31 | background: #f6f6f6; 32 | border: 0.063rem solid #e5e5e5; 33 | box-sizing: border-box; 34 | box-shadow: 0rem 0.063rem 0.125rem rgba(0, 0, 0, 0.15); 35 | border-radius: 0.25rem; 36 | } 37 | 38 | .custom-row { 39 | margin: 0 !important; 40 | } 41 | 42 | .rounded { 43 | position: relative; 44 | margin: 1% 2%; 45 | } 46 | 47 | .vertical .progress-bar { 48 | display: inline-flex; 49 | width: 5.375rem; 50 | height: 4.188rem; 51 | position: relative; 52 | margin: 0 4%; 53 | margin-bottom: 4%; 54 | border-radius: 0.5rem; 55 | } 56 | 57 | .progress-bar { 58 | background-color: white; 59 | } 60 | 61 | .vertical .progress-track { 62 | position: relative; 63 | width: 5.375rem; 64 | height: 4.188rem; 65 | background: #efb9b8; 66 | background: white; 67 | } 68 | 69 | .vertical .progress-fill { 70 | position: relative; 71 | font-weight: bold; 72 | font-size: 1.313rem; 73 | text-align: center; 74 | color: #393f3e; 75 | } 76 | 77 | .rounded .progress-track, 78 | .rounded .progress-fill { 79 | box-shadow: inset 0 0 0.313rem rgba(0, 0, 0, 0.2); 80 | border-radius: 0.188rem; 81 | } 82 | 83 | .pro-card { 84 | margin-top: 1rem; 85 | margin-bottom: 0.313rem; 86 | text-align: center; 87 | flex: 1; 88 | } 89 | 90 | .bg-red { 91 | background: #efb9b8; 92 | } 93 | 94 | .bg-gray { 95 | background: #c7d9e8; 96 | } 97 | 98 | .percentage-head { 99 | display: block; 100 | } 101 | 102 | .see-more2 { 103 | font-weight: 500; 104 | font-size: 0.75rem; 105 | color: #a2a5a5; 106 | margin: 4px 16px 0 0; 107 | float: right; 108 | } 109 | 110 | .see-more2::before { 111 | content: "\E449"; 112 | font-family: "Teams Assets"; 113 | font-size: 1rem; 114 | line-height: 1.1; 115 | color: #a2a5a5; 116 | float: right; 117 | } 118 | 119 | @media screen and (max-width: 26.563rem) { 120 | .centage-block { 121 | height: 9.125rem; 122 | } 123 | 124 | .bt-brand { 125 | height: 8rem; 126 | } 127 | 128 | .brand-img { 129 | width: 10.8rem; 130 | float: right; 131 | height: auto; 132 | margin-right: 1.5rem; 133 | } 134 | } 135 | 136 | @media screen and (max-width: 23.438rem) { 137 | .vertical .progress-bar { 138 | margin: 3%; 139 | } 140 | } 141 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/NavList/NavList.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import "./navlist.css"; 3 | import * as microsoftTeams from "@microsoft/teams-js"; 4 | 5 | interface listItem { 6 | id: string; 7 | label: string; 8 | link: string; 9 | } 10 | 11 | interface IProps { 12 | navListItems: listItem[]; 13 | } 14 | 15 | class NavList extends React.Component { 16 | handleOnClick(link: string) { 17 | microsoftTeams.initialize(); 18 | microsoftTeams.executeDeepLink(link); 19 | } 20 | render() { 21 | const { navListItems } = this.props; 22 | return ( 23 | 24 | {navListItems.map((item: listItem, key) => ( 25 | // eslint-disable-next-line jsx-a11y/anchor-is-valid 26 | this.handleOnClick(item.link)} 29 | target="_blank" 30 | rel="noopener noreferrer" 31 | style={{ textDecoration: "none", color: "inherit" }} 32 | > 33 |
34 |
35 | {item.label} 36 |
37 |
38 |
39 |
40 | ))} 41 |
42 | ); 43 | } 44 | } 45 | 46 | export default NavList; 47 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/NavList/navlist.css: -------------------------------------------------------------------------------- 1 | .head-blk { 2 | background: #47637b; 3 | height: 2.5rem; 4 | border-bottom: 0.063rem solid #496b88; 5 | } 6 | .headings { 7 | position: absolute; 8 | margin: 0.5rem 1.5rem; 9 | font-weight: 500; 10 | font-size: 0.875rem; 11 | color: #ffffff; 12 | } 13 | 14 | .chev { 15 | margin: 0.5rem 0.75rem; 16 | float: right; 17 | } 18 | .chev::before { 19 | content: "\E449"; 20 | font-family: "Teams Assets"; 21 | font-size: 1rem; 22 | line-height: 1.1; 23 | color: #ffffff; 24 | float: right; 25 | } 26 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/NewBannerLogo/NewBannerLogo.css: -------------------------------------------------------------------------------- 1 | .design-logo { 2 | position: absolute; 3 | height: 3rem; 4 | width: auto; 5 | margin-left: 1.063rem; 6 | margin-top: 11.125rem; 7 | -webkit-animation: rotation 20s infinite linear; 8 | animation: rotation 20s infinite linear; 9 | } 10 | 11 | @-webkit-keyframes rotation { 12 | from { 13 | -webkit-transform: rotate(0deg); 14 | transform: rotate(0deg); 15 | } 16 | 17 | to { 18 | -webkit-transform: rotate(359deg); 19 | transform: rotate(359deg); 20 | } 21 | } 22 | 23 | @keyframes rotation { 24 | from { 25 | -webkit-transform: rotate(0deg); 26 | transform: rotate(0deg); 27 | } 28 | 29 | to { 30 | -webkit-transform: rotate(359deg); 31 | transform: rotate(359deg); 32 | } 33 | } 34 | 35 | .design-logo-title { 36 | font-size: 2.5rem; 37 | font-weight: 600; 38 | color: #ffffff; 39 | -webkit-box-align: center; 40 | -ms-flex-align: center; 41 | align-items: center; 42 | margin-left: 4.375rem; 43 | margin-top: 10.625rem; 44 | position: absolute; 45 | animation: linear; 46 | animation-name: fadeIn; 47 | animation-duration: 5s; 48 | } 49 | 50 | @keyframes fadeIn { 51 | from { 52 | opacity: 0; 53 | } 54 | 55 | 100% { 56 | opacity: 1; 57 | } 58 | } 59 | 60 | @media screen and (max-width: 26.563rem) { 61 | .design-logo-title { 62 | margin-top: 4.25rem; 63 | width: calc(100% - 100px); 64 | overflow: hidden; 65 | text-overflow: ellipsis; 66 | white-space: nowrap; 67 | } 68 | 69 | .design-logo { 70 | margin-top: 4.625rem; 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/NewBannerLogo/NewBannerLogo.tsx: -------------------------------------------------------------------------------- 1 | import React, { Fragment } from "react"; 2 | import "./NewBannerLogo.css"; 3 | 4 | interface IProps { 5 | title: string; 6 | logo: string; 7 | } 8 | 9 | class NewBannerLogo extends React.Component { 10 | constructor(props: IProps) { 11 | super(props); 12 | this.state = {}; 13 | } 14 | 15 | render() { 16 | const { title, logo } = this.props; 17 | return ( 18 | 19 |
20 | logo 25 |
{title}
26 |
27 |
28 | ); 29 | } 30 | } 31 | 32 | export default NewBannerLogo; 33 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/News/news.css: -------------------------------------------------------------------------------- 1 | .news-head { 2 | position: absolute; 3 | margin: 0 1rem 0 1rem; 4 | font-weight: bold; 5 | font-size: 1.063rem; 6 | color: #f6f6f6; 7 | } 8 | .carousel3 { 9 | margin: 1rem; 10 | } 11 | 12 | .car-card { 13 | background: #ffffff; 14 | border: 0.063rem solid #e5e5e5; 15 | box-sizing: border-box; 16 | box-shadow: 0rem 0.063rem 0.125rem rgba(0, 0, 0, 0.15); 17 | border-radius: 0.25rem; 18 | position: absolute; 19 | margin-top: 4%; 20 | } 21 | 22 | .car-head { 23 | height: auto; 24 | margin: 1rem 1rem 0 1rem; 25 | font-weight: 500; 26 | font-size: 0.875rem; 27 | color: #393f3e; 28 | } 29 | 30 | .car-date { 31 | margin: 0 1rem 1rem 1rem; 32 | font-weight: 500; 33 | font-size: 0.75rem; 34 | color: #393f3e; 35 | opacity: 0.6; 36 | } 37 | 38 | .car-desc { 39 | width: auto; 40 | height: 50px; 41 | margin: 1.063rem; 42 | font-weight: 500; 43 | font-size: 0.875rem; 44 | color: #393f3e; 45 | flex-wrap: nowrap; 46 | text-overflow: ellipsis; 47 | -webkit-line-clamp: 4; 48 | display: -webkit-box; 49 | -webkit-box-orient: vertical; 50 | overflow: hidden; 51 | text-align: justify; 52 | overflow: auto; 53 | } 54 | 55 | .carousel-indicators { 56 | position: relative; 57 | padding: 0; 58 | top: 38.5rem; 59 | width: 70%; 60 | } 61 | 62 | .carousel-indicators li { 63 | width: 0.438rem; 64 | height: 0.438rem; 65 | background: #c4c4c4; 66 | border-radius: 50%; 67 | border: none; 68 | } 69 | 70 | .w-100 { 71 | height: 25rem; 72 | object-fit: scale-down; 73 | } 74 | 75 | .see-more3 { 76 | font-weight: 500; 77 | font-size: 0.75rem; 78 | color: #a2a5a5; 79 | margin: 4px 16px 0 0; 80 | float: right; 81 | } 82 | 83 | .see-more3::before { 84 | content: "\E449"; 85 | font-family: "Teams Assets"; 86 | font-size: 1rem; 87 | line-height: 1.1; 88 | color: #a2a5a5; 89 | float: right; 90 | } 91 | 92 | @media screen and (max-width: 26.563rem) { 93 | .car-card { 94 | margin-top: 11%; 95 | } 96 | 97 | .w-100 { 98 | height: 11.313rem; 99 | object-fit: cover; 100 | } 101 | 102 | .carousel-indicators { 103 | top: 28.75rem; 104 | } 105 | 106 | .car-desc { 107 | height: 6.25rem; 108 | font-size: 0.75rem; 109 | } 110 | } 111 | 112 | @media screen and (max-width: 20rem) { 113 | .carousel-indicators { 114 | top: 29.5rem; 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Shift/OffShift.css: -------------------------------------------------------------------------------- 1 | .offshift-container { 2 | background-color: #72a1c8 !important; 3 | height: 100vh; 4 | display: flex; 5 | justify-content: center; 6 | align-items: center; 7 | flex-wrap: wrap; 8 | flex-direction: column; 9 | padding-left: 10px; 10 | padding-right: 10px; 11 | } 12 | 13 | .offshift-heading { 14 | display: flex; 15 | padding-top: 4rem; 16 | color: white; 17 | } 18 | 19 | .offshift-logo { 20 | height: 5rem; 21 | width: 5rem; 22 | } 23 | .offshift-red-dot { 24 | height: 25px; 25 | width: 25px; 26 | margin-right: 1rem; 27 | margin-top: 1rem; 28 | flex-basis: 30%; 29 | background: radial-gradient( 30 | 67.64% 67.64% at 33.16% 22.34%, 31 | rgba(255, 255, 255, 0.25) 0%, 32 | rgba(255, 255, 255, 0) 100% 33 | ), 34 | linear-gradient(180deg, rgba(0, 0, 0, 0) 0.69%, rgba(0, 0, 0, 0.26) 103.5%), 35 | #d93b3b; 36 | border: 1.52649px solid rgba(255, 255, 255, 0.2); 37 | box-sizing: border-box; 38 | box-shadow: 0px 3.05299px 6.10598px rgba(0, 0, 0, 0.1); 39 | border-radius: 50%; 40 | } 41 | .offshift-sub-heading { 42 | padding-top: 1rem; 43 | color: white; 44 | } 45 | 46 | @media screen and (max-width: 26.563rem) { 47 | } 48 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Shift/OffShift.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import "./OffShift.css"; 3 | 4 | interface IProps { 5 | data: any; 6 | } 7 | 8 | interface IState {} 9 | 10 | class OffShift extends React.Component { 11 | constructor(props: IProps) { 12 | super(props); 13 | this.state = {}; 14 | } 15 | 16 | render() { 17 | const { data } = this.props; 18 | return ( 19 |
20 |
21 | logo 26 |
27 |
28 |
29 |
30 |
31 |
32 |

You’re currently off shift

33 |

34 | You aren’t authorized to use Microsoft Teams during non-working 35 | hours and will only be compensated for using Teams during approved 36 | working hours. 37 |
38 |
Please come back once you’re on the clock 39 |

40 |
41 |
42 |
43 | ); 44 | } 45 | } 46 | 47 | export default OffShift; 48 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Shift/shift.css: -------------------------------------------------------------------------------- 1 | .sub-heading { 2 | margin-left: 1rem; 3 | 4 | font-weight: normal; 5 | font-size: 0.875rem; 6 | line-height: 1.125rem; 7 | color: #f6f6f6; 8 | } 9 | .date { 10 | position: absolute; 11 | margin-left: 1rem; 12 | margin-top: 0.75rem; 13 | 14 | font-weight: bold; 15 | font-size: 1.188rem; 16 | line-height: 1.5rem; 17 | text-align: right; 18 | color: #393f3e; 19 | } 20 | 21 | .day { 22 | position: absolute; 23 | width: 1.5rem; 24 | margin-left: 1rem; 25 | margin-top: 2.313rem; 26 | 27 | font-weight: normal; 28 | font-size: 0.625rem; 29 | line-height: 0.75rem; 30 | text-align: center; 31 | color: #393f3e; 32 | } 33 | 34 | .time { 35 | position: absolute; 36 | width: auto; 37 | height: 1.125rem; 38 | margin-left: 4.063rem; 39 | margin-top: 0.813rem; 40 | 41 | font-weight: 500; 42 | font-size: 0.875rem; 43 | line-height: 1.125rem; 44 | color: #2e3333; 45 | } 46 | 47 | .line { 48 | position: absolute; 49 | width: 0.188rem; 50 | height: 2.938rem; 51 | margin-left: 3.188rem; 52 | margin-top: 0.5rem; 53 | border-radius: 0.125rem; 54 | background: cadetblue; 55 | } 56 | .msg { 57 | position: absolute; 58 | width: auto; 59 | height: 1.125rem; 60 | margin-left: 4.063rem; 61 | margin-top: 2.188rem; 62 | 63 | font-weight: normal; 64 | font-size: 0.875rem; 65 | line-height: 1.125rem; 66 | color: #6f7372; 67 | mix-blend-mode: normal; 68 | } 69 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/Task/task.css: -------------------------------------------------------------------------------- 1 | .custom-radio { 2 | margin-left: 1rem; 3 | } 4 | 5 | .cs-radio1 { 6 | margin-top: 0.625rem; 7 | display: inline-flex; 8 | } 9 | 10 | .time2 { 11 | margin-top: 0.625rem; 12 | } 13 | 14 | .lb { 15 | font-style: normal; 16 | font-weight: 500; 17 | font-size: 0.875rem; 18 | color: #2e3333; 19 | } 20 | 21 | .lb-flow { 22 | position: absolute; 23 | max-width: 12.5rem; 24 | white-space: nowrap; 25 | overflow: hidden; 26 | text-overflow: ellipsis; 27 | } 28 | 29 | .task-head { 30 | margin-left: 16px; 31 | font-weight: bold; 32 | font-size: 17px; 33 | color: #f6f6f6; 34 | display: inline-flex; 35 | } 36 | 37 | .percen-head { 38 | margin-left: 16px; 39 | font-weight: bold; 40 | font-size: 1.063rem; 41 | color: #f6f6f6; 42 | display: inline-block; 43 | } 44 | 45 | .cd2-time { 46 | font-size: 0.625rem; 47 | float: right; 48 | margin-right: 0.5rem; 49 | margin-top: 0.5rem; 50 | color: #6f7372; 51 | line-height: 2; 52 | } 53 | .cd2-time::before { 54 | content: "\E449"; 55 | font-family: "Teams Assets"; 56 | font-size: 0.8rem; 57 | color: #72a1c8; 58 | float: right; 59 | line-height: 1.6; 60 | } 61 | 62 | .cs-radio { 63 | margin-top: 0.5rem; 64 | display: inline-flex; 65 | } 66 | 67 | .task-header { 68 | margin-top: 0.5rem; 69 | } 70 | 71 | .see-more2 { 72 | font-weight: 500; 73 | font-size: 0.75rem; 74 | color: #a2a5a5; 75 | margin: 4px 16px 0 0; 76 | float: right; 77 | } 78 | 79 | .see-more2::before { 80 | content: "\E449"; 81 | font-family: "Teams Assets"; 82 | font-size: 1rem; 83 | line-height: 1.1; 84 | color: #a2a5a5; 85 | float: right; 86 | } 87 | 88 | .custom-control-label::before { 89 | position: absolute; 90 | top: 0.5rem; 91 | left: -1rem; 92 | display: block; 93 | width: 1rem; 94 | height: 1rem; 95 | pointer-events: none; 96 | content: ""; 97 | background-color: #fff; 98 | border: #adb5bd solid 0.063rem; 99 | } 100 | 101 | .custom-radio .custom-control-label::before { 102 | border-radius: 15%; 103 | height: 0.5rem; 104 | width: 0.5rem; 105 | } 106 | 107 | .custom-control-input:disabled ~ .lb1::before, 108 | .custom-control-input[disabled] ~ .lb1::before { 109 | background-color: #72a1c8; 110 | border: #72a1c8; 111 | } 112 | 113 | .custom-control-input:disabled ~ .lb2::before, 114 | .custom-control-input[disabled] ~ .lb2::before { 115 | background-color: #72a1c8; 116 | border: #72a1c8; 117 | } 118 | 119 | .custom-control-input:disabled ~ .lb3::before, 120 | .custom-control-input[disabled] ~ .lb3::before { 121 | background-color: #72a1c8; 122 | border: #72a1c8; 123 | } 124 | 125 | @media screen and (max-width: 20rem) { 126 | .lb-flow { 127 | max-width: 9.375rem; 128 | } 129 | 130 | .banner-logo { 131 | height: 7.25rem; 132 | } 133 | 134 | .fed-msg-head { 135 | font-size: 0.938rem; 136 | } 137 | 138 | .car-head { 139 | height: auto; 140 | } 141 | 142 | .car-desc { 143 | width: auto; 144 | } 145 | } 146 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/TeamMember/teamMember.css: -------------------------------------------------------------------------------- 1 | .new-team { 2 | position: absolute; 3 | margin: 0 1rem 1rem 1rem; 4 | height: 1.25rem; 5 | font-weight: bold; 6 | font-size: 1.063rem; 7 | line-height: 1.25rem; 8 | color: #f6f6f6; 9 | } 10 | 11 | .profile-card:nth-child(1) { 12 | margin-right: 0rem; 13 | } 14 | 15 | .profile-card { 16 | margin: 2.188rem 1rem 0 1rem; 17 | text-align: center; 18 | flex: 1; 19 | } 20 | 21 | .card-img-top { 22 | border-radius: 50%; 23 | width: 3.5rem; 24 | height: 3.5rem; 25 | align-self: center; 26 | margin-top: 1rem; 27 | } 28 | 29 | .cb { 30 | padding: 0.25rem !important; 31 | } 32 | 33 | .ct { 34 | font-size: 0.875rem; 35 | color: #2e3333; 36 | width: 100%; 37 | overflow: hidden; 38 | flex-wrap: nowrap; 39 | text-overflow: ellipsis; 40 | font-weight: bold; 41 | } 42 | 43 | .designation { 44 | font-size: 0.75rem; 45 | color: #6f7372; 46 | width: 100%; 47 | overflow: hidden; 48 | flex-wrap: nowrap; 49 | text-overflow: ellipsis; 50 | } 51 | 52 | .hi { 53 | background: #f4c86b; 54 | border-radius: 1rem; 55 | width: 6rem; 56 | height: 2rem; 57 | line-height: 1; 58 | color: white; 59 | margin: 3% 6% 6% 6%; 60 | } 61 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/TellUs/TellUs.tsx: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import * as microsoftTeams from "@microsoft/teams-js"; 3 | import tellUs from "../../assets/images/How you feeling 2.svg"; 4 | 5 | class TellUs extends React.Component { 6 | handleClick() { 7 | microsoftTeams.initialize(); 8 | microsoftTeams.executeDeepLink( 9 | "https://teams.microsoft.com/_#/apps/{teamid}/sections/surveys" 10 | ); 11 | } 12 | render() { 13 | return ( 14 | how are feeling 20 | ); 21 | } 22 | } 23 | export default TellUs; 24 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/TellUs/tellUs.css: -------------------------------------------------------------------------------- 1 | .shiftToday { 2 | position: absolute; 3 | height: 1.25rem; 4 | left: 2rem; 5 | right: 1rem; 6 | top: 31.25rem; 7 | font-weight: bold; 8 | font-size: 1.063rem; 9 | line-height: 1.25rem; 10 | color: #f6f6f6; 11 | } 12 | 13 | .tellUs { 14 | position: absolute; 15 | left: 6.688rem; 16 | right: 9.188rem; 17 | top: 33.75rem; 18 | bottom: 33.75rem; 19 | background: #eabb57; 20 | border-radius: 1.326rem; 21 | } 22 | 23 | .tellText { 24 | position: absolute; 25 | height: 1.5rem; 26 | left: 1.326rem; 27 | right: 1.326rem; 28 | top: calc(50% - 1.5rem / 2 + 0.07px); 29 | font-weight: bold; 30 | font-size: 0.875rem; 31 | line-height: 1.125rem; 32 | text-align: center; 33 | color: #ffffff; 34 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/components/WorkingNow/workingNow.css: -------------------------------------------------------------------------------- 1 | .working-head { 2 | font-weight: bold; 3 | font-size: 1.063rem; 4 | color: #f6f6f6; 5 | margin: 1rem 1rem 0 1rem; 6 | display: inline-block; 7 | } 8 | 9 | .start-cht { 10 | font-weight: 500; 11 | font-size: 0.75rem; 12 | text-align: right; 13 | color: #a2a5a5; 14 | float: right; 15 | margin: 1rem 1rem 0 1rem; 16 | line-height: 2; 17 | display: block; 18 | } 19 | 20 | .working-img { 21 | height: 6rem; 22 | background: #f6f6f6; 23 | border: 0.063rem solid #e5e5e5; 24 | box-sizing: border-box; 25 | box-shadow: 0rem 0.063rem 0.125rem rgba(0, 0, 0, 0.15); 26 | border-radius: 0.25rem; 27 | margin: 1rem; 28 | } 29 | 30 | .avatars { 31 | text-align: center; 32 | } 33 | 34 | .ava { 35 | display: inline-block; 36 | margin: 1rem 6% 0 6%; /* to align center used 1rem */ 37 | } 38 | 39 | .avatar { 40 | height: 3rem; 41 | width: 3rem; 42 | border-radius: 50%; 43 | } 44 | 45 | .name { 46 | display: block; 47 | white-space: nowrap; 48 | font-size: 0.875rem; 49 | overflow: hidden; 50 | text-overflow: ellipsis; 51 | text-align: center; 52 | } 53 | 54 | .card3 { 55 | background: #f6f6f6; 56 | border: 0.063rem solid #e5e5e5; 57 | box-sizing: border-box; 58 | box-shadow: 0rem 0.063rem 0.125rem rgba(0, 0, 0, 0.15); 59 | border-radius: 0.25rem; 60 | } 61 | 62 | .new-team { 63 | position: absolute; 64 | margin: 0 1rem 1rem 1rem; 65 | height: 1.25rem; 66 | font-weight: bold; 67 | font-size: 1.063rem; 68 | line-height: 1.25rem; 69 | color: #f6f6f6; 70 | } 71 | 72 | @media screen and (max-width: 26.563rem) { 73 | .ava { 74 | margin: 6% 2% 0 2%; 75 | } 76 | 77 | .name { 78 | font-size: 0.625rem; 79 | } 80 | } 81 | 82 | @media screen and (max-width: 20rem) { 83 | .avatar { 84 | height: 2rem; 85 | width: 2rem; 86 | } 87 | 88 | .ava { 89 | margin: 9% 4% 0 4%; 90 | } 91 | } 92 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/index.tsx: -------------------------------------------------------------------------------- 1 | import ReactDOM from "react-dom"; 2 | import * as serviceWorker from "./serviceWorker"; 3 | import "@fortawesome/fontawesome-free/css/all.min.css"; 4 | import { authenticate } from "./services/authService"; 5 | 6 | ReactDOM.render(authenticate(), document.getElementById("root")); 7 | 8 | serviceWorker.unregister(); 9 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/links.tsx: -------------------------------------------------------------------------------- 1 | 2 | const apiendpoint="{{apiendpoint}}"; 3 | export const AnnouncementAdaptiveCardDetails = 4 | `${apiendpoint}samplehub/AnnouncementAdaptiveCardDetails`; 5 | export const TeamsConfig = 6 | `${apiendpoint}samplehub/TeamsConfig`; 7 | export const NewsData =`${apiendpoint}samplehub/NewsData`; 8 | export const TeamMemberDetails =`${apiendpoint}samplehub/TeamMemberDetails`; 9 | export const TeamMember_Link1 = 10 | "{Metnion team member link}"; 11 | export const TeamMember_Link2 = 12 | "{Metnion second team member link}"; 13 | export const GetUserAccessToken = 14 | `${apiendpoint}samplehub/GetUserAccessToken`; 15 | export const Announcements_TeamsLink = 16 | "{Mention compnay communicator app tempalte link}"; 17 | export const Announcements_TeamsLink_1 = 18 | `${apiendpoint}samplehub/AnnouncementAdaptiveCardDetails`; 19 | export const WorkingNow_Link = "https://teams.microsoft.com/l/chat/0/0?users="; 20 | export const Task_Link1 = "https://graph.microsoft.com/v1.0/me/planner/tasks"; 21 | export const Task_Link2 = 22 | `https://teams.microsoft.com/l/entity/`; 23 | export const Task_Link3 = 24 | `https://teams.microsoft.com/l/entity/`; 25 | export const Learning_Link1 = 26 | "{Mention your learning app link}"; 27 | export const Learning_Link2 = 28 | "{Mention your learning app link}"; 29 | export const Learning_Link3 = 30 | "{Mention your learning app link}"; 31 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/react-app-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/src/strings .tsx: -------------------------------------------------------------------------------- 1 | export const Announcement_Title = "Announcements"; 2 | export const WorkingNow_Title = "Working Now"; 3 | export const NewTeamMembers_Title = "New Team Members"; 4 | export const Task_Title = "Tasks"; 5 | export const News_Title = "News"; 6 | export const Key_Title = "Key Metrics"; 7 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/ClientApp/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": [ 5 | "dom", 6 | "dom.iterable", 7 | "esnext" 8 | ], 9 | "allowJs": true, 10 | "skipLibCheck": true, 11 | "esModuleInterop": true, 12 | "allowSyntheticDefaultImports": true, 13 | "strict": true, 14 | "forceConsistentCasingInFileNames": true, 15 | "module": "esnext", 16 | "moduleResolution": "node", 17 | "resolveJsonModule": true, 18 | "isolatedModules": true, 19 | "noImplicitAny": true, 20 | "jsx": "react", 21 | "noEmit": true 22 | }, 23 | "include": [ 24 | "src" 25 | ] 26 | } 27 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/Manifest/color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/Manifest/color.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/Manifest/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://developer.microsoft.com/json-schemas/teams/v1.5/MicrosoftTeams.schema.json", 3 | "manifestVersion": "1.5", 4 | "version": "1.1.1", 5 | "id": "e197a778-9520-4019-9894-7adac76d5397", 6 | "packageName": "com.contoso.helloworld", 7 | "developer": { 8 | "name": "Microsoft", 9 | "websiteUrl": "https://www.microsoft.com", 10 | "privacyUrl": "https://www.microsoft.com/privacy", 11 | "termsOfUseUrl": "https://www.microsoft.com/termsofuse", 12 | "mpnId": "{your mpnID}" 13 | }, 14 | "name": { 15 | "short": "Sample Hub", 16 | "full": "Sample Hub" 17 | }, 18 | "description": { 19 | "short": "Sample Hub", 20 | "full": "The Sample Hub is a personal-branded landing experience that is pinned to the Teams mobile app, allowing your organization to provide consolidated information and the functionality of important first-party and line-of-business apps to firstline worker employees." 21 | }, 22 | "icons": { 23 | "outline": "outline.png", 24 | "color": "color.png" 25 | }, 26 | "accentColor": "#60A18E", 27 | "staticTabs": [ 28 | { 29 | "entityId": "Hub", 30 | "name": "Hub", 31 | "contentUrl": "https://{{appdomain}}.azurewebsites.net", 32 | "scopes": [ "personal" ] 33 | }, 34 | { 35 | "entityId": "Learning", 36 | "name": "Learning", 37 | "contentUrl": "https://{{appdomain}}.azurewebsites.net/learning", 38 | "scopes": [ "personal" ] 39 | } 40 | ], 41 | "permissions": ["identity", "messageTeamMembers"], 42 | "validDomains": [ "*.ngrok.io", 43 | "*.powerapps.com", 44 | "youtu.be", 45 | "*.youtube.com", 46 | "{{appDomain}}.azurewebsites.net", 47 | "token.botframework.com", 48 | "{{spDomain}}.sharepoint.com"], 49 | "webApplicationInfo": { 50 | "id": "{{clientid}}", 51 | "resource": "api://{{appdomain}}.azurewebsites.net/{{clientid}}" 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/Manifest/outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/msft-teams/tools/ffb22ca34d4486c02fc162f78d58066433c14086/TeamsSampleHub/SampleHubReactVersion/Manifest/outline.png -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/ConfigureSwaggerOptions.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Helper class for enabing swagger ui 3 | // 4 | // 5 | // Copyright (c) Microsoft. All Rights Reserved. 6 | // 7 | 8 | namespace SampleHubApi 9 | { 10 | using Microsoft.AspNetCore.Mvc.ApiExplorer; 11 | using Microsoft.Extensions.DependencyInjection; 12 | using Microsoft.Extensions.Options; 13 | using Microsoft.OpenApi.Models; 14 | using Swashbuckle.AspNetCore.SwaggerGen; 15 | 16 | /// 17 | /// Would be used in enabling the swagger interface to validate the web service calls across the pipeline 18 | /// 19 | public class ConfigureSwaggerOptions : IConfigureOptions 20 | { 21 | /// 22 | /// Provider field 23 | /// 24 | public readonly IApiVersionDescriptionProvider Provider; 25 | 26 | /// 27 | /// Initializes a new instance of the class 28 | /// 29 | /// Provider input 30 | public ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider) 31 | { 32 | Provider = provider; 33 | } 34 | 35 | /// 36 | /// Method this would help in creating information with web service version 37 | /// 38 | /// input value 39 | /// returns result 40 | public static OpenApiInfo CreateInfoForApiVersion(ApiVersionDescription description) 41 | { 42 | OpenApiInfo info = new OpenApiInfo() 43 | { 44 | Title = "Sample Hub API", 45 | Version = description.ApiVersion.ToString(), 46 | Description = "A sample hub api with Swagger and API versioning.", 47 | }; 48 | 49 | if (description.IsDeprecated) 50 | { 51 | info.Description += " This API version has been deprecated."; 52 | } 53 | 54 | return info; 55 | } 56 | 57 | /// 58 | /// Initializes the swagger options that would enable over the service 59 | /// 60 | /// Options parameter 61 | public void Configure(SwaggerGenOptions options) 62 | { 63 | foreach (ApiVersionDescription description in Provider.ApiVersionDescriptions) 64 | { 65 | options.SwaggerDoc(description.GroupName, CreateInfoForApiVersion(description)); 66 | } 67 | } 68 | } 69 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Helpers/ExceptionExtension.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Helper class for exception logging. 3 | // 4 | // 5 | // Copyright (c) Microsoft. All Rights Reserved. 6 | // 7 | 8 | using Microsoft.AspNetCore.Builder; 9 | using Microsoft.AspNetCore.Diagnostics; 10 | using Microsoft.AspNetCore.Hosting; 11 | using Microsoft.AspNetCore.Http; 12 | using Microsoft.Extensions.Hosting; 13 | using Microsoft.Extensions.Logging; 14 | 15 | namespace SampleHubApi.Helpers 16 | { 17 | /// 18 | /// Extension class to add exception as a middleware 19 | /// 20 | public static class ExceptionExtension 21 | { 22 | public static void AddProductionExceptionHandling(this IApplicationBuilder app, ILoggerFactory loggerFactory) 23 | { 24 | app.UseExceptionHandler(errorApp => 25 | { 26 | errorApp.Run(async context => 27 | { 28 | context.Response.StatusCode = 500; 29 | context.Response.ContentType = "text/plain"; 30 | IExceptionHandlerFeature errorFeature = context.Features.Get(); 31 | if (errorFeature != null) 32 | { 33 | ILogger logger = loggerFactory.CreateLogger("Global exception logger"); 34 | logger.LogError(500, errorFeature.Error, errorFeature.Error.Message); 35 | } 36 | await context.Response.WriteAsync("There was an error"); 37 | }); 38 | }); 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Helpers/VersioningExtension.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Helper class for version handling. 3 | // 4 | // 5 | // Copyright (c) Microsoft. All Rights Reserved. 6 | // 7 | namespace SampleHubApi.Helpers 8 | { 9 | 10 | using Microsoft.AspNetCore.Mvc; 11 | using Microsoft.AspNetCore.Mvc.Versioning; 12 | using Microsoft.Extensions.DependencyInjection; 13 | /// 14 | /// Version extenstion method would be used in differentiating the apis 15 | /// 16 | public static class VersioningExtension 17 | { 18 | /// 19 | /// Versioning helper method would used in differentiating the api versions 20 | /// 21 | /// 22 | public static void AddVersioning(this IServiceCollection services) 23 | { 24 | services.AddApiVersioning( 25 | config => 26 | { 27 | config.ReportApiVersions = true; 28 | config.AssumeDefaultVersionWhenUnspecified = true; 29 | config.DefaultApiVersion = new ApiVersion(1, 0); 30 | config.ApiVersionReader = new HeaderApiVersionReader("api-version"); 31 | }); 32 | services.AddVersionedApiExplorer( 33 | options => 34 | { 35 | options.GroupNameFormat = "'v'VVV"; 36 | 37 | // note: this option is only necessary when version by url segment. the SubstitutionFormat 38 | // can also be used to control the format of the API version in route templates 39 | options.SubstituteApiVersionInUrl = true; 40 | }); 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Interfaces/IGraph.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace SampleHubApi.Interfaces 6 | { 7 | using SampleHubApi.Models; 8 | using System.Threading.Tasks; 9 | 10 | /// 11 | /// Graph Interface 12 | /// 13 | public interface IGraph 14 | { 15 | /// 16 | /// Declaration of method 17 | /// 18 | /// TokenResponse instance 19 | /// string type 20 | /// Task string 21 | Task GetPhoto(string userObjectId); 22 | 23 | /// 24 | /// Declaration of method 25 | /// 26 | /// TokenResponse instance 27 | /// task TeamMembers 28 | Task GetTeamMembers(); 29 | 30 | /// 31 | /// Declaration of method 32 | /// 33 | /// User id Token instance 34 | /// task GetAccessTokenOnBehalfUserAsync 35 | Task GetAccessTokenOnBehalfUserAsync(string idToken); 36 | } 37 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Interfaces/ISharePoint.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace SampleHubApi.Interfaces 6 | { 7 | using SampleHubApi.Models; 8 | using System.Threading.Tasks; 9 | 10 | /// 11 | /// SharePoint Interface 12 | /// 13 | public interface ISharePoint 14 | { 15 | /// 16 | /// Declaration of method. 17 | /// 18 | /// Task string 19 | Task GetAuthenticationToken(); 20 | 21 | /// 22 | /// Declaration of method. 23 | /// 24 | /// Task News 25 | Task GetNewsFromSharePoint(); 26 | } 27 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Interfaces/ITableStorage.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace SampleHubApi.Interfaces 6 | { 7 | using SampleHubApi.Models; 8 | using System.Threading.Tasks; 9 | 10 | /// 11 | /// Storage table Interface 12 | /// 13 | public interface ITableStorage 14 | { 15 | /// 16 | /// Declaration of method. 17 | /// 18 | /// Task CompanyCommunicatorTableData 19 | Task GetAdaptiveCardAsync(); 20 | } 21 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Models/CompanyCommunicatorTableData.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace SampleHubApi.Models 6 | { 7 | /// 8 | /// Class for accessing storage table 9 | /// 10 | public class CompanyCommunicatorTableData 11 | { 12 | /// 13 | /// Gets or sets Array of storage table records. 14 | /// 15 | public Record[] Value { get; set; } 16 | } 17 | 18 | /// 19 | /// Storage table record. 20 | /// 21 | public class Record 22 | { 23 | /// 24 | /// Gets or sets Storage Table Partition key for company communicator 25 | /// 26 | public string PartitionKey { get; set; } 27 | 28 | /// 29 | /// Gets or sets Storage Table Row key for company communicator 30 | /// 31 | public string RowKey { get; set; } 32 | 33 | /// 34 | /// Gets or sets Adoptive card from storage table 35 | /// 36 | public string Content { get; set; } 37 | 38 | /// 39 | /// Gets or sets Teams channel id where the message is being posted 40 | /// 41 | public string TeamsInString { get; set; } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Models/News.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace SampleHubApi.Models 6 | { 7 | /// 8 | /// News Model 9 | /// 10 | public class News 11 | { 12 | /// 13 | /// Gets or sets SharePoint News component array value 14 | /// 15 | public Value[] Value { get; set; } 16 | } 17 | 18 | /// 19 | /// News item model for SharePoint component 20 | /// 21 | public class Value 22 | { 23 | /// 24 | /// Gets or sets SharePoint News Title 25 | /// 26 | public string Title { get; set; } 27 | 28 | /// 29 | /// Gets or sets SharePoint News Description 30 | /// 31 | public string Description { get; set; } 32 | 33 | /// 34 | /// Gets or sets SharePoint News Link 35 | /// 36 | public string ODataOriginalSourceUrl { get; set; } 37 | } 38 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Models/TeamMemberDetails.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace SampleHubApi.Models 6 | { 7 | /// 8 | /// Team members details Model 9 | /// 10 | public class TeamMemberDetails 11 | { 12 | /// 13 | /// Gets or sets AAD User Name 14 | /// 15 | public string GivenName { get; set; } 16 | 17 | /// 18 | /// Gets or sets AAD User's Principal Name 19 | /// 20 | public string UserPrincipalName { get; set; } 21 | 22 | /// 23 | /// Gets or sets AAD User's Job title 24 | /// 25 | public string JobTitle { get; set; } 26 | 27 | /// 28 | /// Gets or sets AAD User profile photo 29 | /// 30 | public string ProfilePhotoUrl { get; set; } 31 | } 32 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Models/TeamMembers.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace SampleHubApi.Models 6 | { 7 | /// 8 | /// TeamMembers Model. 9 | /// 10 | public class TeamMembers 11 | { 12 | /// 13 | /// Gets or sets Array of Team members. 14 | /// 15 | public Member[] Value { get; set; } 16 | } 17 | 18 | /// 19 | /// Model for Member. 20 | /// 21 | public class Member 22 | { 23 | /// 24 | /// Gets or sets User's AAD Id. 25 | /// 26 | public string Id { get; set; } 27 | 28 | /// 29 | /// Gets or sets User's AAD given name. 30 | /// 31 | public string GivenName { get; set; } 32 | 33 | /// 34 | /// Gets or sets User's AAD job title. 35 | /// 36 | public string JobTitle { get; set; } 37 | 38 | /// 39 | /// Gets or sets User's AAD user principal name. 40 | /// 41 | public string UserPrincipalName { get; set; } 42 | } 43 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Models/TokenResponse.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright (c) Microsoft. All Rights Reserved. 3 | // 4 | 5 | namespace SampleHubApi.Models 6 | { 7 | /// 8 | /// Access token model 9 | /// 10 | public class TokenResponse 11 | { 12 | /// 13 | /// Gets or sets Access token 14 | /// 15 | public string Access_token { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Program.cs: -------------------------------------------------------------------------------- 1 | // 2 | // Main class or program to start the api 3 | // 4 | // 5 | // Copyright (c) Microsoft. All Rights Reserved. 6 | // using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Hosting; 9 | 10 | namespace SampleHubApi 11 | { 12 | public class Program 13 | { 14 | public static void Main(string[] args) 15 | { 16 | IHost host = CreateHostBuilder(args).Build(); 17 | host.Run(); 18 | } 19 | public static IHostBuilder CreateHostBuilder(string[] args) 20 | { 21 | return Host.CreateDefaultBuilder(args) 22 | .ConfigureWebHostDefaults(webBuilder => 23 | { 24 | webBuilder.UseStartup(); 25 | }); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/SampleHubApi.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | InProcess 6 | update your appinsight id 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/SampleHubApi.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29613.14 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SampleHubApi", "SampleHubApi.csproj", "{3B5FA7D9-FA22-48CC-8011-2018A01EC055}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {3B5FA7D9-FA22-48CC-8011-2018A01EC055}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {3B5FA7D9-FA22-48CC-8011-2018A01EC055}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {3B5FA7D9-FA22-48CC-8011-2018A01EC055}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {3B5FA7D9-FA22-48CC-8011-2018A01EC055}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {C30FBF0B-794A-4C8C-B13D-59BC16283287} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/Settings.StyleCop: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /TeamsSampleHub/SampleHubReactVersion/SampleHubApi/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "AzureAd": { 3 | "Instance": "https://login.microsoftonline.com/", 4 | "TenantId": "", 5 | "ClientId": "", 6 | "ApplicationIdURI": "", 7 | "AppSecret": "", 8 | "AuthUrl": "/oauth2/v2.0/token", 9 | "ValidIssuers": "https://login.microsoftonline.com/TENANT_ID/v2.0,https://sts.windows.net/TENANT_ID/" 10 | }, 11 | "Logging": { 12 | "LogLevel": { 13 | "Default": "Information", 14 | "Microsoft": "Warning", 15 | "Microsoft.Hosting.Lifetime": "Information" 16 | } 17 | }, 18 | "AllowedHosts": "*", 19 | "AzureClientId": "", 20 | "SharePointClientId": "", 21 | "AppSecret": "", 22 | "Resource": "", 23 | "ListId": "", 24 | "StorageTableEndPoint": "", 25 | "TenantSharePointDomain": "https://contosotown.sharepoint.com", 26 | "BaseUrl": "update your baseurl", 27 | "GroupsEndPoint": "https://graph.microsoft.com/v1.0/groups/", 28 | "TeamId": "", 29 | "TeamMembersCount": 8, 30 | "UsersEndPoint": "https://graph.microsoft.com/v1.0/users/", 31 | "TeamsConfiguration": { 32 | "DeepLinkBaseUrl": "https://teams.microsoft.com/l/entity/", 33 | "TrainingVideoUrl": "", 34 | "ChannelChatUrl": "", 35 | "ShiftsAppId": "", 36 | "TasksAppId": "", 37 | "NewsAppId": "", 38 | "PayStubsAppId": "", 39 | "BenefitsAppId": "", 40 | "RewardsAppId": "", 41 | "KudosAppId": "", 42 | "SurveyAppId": "", 43 | "SupportAppId": "", 44 | "TrainingAppId": "", 45 | "PortalAppId": "", 46 | "InsightsAppId": "", 47 | "ReportAppId": "", 48 | "TeamId": "", 49 | "HandBookUrl": "" 50 | }, 51 | "ApplicationInsights": { 52 | "InstrumentationKey": "" 53 | } 54 | } 55 | --------------------------------------------------------------------------------