[TOB-24] feat: Add functionality to edit raw text in statement editor

 * Add directive for automatically resizing text areas
 * Display replacement texts in preview
 * Use currently set values when converting text blocks to free text
 * Prevent shrink of multiple whitespaces in preview

[TOB-58] feat: Add functionality to edit text palceholders in statement editor

 * Disable statement editor when loading back end data
 * Improve styling and UX of input elements for statement editor
 * Add input elements for text placeholders in statement editor

[TOB-189] feat: Add tagging functionality to attachment form

 * Add abstract component for form arrays
 * Add global styles for checkbox and chips
 * Add rxjs operator to end with another observable
 * Add download service
 * Use abstract form array class in arrangement form
 * Add back end calls for editing attachment tags
 * Use form arrays in existing attachment forms
 * Add user control component for attachments
 * Integrate attachment form in statement editor form
 * Integrate attachment form in statement info form
 * Extend attachment store for tagging
 * Download attachment instead of opening it
 * Add translations

[TOB-63] feat: Select optional departments in workflow data form

 * Add indeterminate functionality to multi select component
 * Adjust back end calls for selecting optional departments

[TOB-282] feat: Add side menu

 * Add navigation links to header bar
 * Add module for side menu
 * Integrate side menu to main navigation page
 * Add empty components for future routes
 * Add side menu to statement details page
 * Add side menu to statement info form
 * Add side menu to workflow data form
 * Add side menu to statement editor form
 * Add translations

[TOB-69] feat: Add functionality for contributions/finalization of statements

 * Add back end calls for contributions/finalization
 * Add component for viewing pdfs
 * Integrate pdf preview to statement editor
 * Add contribution select to statement editor
 * Reorganize statement editor form
 * Prevent parallel get requests in forms

[TOB-181] feat: Add functionality to approve statements

 * Add rxjs operator to emit on completion
 * Reorganize effects for process store
 * Integrate process task effect in statement store
 * Unclaim all tasks when leaving edit page
 * Disable side menus on claim/unclaim
 * Reorganize user roles in core module

[TOB-317] fix: Fix minor bugs

 * Fix positioninig of dropw down template in header bar
 * Properly resize input in comment component
 * Create only one license file for all chunks in webpack plugin

Signed-off-by: Christopher Keim <keim@develop-group.de>
345 files changed
tree: 81eed39aec33ea7a752df33ce8671ca56ac9fc0c
  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

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

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.