[TOB-169,290,188,53,350,351,26,23,358] feat: v0.8.0

[TOB-169] feat: Add error messages and extended error handling

 * Add utility rxjs operators for error handling
 * Add toast component and effect for displaying toast
 * Add actions and reducers for statement errors
 * Show error messages in details page
 * Show error messages in edit page
 * Show default error message for unexpected errors
 * Improve error handling in effects
 * Reorganize translations

[TOB-290] feat: Add authorization error handling for process tasks

 * Disable side menu buttons if task is claimed by another user
 * Hide side menu buttons if task can not be claimed at all

[TOB-188] feat: Select geographic position in workflow data form

 * Add leaflet configuration to package.json
 * Add styles for leaflet
 * Add rxjs operator for entering/leaving ngZone
 * Add wrapper directives for leaflet
 * Add select component for map coordinates
 * Submit geographic position in workflow form effect

[TOB-53] feat: Add email functionality

* Add abstract route guard service for user roles
* Add optional styling attribute to side menu
* Optionally hide toggle button in collapsible component
* Use general user role route guards
* Add back end calls for email endpoints
* Add store module for emails
* Add component for displaying email inbox
* Add component for displaying email details
* Automatically select values from email in statement info form
* Extend attachment form components for email information
* Extend attachment store module to handle email attachments

[TOB-350,351] feat: Add reference and creation date to statement model

 * Add additional properties to statement info model
 * Add additional input fields to statement info form

[TOB-26] feat: Add dashboard as general landing page

 * Add utility function to compute time diffs of dates
 * Add back end call for fetching dashboard statements
 * Add store functionality for dashboard
 * Add name attribute for process tasks
 * Add global styles for tables
 * Refactor statement table component
 * Reuse statement table component in dashboard component
 * Integrate store in dashboard component
 * Remove unused code

[TOB-23] feat: Adjust statement editor for negative statements

 * Use seperate text block groups for negative statements
 * Filter displayed arrangement for available text blocks

[TOB-358] fix: Fix minor bugs

 * Reword translations
 * Add tooltips to navigation header
 * Fix position and button style of navigation drop down
 * Fix resizing of side menu in Firefox

Signed-off-by: Christopher Keim <keim@develop-group.de>
293 files changed
tree: 3e4fefa13ac698c501a8a0cbd5d1459a7b3e567e
  1. .idea/
  2. .storybook/
  3. scripts/
  4. src/
  5. .editorconfig
  6. .gitignore
  7. .huskyrc.json
  8. .stylelintrc.json
  9. angular.json
  10. browserslist
  11. karma.conf.js
  12. LICENSE.md
  13. NOTICE.md
  14. package-lock.json
  15. package.json
  16. proxy.conf.json
  17. README.md
  18. sonar-project.properties
  19. tsconfig.app.json
  20. tsconfig.json
  21. tsconfig.spec.json
  22. tslint.json
  23. webpack.config.js
README.md

Eclipse openK User Modules - Statement Public Affairs Frontend

This application represents a user module for the Eclipse openK User Modules project.

Prerequisites

With npm in the path variable, run first npm install to download and install all dependencies of this module. After that, all npm scripts for deploying, developing and testing are available.

Additionally, archiving the build as WAR file requires also the Java Archiver command line tool in the path variable.

Configuration

The whole application can be configured via certain properties in the ./package.json. The following options are available:

  • routes.spaFrontend: Route on which the website is served
  • routes.spaBackend: Route on which the website's backend is served
  • routes.portal: Route on which the main portal is served
  • routes.contactDataBase: Route on which the contact data base module is served

Changes to these properties take only effect after rebuilding the application.

Additionally, the following options can be used to configure all map views based on Leaflet:

  • leaflet.templateUrl: Route to the map tile server required by leaflet
  • leaflet.attribution: Attribution which is added to the leaflet map, e.g. &copy; <a>TileServer</a> contributors
  • leaflet.gis: Route to a GIS system
  • leaflet.lat/leaflet.lng/leaflet.zoom: Default coordinates and zoom level to which all leaflet maps are initially configured

Build

Building the application is done via the Angular CLI or by the provided scripts in the ./package.json (which also provide all necessary configuration steps):

  • npm run build Build the application via the Angular CLI to the ./dist/statement-public-affairs folder
  • npm run archive Archive the build as WAR file to ./dist/statement-public-affairs-frontend.war

Note that the archiving script requires the Java Archiver (jar) command line tool in the path variable.

Development

Run npm run start for setting up a local dev server which is served on http://localhost:4200/. The local dev server is also a proxy which can be configured by the file ./proxy.conf.json. It redirects all calls to the back end to a specific location.

Run npm run test to execute all tests via Karma and Jasmine. This also sets up a local dev server with live reload.

Run npm run test:report instead to generate a coverage report at the folder ./coverage/statement-public-affairs.

Run npm run lint for linting all source files, both typescript and (s)css code.

Run npm run lint:report to generate instead linting report files at ./lint.ts.report.json and ./lint.styles.report.json.

Run npm run sonar to upload the test and linting reports to a sonarqube instance via the sonar-scanner. This can be configured either by the ./sonar-projects.properties file or by arguments on the command line. For example, uploading the reports to a different port can be done via:

npm run sonar -- -Dsonar.host.url=http://localhost:9001

Storybook

Run start:storybook for setting up a local storybook server.

Run build:storybook instead for building the storybook webpage for later use.

Miscellaneous Scripts

Run npm run list-licenses to generate a listing of all packages and their licenses used for production. A file is created at ./licenses.txt. The content of this file is required in the ./NOTICE.md file.

Run npm run check-legal-headers to check if all source files have a specific legal header.

Git Hooks

Run npm run pre-commit to check if a commit passes the pre-commit script. This script concatenates npm run lint and npm run check-legal-headers.