content/hifi-content/Experiences/Releases/usefulUtilities/hiFiCalendar/2019-07-01_17-47-47
2022-02-13 23:16:46 +01:00
..
clientScripts More files 2022-02-13 23:16:46 +01:00
entities More files 2022-02-13 23:16:46 +01:00
entityScripts More files 2022-02-13 23:16:46 +01:00
entityServerScripts More files 2022-02-13 23:16:46 +01:00
hifiWebApp More files 2022-02-13 23:16:46 +01:00
resources/images More files 2022-02-13 23:16:46 +01:00
calendarConfig.json More files 2022-02-13 23:16:46 +01:00
README.md More files 2022-02-13 23:16:46 +01:00

High Fidelity Calendar

This app lets you integrate with the Google Calendar API to query meeting room schedules.

Setup Instructions

  1. Setup meetingRoom_ui.html by navigating to its folder location opening a powershell window from there. With Node.js installed enter the following commands into the powershell window: npm install -g http-server http-server -p 80

  2. In Google's console API, setup credentials to get an API Key, Client ID, and Client Secret. Paste the Client ID into "meetingRoom_ui.html". You will paste the others into the serverConfig.json file in the hifiWebApp folder.
    Define your permitted access locations to include http://localhost under Domain Verification.

  3. Create a calendarConfig.json file in the root folder that looks like the following:

{
    "TOKEN_SERVER_ID": "<The id of your token server entity>",
    "REDIRECT_URI": "https://highfidelity.co/hifiCalendar/meetingRoom_ui.html",
    "API_BASE": "https://highfidelity.co/hifiCalendar/api/"
}
  1. There is an entities JSON file containing the Calendar board entities, a meeting room zone, and a token server.

  2. The user data for the different types will look like the following:

  • Room Schedule Entity:
{
  "tokenServerID": "{...}",
  "roomScheduleID": "{...}",
  "roomColorID": "{...}",
  "roomColorOccupantsID": "{...}",
  "roomOccupantsListID": "{...}",
  "roomClockID": "{...}"
}
  • Room Occupants List:
{
  "roomOccupantsListID": "{...}",
  "meetingZoneID": "{...}"
}

  • Meeting Room Zone:
{
  "roomOccupantsListID": [
    "{455f56c8-9a76-420f-a8ab-6dad5da7358a}"
  ]
}
  • Token Server:
{
  "calendarScheduleIDs": [
    {
      "name": "Meeting Room 1",
      "id": "{...}"
    },
    {
      "name": "Meeting Room 2",
      "id": "{...}"
    }
  ]
}
  1. Drag and drop the meetingRoomSetup_app.js onto your interface window to run it. Open the app and authorize it with your Google Account information.

Release Notes

3.6 | [commit 04db990] | 2019-07-01

  • Added new way to open up the calendar app in domains

3.5 | [commit 43d222f] | 2019-06-26

3.4 | commit fdf2bae | 2019-06-26

  • Made text entity smaller for event list to prevent overlap JIRA 487

3.3 | commit 428bea52 | 2019-06-21

  • Added intro page for google verification

3.2 | commit 9c01703 | 2019-06-14

  • Fixed double clicking the google button to create duplicate menus
  • Created a custom drop-down solution

3.1 | commit 63609a2 | 2019-06-11

  • Change to encodeURI from encodeURIComponent

3.0 | commit a12bea4 | 2019-05-23

  • Created a token server backend
  • Moved configuration from userData to a JSON
  • Used the PrivateData to store the tokens

2.0 | commit cb8991d

  • Authorization fixes, client app no longer needs to stay open.
  • Clock script added
  • Time display logic implemented for easier reading.

1.0 | commit ad83a9d

  • Initial Release

Known Issues

  • If the occupants list needs to refresh, it will not get the current members in the zone area. It does this by sending a message to the zone client script to send over who is in there, however I can't seem to get that message. Will need to test further if this a platform bug.
  • Some timezone offsets may cause the day to wrap around. Will fix this to have normalized values for 0-24