Code Monkey home page Code Monkey logo

openillink's Introduction

OpenILLink

OpenILLink is a web based Inter Library Loan and document delivery management sytem based on OpenURL and currently used by some academic libraries in Switzerland

Main features

  • Web-based forms to order articles and books
  • List / find orders based on attributes such as status, date, title, etc.
  • Handle multiple collaborating libraries
  • Help locating documents in configurable list of remote sources
  • Customizable worflows
  • Accounts-based access to professional interface
  • Free, open-source (GPL v3)

Requirements

  • PHP >= 5.6
  • MySQL >= 5.1
  • Apache

Installation

Please refer to the OpenILLink installation guide

Contributing

Please refer to CONTRIBUTING guide and Native Language Support

Browsers compatibility

OpenILLink should work on modern browsers. Should you encounter a compatibility problem on a particular browser and version, please submit an issue so that we can test it for that specific browser/version using BrowserStack.

browserstack-logo 2x

openillink's People

Contributors

jeromecaffaro avatar mdallavalle avatar pablogit avatar michaelravedoni avatar

Stargazers

 avatar Tom Edwards avatar Hyunmin Kim (Brandon) avatar James Fournie avatar

Watchers

James Cloos avatar  avatar

openillink's Issues

MySQL 5.7 modes for blank string ids and dates

Hello,

I have been trying to set up OpenILLink with MySQL 5.7 and I was having issues creating orders because of inserting blank strings for 'illinkid' and when various date fields are not filled in. To fix this I removed the MySQL modes STRICT_TRANS_TABLES, NO_ZERO_IN_DATE and NO_ZERO_DATE from the default MySQL modes in 5.7 and I was getting no issues.

Programatically it can be fixed by removing 'illinkid' from the 'orders_new' INSERT query and letting auto-increment handle it, and setting empty dates to Null instead of '0000-00-00'. Would there be a reason for not doing this?

RFC: batch/multiple orders support

Add support to send multiple orders from an uploaded list of references (provided in format such as RIS or EndNote XML, etc.).

Libraries such as https://github.com/hash-bang/RefLib could be used to parse input files.

Provide possibility to edit the list of uploaded references before they are sent.

Optionally, find a way to tag these orders specifically such that they can be processed independently, if needed.

Use of oaDOI API

It would be nice to add an alert when the paper is available in open access, using the oaDOI API (https://oadoi.org/api), for the users at the moment they submit the order form or as an alert for managers when they open the details page.

Fix uninitialized `debugOn` variable

Due to the ordering of the require{_once} instructions, it can happen that debugOn variable is not correctly initialized when used. For eg:

Notice: Undefined variable: debugOn in includes\orders_list.php on line 40

Duplicates detection using start page only

When submitting new orders, duplicates can be detected using combined year+volume+page. Pages are sometimes mentionned using different type of ranges on the source. For eg:

  • 217-20
  • 217-220

It has been suggested to consider only the starting page when searching for matching orders in the DB.

Highlighting duplicate orders: only works in customer language

After commit 6c4f236 duplicate orders are highlighted for the admins. Since a duplicate warning is currently only stored as text, the highlighting works based on the existence of the sentence "Warning. Possible duplicate of the order" (which is stored in the language chosen by the customer, for eg. "English"). When the OpenILLink interface is displayed in a different language (for eg. "French") by the "admin", the highlighting searches for the text "Attention. Possible doublon de la commande." which won't match the English string.

Folders: enable web folders administration via config option

Add a configuration variable in order to enable/disable administration of "folders" via the web interface.

It is proposed that administration of "folders" via the web is not (completely) enabled until a config variable (eg. configEnableFoldersEdit ) is set to true. When it is not enabled, the textarea for the request would be marked as "read-only", and the business logic would not update the corresponding column (ditto when creating filters).

Config: default options and site overlay-config file

Currently when a new configuration variable is added to config.php, every site admin that upgrade will need to specifically merge her config file with the default, upgraded config.php, i.e. must add any new configuration variable to ensure that OpenILLink will run.

Make it possible for site admins to configure options in a file that overrides the default OpenILLink configuration, and inherit options that are not specifically configured.

This could be done as simply as having config.php to first import from a default_config.php file where all configurations are defined.

RFC: switching to gettext

OpenILLink localizes its interface using array variables defined in translations.php. An alternative way to handle internationalization would be to use gettext.

It is proposed to switch OpenILLink to gettext in order to:

  • ease maintenance of translatable strings
  • make it possible for non-technical users to provide translations
  • provide a clearer separation between business logic and user interface
  • adopt a widely used practice to handle I18N
  • etc.

One drawback of using gettext is that it requires to have the gettext module enabled on the server running OpenILLink. Though it seems wideley installed by default, it is interesting to check if it is the case for production sites currently (or planning to) running OpenILLink. This can be checked by inspecting the result of phpinfo().

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.