Skip to content

linagora/esn-frontend-calendar

Repository files navigation

esn-frontend-calendar

Calendar application for OpenPaaS

Development

Configuration

First, you want to ensure that the application grid component is provided with the necessary information about the apps via the environment variable APP_GRID_ITEMS:

cp .env.example .env
  • APP_GRID_ITEMS: A stringified JSON representation of the apps to show in the application grid. It has the following shape:
    [
      { "name": "Inbox", "url": "http://localhost:9900/#/unifiedinbox/inbox" },
      { "name": "Calendar", "url": "http://localhost:9900/#/calendar" },
      ...
    ]

Then, launch the dev server on http://localhost:9900:

OPENPAAS_URL=https://dev.open-paas.org npm run serve
  • OPENPAAS_URL: The OpenPaaS URL to be used by the current SPA application. Defaults to http://localhost:8080.

The development server can also be used to serve minified SPA to check that everything is OK:

OPENPAAS_URL=https://dev.open-paas.org npm run serve:prod

Authentication

Authentication is provided by a dedicated SPA esn-frontend-login-app which is defined in the project devDependencies. In order to make it work with the webpack-dev-server launched by the npm run serve command, you will have to generate it like this:

cd ./node_modules/esn-frontend-login && npm install && npm run build

Serve

Go to http://localhost:9900/calendar/ to open the SPA

Build

Generates minified SPA in the ./dist folder:

npm run build:prod

Regarding APP_GRID_ITEMS, you can also provide it as a system variable for production purposes, e.g.:

APP_GRID_ITEMS="[{ \"name\": \"Calendar\", \"url\": \"https://dev.open-paas.org/calendar/\" }, { \"name\": \"Contacts\", \"url\": \"https://dev.open-paas.org/contacts/\" }, { \"name\": \"Inbox\", \"url\": \"http://dev.open-paas.org/inbox/\" }, { \"name\": \"Admin\", \"url\": \"https://dev.open-paas.org/admin/\" }, { \"name\": \"LinShare\", \"url\": \"https://user.linshare-4-0.integration-linshare.org/\" }]" npm run build:prod

Running tests

You can run tests by executing the following command:

npm run test

Note that there is a 10000ms timeout by default. If you want to change that, simply pass the TEST_TIMEOUT environment variable:

TEST_TIMEOUT=2000 npm run test

Debugging tests

You can debug tests on VSCode with Chrome by executing the following command:

npm run test:debug

Then you have to add the following configuration to you launch.json and then run it (F5):

{
  "name": "Attach to Chrome",
  "port": 9222,
  "request": "attach",
  "type": "pwa-chrome",
}

This will let you use breakpoints on the application. Save a file to make tests run again.

Releases

No releases published

Packages

No packages published