[TOB-241,38,20,62,396,397,399,400,73,458,460,425] feat: v1.0.0

[TOB-241] feat: Add configuration page for attachment tags

* Add basic settings routing
* Add back end calls to add tags
* Add component for list of items
* Integrate component into settings page

[TOB-38] feat: Add configuration page for departments

* Add util functions to parse CSV data
* Add back end calls for departments settings
* Add store effect for departments settings
* Add pipes to convert departments data
* Add component to show department table
* Integrate components into settings page

[TOB-20] feat: Add configuration page for text blocks

* Add back end calls for text block config
* Add store effect for text block config
* Add pipe to create select options from array
* Resize text areas after rendering
* Add class for text block configuration form
* Add component to edit text blocks
* Add component to edit text block groups
* Add component to edit select lists
* Integrate components into settings page

[TOB-62] feat: Add configuration page for user

* Add back end calls for user configuration
* Add user table component
* Add user settings form component
* Add pipes to transform and filter user data
* Integrate components into settings page

[TOB-396] feat: Select position on leaflet map only via click

[TOB-397] feat: Add location search for leaflet map

* Add back end calls for Nominatim search
* Add search bar to leaflet map component
* Reorganize map module as feature module
* Integrate map store into leaflet map component

[TOB-399] feat: Show username of task that is currently claimed

[TOB-400] feat: Show confirm dialog before delete operations

[TOB-73] feat: Add configurable help url

* Add help url to app.config.json
* Use help url in header bar
* Redirect to help url on help route

[TOB-458] refactor: Auto activate search filters on value changes

* Auto activate search filter on value change for statement search
* Auto activate search filter on value change for user search

[TOB-460] feat: Open GIS merely via GET call

[TOB-425] fix: Minor bug fixes

* Fix minor styling issues
* Hide contribution status in task create negative response

Signed-off-by: Christopher Keim <keim@develop-group.de>
363 files changed
tree: 698e34dbce8ad8a1cfa2f492d9491c6fe439b0fa
  1. .idea/
  2. .storybook/
  3. docker/
  4. scripts/
  5. src/
  6. .editorconfig
  7. .gitignore
  8. .huskyrc.json
  9. .stylelintrc.json
  10. angular.json
  11. app.config.json
  12. browserslist
  13. Dockerfile
  14. karma.conf.js
  15. LICENSE.md
  16. NOTICE.md
  17. package-lock.json
  18. package.json
  19. proxy.conf.json
  20. README.md
  21. sonar-project.properties
  22. tsconfig.app.json
  23. tsconfig.json
  24. tsconfig.spec.json
  25. tslint.json
  26. 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 file ./app.config.json. Changes to these properties take only effect after (re-)building the application.

  • 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
  • routes.userDocu: Route on which the user documentation is served
  • leaflet.urlTemplate: URL template to the map tile server required by Leaflet
  • leaflet.attribution: Attribution which is added to all Leaflet maps
  • leaflet.lat/leaflet.lng/leaflet.zoom: Default coordinates and zoom level to which all leaflet maps are initially configured
  • gis.urlTemplate: URL template to the geographic information system (GIS)
  • gis.projectionFrom: Coordinate projection used by the configured Leaflet tile server
  • gis.projectionTo: Coordinate projection used in the configured GIS
  • nominatim.url: URL to a Nominatim geocoding service
  • nominatim.searchQueryPrefix: Prefix which is added automatically to every Nominatim search query

The following key words are replaced in the given GIS URL template for each map view:

  • {centerX}, {centerY}: Center coordinates
  • {northEastX}, {northEastY}: North east boundary coordinates
  • {northWestX}, {northWestY}: North west boundary coordinates
  • {southEastX}, {southEastY}: South east boundary coordinates
  • {southWestX}, {southWestY}: South west boundary coordinates
  • {user}: User name

All coordinates are transformed via a HTTP call to the back end. For all available projections, please visit Proj4j.

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.