/frdr_discovery

Primary LanguageJavaScriptOtherNOASSERTION

UBC Library Open Collections - Discovery UI Component

This project is a fork of the discovery layer from UBC Library's Open Collections project. The search results and discovery component has been extracted for use in other projects. Functionality is equivalent to the Open Collections search results page, but templates have been modified to depend on vanilla bootstrap classes rather than UBC-CLF styles, and some data has been shimmed to allow it to function with the OC public API as the sole data source.

Usage

Setup

clone into new repo

npm install to install build packages

www/js/bower install to install js dependencies

grunt dev to build dev files (see Gruntfile.js for more actions)

register for an API key at https://open.library.ubc.ca/research and replace the existing (rate-limited) example key in www/js/config-vars.js

Dev

To view the application, run a local server and open www/html/discovery-ui.html. This file contains the base template for the search results UI (Tip: in OSX you can use open a terminal at the www directory and use python -m SimpleHTTPServer to start a simple server).

JavaScript (Angular) App

The discovery layer is primarily an Angular 1.x application that includes a main application and controller in www/js/src/ng/app/results/resultsApp.js. The app relies on a number of shared components and services. Of particular note are www/js/src/ng/app/shared/services/searchString.js and esSearch.js as these create and execute the elasticsearch API query, respectively. They will likely need to be modified or replaced in order for the UI to function with other applications.

All JavaScript dependencies are defined and loaded using require.js, see require-config.js for details.

Stylesheets (SCSS)

Styles are compiled from SCSS files using lib-sass. All CSS files are generated and should never be modified directly!

Use grunt watch from the root directory to watch for changes and to compile SCSS and JavaScript files.

Build

Use grunt prod to create a compressed production build.

Notes

This application is designed to interface with the Open Collections ElasticSearch API and data model. Only data accessible through the OC Public API can be accessed through this standalone version of the UI. Some other required data sources have been shimmed to allow the app to function (ie. collection data service), but all UI elements may not function as expected (ie. save/export results).

License

UBC Library Open Collections: A digital repository aggregator and discovery layer

Copyright (c) 2016 The University of British Columbia

License: GNU General Public License v3.0 (https://www.gnu.org/licenses/gpl-3.0.en.html)

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See http://www.gnu.org/licenses/ for full license.