New Features in EPrints 3.1

From EPrints Documentation
Revision as of 23:11, 6 April 2008 by WikiSysop (talk | contribs) (Redesigned "Manage Deposits" and "Review" pages)
Jump to: navigation, search

New Features


The views part of EPrints has had a significant rewrite.

  • Significant speed improvements
  • On the command line, epadmin refresh_views, and a button on the Admin web page, which both cause all view pages to be regenerated next time they are requested.
  • Groupings: You may configure alternate groupings for the views pages. Eg. group results by type, or by creators first initial.
  • Views can be set to regenerate if they are requested and the file on disk is older than a specified age.
  • Generate_views can be limited to just one view or language. Also just the menu pages, or just the lists-of-citations pages.

"Abstract" pages (the page which describes an eprint)

  • These can now be refreshed using epadmin or the web-interface.

XML based Scripting


This is a new tag for XML files: <epc:foreach> takes a list (eg. the value of a "multiple" field) and returns the contents of the tag once for each value in the

  <epc:foreach expr="creators_name" iterator="name">
    <li>(<epc:print expr="$name" />)</li>

which would resolve to something like:

  <li>(Smith, John)</li>
  <li>(Jones, Davy)</li>


This just returns the length of a string. Useful in the issues.xml for identifying very long or short strings.

<spc:print expr="title.strlen()" />

would return the number of characters in the title field.


The today() function takes no parameters and returns the current date.

DATE.datemath( CHANGE, TYPE )

CHANGE is a positive or negative value and type is year, month or day. Returns the resulting date. For example:

today().datemath( -6, "month" )

would return a date six months before today.

Handy Hooks

Hooks are easy ways to add some code to be run on certain events. New hooks are:

  • when a user logs out.
  • when the thumbnails for a document are (re)generated.

Submission Process

  • Document Upload now allows upload+unpacking of .tgz or .zip files.
  • Document Upload offers "capture from URL".
  • Documents now have an option to convert them to any format available in the convert plugins.
  • There's a convert plugin to turn .doc into .pdf, which is available from the upload screen convert option.
  • Also plugins to convert PDFs and images to various image formats (png, jpg etc.)
  • Option to allow import plugins to caputre full text from URLs in the imported data.


  • Existing export plugins have been improved in terms of speed and memory usage.
  • The BibTeX export no longer requires an external module.
  • EAP (SWAP) Plugin - The EPrints Application Profile.
  • XSLT based export plugins support.
  • IDs Plugin - just export the IDs of each item.
  • ListUserEmails Plugin - lists the emails of a set of users. Only available to repository staff. This replaces the list_user_emails command.
  • DatabaseSchema Plugin - exports the database schema.
  • Plugin to Export history dataobjects in ical format. Potentially useful for preserving/sharing history in a standard format.


  • XSLT import plugin system
  • Import scripts can now download documents from a URL (mainly aimed at the EP3 XML format).
  • Added import dataset for keeping track of imports.
  • In the web interface, you can import from a file instead of just cut-and-pasting metadata.
  • Also, the Import screen has an import full text option, if web imports are enabled in the config.


  • Search by a sub-object field (eg. search eprints by the format of their documents)
  • Search by a related-object field (eg. search eprints by the name of the depositing user)


  • Abstracted database layer to allow support of other databases.
  • Oracle Support!
  • Writing objects which have not changed is now optimised to not actually write, speeding up some parts of the system.
  • EPrints fields may be marked as volatile. These fields can be modified without causing a change to the last_modified time of the eprint, the revision_id does not increase and no history event is created. These fields are useful for storing values which change frequently, such as citation counts or hit counts imported from an external tool.
  • Messages and login_tickets are now datasets.
  • epadmin has a command to create anything missing in the database. Handy if you want to add a field, you no longer have to fiddle with the SQL.

Redesigned "Manage Deposits" and "Review" pages

  • Columns may now be moved left and right.
  • Columns may be deleted.
  • A column may be added for any eprint field.
  • Changes to columns are saved on the user record.
  • Added icons for common actions (edit, deposit, etc.)


  • New form based interface for admins to add metadata fields via the web.
  • Admins may view configuration via the web.
  • Admins may modify configuration via the web.
  • Phrases, Citations, Workflows, Templates and static files are automatically re-read if they are altered. This means no more running generate_static every five minutes (although you still need it to ADD files)
  • Buttons to refresh the configuration, the views and the abstracts, via the Admin page.
  • When creating a new repository, a db connection error doesn't abort the process, and you are offered a random password to use for the db account.
  • errors and warnings in executing code from .pl files now show correct line number and filename making debugging less annoying.
  • epadmin erase_data now recreates all tables, rather than drop and recreate the entire database.
  • Added plugin-masking so a local plugin can take the id of an existing plugin even though it has a different Perl class.
  • epadmin has a command to create anything missing in the database. Handy if you want to add a field.
  • Plugins can now be installed in a repository-specific plugins dir, although the perl package names must be unique.


  • Batch editing: An administrator can perform a search and then set or modify values on all items which match the search.
  • New buttons on the admin screen:
    • send a test email (to check outgoing email is working).
    • refresh the abstracts (on request, not right now)
    • refresh the views (on request, not right now)
    • reload the all configuration files.
  • Staff can now queue an eprint for re-indexing via a button in the list of EPrint actions.
  • New status screen to show database schema (replacing explain_sql)

Semantic Web/Complex Objects

  • We've assigned URI's to each object in each dataset, and you can get at them using $eprint->uri, $user->uri etc.
  • EP3 XML Export now adds the URI to each record.
  • URIs take the format <ARCHIVE_URL>/id/<datasetid>/<objectid> eg.
  • URIs for eprints redirect the abstract page for that eprint.
  • URIs for documents redirect the base URL of that document.
  • Added a "Content" field to documents to describe their relationship to the main record.
  • Added a "Relation" field to documents and eprints. This is a list of URI's and relationship type, and using several eprints records, complex objects can be described.


  • Significant improvemnts to the speed items are indexed.


  • Can now auto-complete on "select" fields.
  • New options for autocompletion to target cells in the row being autocompleted, and to hide & show HTML elements when the auto-completion is triggered.
  • Added some divs to the input forms to act as targets for the autocompletion and other javascript.


  • Float fields are now searchable (and searches can be mixed with ints)
  • search cgi now understands the "EX" flag for exact matching. Not available via the form interface, but handy for some scripts.
  • Made it possible for search results to show zero matches (so you can create an export).

Improved privilage handling



The toolbox is a command line tool allows eprints and documents to be searched, queried and modified. Even adding files to documents. This is potentially very powerful as it allows a way to script reading and writing data without learning Perl. There's also a CGI interface, but it should be carefully secured before use.

- Support for alternate templates for a view, subject, abstract page and static file. Also screens can tell their processor to use a different template file. - specifying privs can now be done at the level of individual privs. - Privs/roles can be set on individual users. - allowing hats to be assigned. - oai_accesslog script to allow users with a given privilage to get access to access-logs via OAI.- New random data generating script to create any amount of random eprints. - abstracts now regenerate if older than a set date. - New types of "thumbnail" format can be added - eg. fullsize. - Added some new Extra render fields: -- renderer for URLs which truncates very long URLs at the end -- renderer for URLs which truncates very long URLs in the middle -- renderer for the related-urls field to lay out the values more sensibly. -- render_possible_doi links to the DOI resolver if the field appears to be a DOI, otherwise doesn't. - New EPrints::Extras to add some useful ordering functions. -- english_title_orderkey - shifts a/an/the to the end of the sortkey. Also removes any non alphanumerics from the start of the title. - added importid to eprints to link them to the related import object. - added source_id to eprints to describe the id in the source repository. - Lists of checkboxes which are more than 5 items long are now rendered as two columns. - Added config option to set ciation style sent out in saved searches. - New document icons for zip, tgz, rtf, xml, ppt, video, audio. - New "Issues" system and plugins, with a tab on eprints and an issues search. -- EPrint Tab -- Audit Script -- Issues Search -- Issues Plugins

Changes to default configuration. These will not appear in your configuration, but you should consider applying any you like the sound of! See the lib/defaultcfg dir to see the default config files for a new repository.

Changes to default configuration. These will not appear in your configuration, but you should consider applying any you like the sound of! See the lib/defaultcfg dir to see the default config files for a new repository.

- added contributor field with a related nameset for type of contributor. - new default document formats: zip, tgz, rtf, xml, ppt, bz2, audio and video. - added documents.format to eprint search - added several more sub-object searches to default cfg. - Improved the message at the top of the default homepage to be more friendly and link to a "what next?" page in the wiki. - Searches are now configured by default to show zero results (rather than returning to the search form). - admin users gain role "edit-config" - some eprint fields now use the new Extras for ordering and rendering: -- related_urls uses the related urls renderer. -- official_url uses the end-truncating URL renderer. -- title now uses english_title_orderkey -- id_number uses render_possible_doi - added document.content to the workflow - thesis only defaults to unpublished, not forced to be unpublished. - added a default issues.xml file to spot some common issues. - removed item_fields and review_fields from the user workflow as these can now be modified more easily from the screens themselves.