<commit_before>POC of new oVirt User Portal.

## Goals
- Built on reusable components
    - deploy User Portal as a self-standing app
    - integrate in ManageIQ
    - customize for your own oVirt UI 
- In comparison to recent GWT UserPortal:
    - improved usability and Look&Feel
    - simplified maintenance & ongoing development
    - faster UI responses (incl. start-up)      

For more info, see [doc/goals.md](https://github.com/mareklibra/userportal/blob/master/doc/goals.md)
 
## How To Run
So far, the UserPortal is under development.
User-friendly installation & setup will follow.

For early testing:

**Prerequisities:**

- Have the oVirt engine running at https://[ENGINE_URL]
    - example: https://engine.local/ovirt-engine 
- tested with npm version 3.10.8
    - known issue with missing dependencies with npm v2.15.9

**For Development:**

- update package.json to (see above):
    - `"proxy": "https://[ENGINE_URL]"`
    - example at the end of the package.json:
        - "proxy": "https://engine.local/ovirt-engine"

- alternatively using the `ENGINE_URL` environment variable
    - `ENGINE_URL=https://my.other.engine/ovirt-engine npm start`
    - when using both the `proxy` field in `package.json` and the `ENGINE_URL` environment
    variable, the environment setting takes precedence.

- `npm i`
- `HTTPS=true npm start`
- access the UserPortal at [https://localhost:3000/](https://localhost:3000/)

**Quick run using Docker**

If you don't like to burden your system with all required Node.js dependencies,
a prebuilt docker image `matobet/userportal` is available for standalone usage with a running
oVirt engine instance.

Just specify where your oVirt engine is running and expose the port `3000` from the container. Example:

  `docker run --rm -it -e ENGINE_URL=https://my.ovirt.instance/ovirt-engine/ -p 3000:3000 matobet/userportal`

**Production Build**

- `npm i && npm run build`
- result is in UserPortal/build
- TODO: an RPM will be provided ...

## Technical Details  
- components maintained in [ovirt-ui-components](https://github.com/matobet/ovirt-ui-components) <commit_msg>README.md updated for changes in packaging<commit_after>POC of new oVirt User Portal.

## Goals
- Built on reusable components
    - deploy User Portal as a self-standing app
    - integrate in ManageIQ
    - customize for your own oVirt UI 
- In comparison to recent GWT UserPortal:
    - improved usability and Look&Feel
    - simplified maintenance & ongoing development
    - faster UI responses (incl. start-up)      

For more info, see [doc/goals.md](https://github.com/mareklibra/userportal/blob/master/doc/goals.md)
 
## How To Run
**Prerequisities:**

- Have the oVirt engine running at https://[ENGINE_URL]
    - example: https://engine.local/ovirt-engine 
- known issue with missing dependencies with npm v2

**Build**

After _git clone_, run:

    ./autogen.sh
    make    # to create the 'build' directory 
    or
    make rpm    # to create (s)rpms under 'tmp.repos'

**RPM installation**

The rpm installs to `/user/share/ovirt-web-ui`.

New ovirt-web-ui.war is added to the existing ovirt-engine.ear.


**Quick run using Docker**

If you don't like to burden your system with all required Node.js dependencies,
a prebuilt docker image `matobet/userportal` is available for standalone usage with a running
oVirt engine instance.

Just specify where your oVirt engine is running and expose the port `3000` from the container. Example:

  `docker run --rm -it -e ENGINE_URL=https://my.ovirt.instance/ovirt-engine/ -p 3000:3000 matobet/userportal`


## Technical Details  
- components maintained in [ovirt-ui-components](https://github.com/matobet/ovirt-ui-components) 
{'fraction_non_alphanumeric': 0.10051337476357741, 'fraction_numerical': 0.011078087003512564, 'mean_word_length': 3.536764705882353, 'pattern_counts': {'":': 2, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 15, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3762598', 'n_tokens_mistral': 1184, 'n_tokens_neox': 1111, 'n_words': 406}