/lxlviewer

LIBRISXL Viewer

Primary LanguageVue

LXL Viewer

Requirements

Requires the following to be installed on the host machine:

  • Python 2.7+
  • Pip (commonly installed along with Python on modern distros)

(It is recommended to create a virtualenv for hosting self-contained Python environments.)

Run:

$ pip install -r requirements.txt

Runtime Dependencies

Requires a PostgreSQL instance containing a DB setup based on the needs of the external module lxltools.lddb. To run that locally, you'll need:

Building

Initially and whenever the repo is updated, build the web assets:

$ (cd viewer && npm install)

Running

Just call:

$ python serve.py

And go to http://localhost:5000/

If you want to change settings for database access or Flask, create a config file and edit to your liking (e.g. add DEBUG = True):

$ cp instance/config.cfg.in instance/config.cfg

Managing CSS and JS Resources

Requires an installation of Node (including NPM).

Go to the viewer subdirectory:

$ cd viewer/

Initial setup:

$ npm install

During development:

$ npm run watch

Separately building app files:

$ npm run app

Updating vendor dependencies:

$ npm run vendor

Linting

$ npm run app:eslint

Or just lint with your plugin of choice, as long as it uses the config defined in .eslintrc.

Make sure to activate linting of .html files so that eslint will lint your .vue files.

Read more about the eslint-config at airbnb/javascript.

Tests

Requires installing tests prerequsites see tests documentation

Run nightwatch e2e tests with default browser (Firefox)

$ npm run test

Run nightwatch e2e tests with Chrome

$ npm run test:chrome

Run unit tests

$ npm run test:unit