Difference between revisions of "New Features in EPrints 3.2"

From EPrints Documentation
Jump to: navigation, search
(SWORD2)
(EPC & EPrints Script)
Line 74: Line 74:
  
 
==EPC & EPrints Script==
 
==EPC & EPrints Script==
* New EPC tag type: epc:debug, which is like print but sends the XML to STDERR for debugging purposes.
+
* New EPC tag: epc:debug, which is like print but sends the XML to STDERR for debugging purposes.
 +
* New EPC tag: epc:set which defines a variable inside it's scope.
 +
* Improvements to the epc:foreach processing (better handling of multiple object types in lists)
 +
* Added "limit" option to epc:foreach to limit the number
 +
* Inside <epc:foreach> blocks an $index variable is set, allowing you to test which interation it's on.
 
* New EPScript methods: citation_link, dataset, related_objects, url, doc_size, is_public, thumbnail_url, preview_link, icon, human_filesize, control_url, contact_email, property, substr, filter_compound_list, to_data_array, pretty_list, array_concat, action_list, action_button, action_title, action_description, action_icon
 
* New EPScript methods: citation_link, dataset, related_objects, url, doc_size, is_public, thumbnail_url, preview_link, icon, human_filesize, control_url, contact_email, property, substr, filter_compound_list, to_data_array, pretty_list, array_concat, action_list, action_button, action_title, action_description, action_icon
* Improvements to the epc:foreach processing (better handling of multiple object types in lists)
+
* New Script methods:  
* New Script method: property() which takes a string and returns a property from a hash or dataobj.
+
** $data.property($key) which takes a string and returns a property from a hash or dataobj.
 +
** $eprint.documents() which returns all the "real" (non-volatile) documents.
 +
* New Script inline math functions: + - / * %
 
* New EPrints Script datatype: DATA_ARRAY: Represents a list of tuples of [$value, $epscript_type]
 
* New EPrints Script datatype: DATA_ARRAY: Represents a list of tuples of [$value, $epscript_type]
  

Revision as of 17:42, 9 February 2010

This page is now describing actual features, rather than planned.

The Planned Features may be useful to improve the quality of descriptions on this page.

NOTE

  • We now recommend LibXML in preference to GDOME. It's less buggy, and easier to install.
  • Upgrade may take several hours as it cleans up the unicode issues in the database.

Database

  • In addition to MySQL, EPrints 3.2 now supports Oracle and Postgres

API

  • This release features a formal API. Not all functionality is yet available via the API, but will be added slowly and carefully in future releases.
  • The bugbear of EPrints internals, EPrints::Session has been merged into EPrints::Repository. All old code will still work.

Documents

  • Thumbnails are now documents in their own right
  • Built in document-format icons, as well as those you configure yourself
  • Thumbnailing now happens in the background as part of the indexer process

Deposit Interface

  • Edit Locking locks records reduces risk of 2 people editing a record at the same time.
  • Option to extract metadata and images from OpenXML files (.docx and .pptx)
  • Offers options to users and editors on the deposit screen if there are problems
  • Document upload screen has been redesgined to be clearer.
  • Split document uploading into adding a new document and editing existing documents
  • The documents inside an EPrint may now be re-ordered
  • Progress bar on file upload
  • Document upload methods (file, url, zip etc.) are now plugin-based and can be extended
  • When attempting to deposit an eprint with problems show Save button
  • Made it an option to provide action buttons top and bottom in workflow

Search & Indexing

  • The search library has been entirely re-written to reduce use of cache tables and to improve performance. Simple searches are now over ten times faster.
  • The indexer now uses plugins, so you can schedule other tasks, like thumbnail conversion, to be done in the background.
  • Added config option "cache_max" to limit the cachemap tables used

Unicode

  • EPrints use of unicode has been significantly improved.

REST

  • A "REST" style interface to objects, via /rest/eprint/23/title.txt, for example. This can also support "PUT" to alter fields!

WebDav

  •  ???
  • (tdb: Too buggy for official release - no decent clients available on standard platforms)

SWORD2

  • SWORD2 (1.3 Specification) is supported.

Semantic Web Support

  • RDF+XML Format
  • N3 Format
  • URIs for all objects, including non dataobjs. eg. Authors, Events, Locations.
  • BIBO Ontology
  • Extendable
  • URIs now use content negotiation to decide which export plugin to redirect to, based on mime-types supplied by plugins and the "accept" header.
  • Relations between eprints and documents

Storage Layer

  • Now uses plugins to store files
    • Local Filesystem
    • Amazon S3
    • Sun Cloud Storage

Speed

  • Search & Indexing much faster
  • Import is faster
  • Other parts of the code have been audited for speed, and optimised.

Import

  • Modified Import UI to allow a per-plugin/single/bulk workflow

EPC & EPrints Script

  • New EPC tag: epc:debug, which is like print but sends the XML to STDERR for debugging purposes.
  • New EPC tag: epc:set which defines a variable inside it's scope.
  • Improvements to the epc:foreach processing (better handling of multiple object types in lists)
  • Added "limit" option to epc:foreach to limit the number
  • Inside <epc:foreach> blocks an $index variable is set, allowing you to test which interation it's on.
  • New EPScript methods: citation_link, dataset, related_objects, url, doc_size, is_public, thumbnail_url, preview_link, icon, human_filesize, control_url, contact_email, property, substr, filter_compound_list, to_data_array, pretty_list, array_concat, action_list, action_button, action_title, action_description, action_icon
  • New Script methods:
    • $data.property($key) which takes a string and returns a property from a hash or dataobj.
    • $eprint.documents() which returns all the "real" (non-volatile) documents.
  • New Script inline math functions: + - / * %
  • New EPrints Script datatype: DATA_ARRAY: Represents a list of tuples of [$value, $epscript_type]

OAI

  • Stateless OAI Interface means no timing-out
  • Support for multiple constraints in custom OAI sets

Unit Tests

  • We have introduced unit-tests to improve both the short and long term quality of our code.

Metadata Types

  • Counter (incrementing value)
  • Timestamp (defaults to the current time)
  • UUID
  • MetaField::Search now has two properties:
    • "namedfields" which is an array ref of field names to search OR
    • "namedfields_config" which is the name of a config variable
  • MetaField::Search can now be used in any workflow (not hard-coded to editpermfields)
  • A captcha pseudo-field based on http://recaptcha.net/
  • added "repeat_secret" property to secret fields that will render a confirmation box which is checked with validate()
  • Storable (store arbitrary Perl structures - internal use)

Administration Interface

  • Converted Admin screen into several tabs.
  • Improved the BatchEdit interface
  • Show a progress bar while records are updated during batch edit

Editorial Interface

  • Improved "Review" Screen
  • The "Review buffer" can now be filtered for better management of large review buffers.
  • When an editor provide the "Move to Review" button if there are problems

User Defined Datasets

  • Allows 3rd party tools to create their own additional datasets
  • Suite of interface screens to work with these new datasets

Command Line Tools

  • Allow eprint ids to be specified for redo_thumbnails

Export

  • Added support for JSONP
  • Added support for an 'n' argument to search exports
  • Added arguments support to export plugins. Passed by CGI arguments on abstract search or by the --arg option in bin/export

Abstract Page

  • Now generated with a citation
  • Shows an "action list", so plugins can register to appear on this page

Phrases

  • Primary method of editing phrases is now the web interface
  • Added "ref" option to phrases, which will cause the referenced phrase to be used instead - Equivalent to calling the referenced phrase directly

Views

  • Entire rendering of item lists and menus can be over-ridden by a function

Misc. Changes

  • Can now disable a repository through a system configuration setting
  • Refactoured DataObj::get_defaults so that you can now specify default values through a "default_value" property
  • Most of get_defaults() can now be specified through the metafield spec.
  • Can now apply multiple changes to the same field (???? I assume this means metafield?)
  • Preference field for users (to store k/v pairs in)

Key Bugfixes

  • Fixed login page not using phrase for title
  • Fixed spurious history objects being created on document upload
  • Fixed an HTML insertion bug in the <title> element [Brian D. Gregg]
  • Fixed schema errors in uketd_dc and METS/MODS export plugins
  • Fixed bug in Compound creation of Set types that squashed the set options
  • Fixed order static directories are searched to: repository->theme->system
  • Support long values in browse views by using the MD5 of the value,
  • Subject inputform component can now be used with singular values
  • Fixed bug that is_advertised property on export plugins was being ignored.
  • Fixed bug in indexer which meant it didn't index in a round-robin fashion.

New and altered Config options

These need documenting and noting which ones we recommend setting/altering when upgrading.

  • Broke up SystemSettings into logically named files
  • Can now disable a repository through a system configuration setting
  • Moved most of eprint_render.pl into a citation file: summary_page.xml
  • Updated defaults views.pl to show current config.
  • Improved document_upload.pl layout to make it easier to add/remove suffix to mimetype mappings.
  • Added URI to EPrint Summary Page
  • Added RDF+XML and N3 Document formats
  • New metafield option: $defaults{render_max_search_values} = 5;
  • Added "show_help" option to workflow component to disable collapsing Usage: show_help={always,toggle,never}
  • Added config option "cache_max" to limit the cachemap tables used
  • user defined datasets
  • Made it an option to provide action buttons top and bottom in workflow
    • $c->{locking}->{eprint}->{enable} = 1;
    • $c->{locking}->{eprint}->{timeout} = 600;
  • REST privs
  • check registation email callback
  • epc:debug,
  • lots of eprints script functions
  • views.pl
    • "DEFAULT;render_fn=render_view_items_3col_boxes",
    • render_menu => "render_view_menu_3col_boxes"
    • ranges & variations were introduced in 3.1.? but need documenting.
  • Storage plugins
  • adding actions to absract page