AngularJS module to facilitate access to availability information via DAIA
JavaScript HTML CSS Smarty
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
demo
lib
src
test
.gitignore
.travis.yml
CONTRIBUTING.md
Gruntfile.js
README.md
bower.json
karma.conf.js
ng-daia.css
ng-daia.js
ng-daia.min.js
package.json

README.md

ng-daia

AngularJS module to access DAIA services

npm version Build Status Test Coverage GitHub Issues

ng-daia is an AngularJS module to facilitate access Document Availability Information API (DAIA) display DAIA responses.

Install

npm

npm install ng-daia --save

bower

bower install ng-daia --save

Usage

See https://gbv.github.io/ng-daia/ for documentation and usage examples!

Getting started

The demo (https://gbv.github.io/ng-daia/demo) illustrates display of availability information with directives and filters provided by module ng-daia}. Please have a look at the documentation of each directive/filter.

The following minimal example might help to include ng-daia into your website:

<html ng-app="myApp">
<head>
  <script src="angular.min.js"></script>
  <script src="ng-daia.min.js"></script>
  <script>angular.module('myApp', ['ngDAIA']);</script>
  <link href="ng-daia.css" rel="stylesheet" />
</head>
<body>
  <div daia-api="http://your-daia-base-url" daia-id="your-document-id">
  </div>
</body>
</html>

Customization

The default templates, included in ng-daia.js, can be styled with CSS, translated with angular-translate, and replaced with the template-url parameter:

The following CSS classes are used:

  • daia-response: the whole response
  • daia-result: the whole result
  • daia-document: each copy of the result
  • daia-label: style of descriptions
  • availability: overall style for display of availability
  • service-label: style for availability labels
  • availability-available: style for display of available services
  • availability-unavailable: style for display of unavailable services
  • availability-expected: style for display of unavailable services with expected availability
  • availability-limitation: style for limitations (in brackets after the corresponding availability status)
  • returning: overall style for message concerning 'expected' date and link for preordering
  • returning-expected: style for message concerning 'expected' date
  • access: style for display of possible access-link
  • simple-openaccess: style for simple availability "openaccess"
  • simple-loan: style for simple availability "loan"
  • simple-presentation: style for simple availability "presentation"

The default templates are fully prepared for internationalization (i18n) with angular-translate. To use the translations module, first include the following in your html:

<script src="../lib/angular-translate.min.js"></script>

There are several ways to manage translations with angular-translate. You might want to add them directly into your myApp module, or the translations can be put into their own json files and retrieved by your app, which will require an additional package:

<script src="../lib/angular-translate-loader-static-files.min.js"></script>

You then have to extend the app module to enable loading the translations (the filenames would in this case have the format "lang-en.json", etc.):

angular.module('myApp', ['ngDAIA', 'pascalprecht.translate']).config(['$translateProvider', function ($translateProvider) {
    $translateProvider.useStaticFilesLoader({
        prefix: '../src/translations/lang-',
        suffix: '.json'
    });
    $translateProvider.registerAvailableLanguageKeys(['en', 'de'], {
    'en_US':'en','en_UK':'en','de_DE':'de','de_AT':'de','de_CH':'de',
    })
    $translateProvider.fallbackLanguage('en');
    $translateProvider.determinePreferredLanguage();
}]);

As well as exporting the translation tables, this example shows the support for automatic language-detection. The default templates are using the following translation terms:

daia-response terms

  • unknown
  • available
  • unavailable
  • presentation
  • loan
  • interloan
  • none
  • expected
  • openaccess

labels and other text

  • INSTITUTION : reference label to holding institution
  • DOCUMENT : reference label for searched document
  • CATALOG_ENTRY : reference label for document link
  • DEPARTMENT : label for specific part of the institution
  • SIGNATURE : label for alternative id (like shelf mark for physical medium)
  • NO_RECORDS: message shown when no items can be displayed
  • AVAILABILITY : label used before unknown if no items can be displayed
  • EXPECTED_BACK : message
  • RESERVATION : displayed link text for reservation link
  • ACCESS : label displayed if a direct document link exists
  • STATUS : label text for daia-simple output

Demo

The demo (see demo directory of source code repository) contains a more detailed sample application that makes use of ng-daia as well as angular-translate. The demo should be run from a server (e.g. localhost).

Contributing

See CONTRIBUTING.md for development documentation. Contributions and feedback is appreciated!

Contributors

License

Code licensed under the AGPL. Documentation licensed under CC BY 3.0.

DAIA icons (included in daia.css) are based on PICOL icons, CC-BY Melih Bilgil.