First, a quick refresher on the way privileges, roles and usertypes relate to each other:

First, a quick refresher on the way privileges, roles and usertypes relate to each other:

−

* A privilege is a very fine-grained right. It allows, for example, a user to view the "history" tab on eprints they submitted, while the eprint is in the inbox. In this case "eprint/inbox/history=user"

+

* A privilege is a very fine-grained right. It allows, for example, a user to view the "history" tab on eprints they submitted, while the eprint is in the inbox. In this case "eprint/inbox/history:owner".

+

* A "role" is a bunch of related privs that may be assigned to a user or usertype.

+

* A "user" has a "usertype". The user_roles.pl config file defines what roles are assigned to each usertype.

STRING.strlen()

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.

today()

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.

Export

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.

Import

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

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)

Database

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.)

Configuration

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.

Administration

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.

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.

Indexing

Significant improvemnts to the speed items are indexed.

Autocompletion

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.

Searching

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 privilege handling

First, a quick refresher on the way privileges, roles and usertypes relate to each other:

A privilege is a very fine-grained right. It allows, for example, a user to view the "history" tab on eprints they submitted, while the eprint is in the inbox. In this case "eprint/inbox/history:owner".

A "role" is a bunch of related privs that may be assigned to a user or usertype.

A "user" has a "usertype". The user_roles.pl config file defines what roles are assigned to each usertype.

Now for the changes in 3.1:

You can add (and remove) individual privs in the user_roles.pl

Also a new field in User can be used to assign

New roles can be configured (roles are a set of related privileges)

Templates

Additional templates can be added and used instead of the default template. You can configure a search and view to use such a template. You can also apply a different template to a static page, abstract page or screen plugin.
A good application of this new feature would be to create a view and search filtered to only show items from the university maths department, and give that view and search a template in the style of the maths dept.

Toolbox

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.

Abstract pages can now be refreshed using epadmin or the web-interface.

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.
- 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.