EPrints 2 changelog.
This starts at January 2002 with the changes after the release of
alpha-2 and is in chronological order. The following little symbols
are used for my benefit, but you may want to know what they mean:
[api] a change to the way a function works or is called which could
effect 3rd party code.
[db] a change to the actual structure of the SQL database tables.
[c] a change to the default configuration files, which may need
to be applied to already installed versions configs too.
[doc] a change which should be added to the documentation
======================================================================
2002-01-09 - EPRINTS-2-ALPHA-2
======================================================================
10/01/2002
- Added CHANGELOG!
- Added BUGLIST
- Added BUGGLIST & CHANGELOG to the distribution.
- Session::send_http_header can now send content-types other
than text/html. Still does text/html by default.
- added Session::make_indent( $n ) which makes DOM of a CR +
$n spaces (for laying out OAI XML returns)
21/01/2002
- fixed bug in get_index_ids - which failed to get the last item from a list
of free words.
- Added DataObj as a base class for EPrint,Document,User & Subject. Moved
get_value, set_value, get_session, get_data, get_dataset, is_set, get_id &
render_value.
- Removed old OAI code from ArchiveConfig.pm and some deadwood functions
from OpenArchives.pm
- OAI now works. cgi/oai and OpenArchives.pm - uses DOM to generate the
replies. Only one function in ArchiveConfig.pm (make_metadata_oai_dc)
but more metadata formats mean more functions (which is a bit cleaner).
- Added experimental vlit support so documents can be retrieved as char-
ranges. This is for Ted Nelson research stuff. See www.xanadu.com for more
info. Currently in Xanadu.pm but'll probably get renamed.
- removed Deletion.pm once and for all.
- added use_private_cache and cache_id to SearchExpression cache_id can
set the current cache to save searching. use_private_cache: caches and
does not dispose of the cache after but flags it as unusable by other
searches.
- added a method to session: render data element which returns an indented
XML element containing some text eg. (4,"key","value") ...
into the contents of
the alt attribute.
- renamed Xanadu.pm to VLit.pm
- added Latex.pm which calls latex, dvips & convert to turn a latex string
into a PNG and also a method which renders a string as DOM but replaces
bits which look like latex with
s which point to cgi/latex2png
- added cgi/latex2png which uses Latex.pm to create an image from a latex
string and serve it. (uses a cache dir so each one only has to be done once)
25/01/2002
- corrected the namespace in the XML files for XHTML1.
- removed DOM.pm - going back to using normal one, not our hacked
one.
- added a get_archive() method to DataSet.pm
- MetaField: TYPE_SQL and TYPE_INDEX constants are removed and the
results generated directly from the subs which used them. This allows
different values for each archive (eg. for VARCHAR sizes)
- MetaField: PROPERTIES is now just a list of properties. A value of
-1 means there is no default.
- get_property_default returns what PROPERTIES used to contain. Allows
archive specific field property defaults.
- the input field renderer routines now use the properties:
input_rows input_cols input_name_cols input_id_cols input_add_boxes
input_boxes input_style (and digits) to decide size and height and stuff
- removed HTMLRenderer
- booleans now can render as menus, radio buttons OR a checkbox
- plain text fields can have textareas as their input field.
- phrase files now have namespaces for ep:foo like other XML files with
XHTML in.
[C] - [this has been undone again! 30/01/2002] added varchar_size option
to set how big the SQL fields are.
[C] - added FIELD PROPERTY DEFAULTS SECTION WITH the fields:
input_rows input_cols input_name_cols input_id_cols input_add_boxes
input_boxes digits
[C] - fixed BUG in default field validator - now handles multiple
URL fields.
[C] - displaylines renamed to input_rows
26/01/2002
- added default_action to the render_input_form method and code to
support it.
- added button order and default_action to all render_input_form calls
where appropriate.
- fixed braino in new metafield properites handling. All metafields need
a handle on the archive object, so those without a dataset must now have
an archive set. Added archive values to all calls to MetaField->new
- added a client() method to Session which returns a code for the client,
currently: GECKO, LYNX, MSIE4, MSIE5, MSIE6 and "?". Used this to test
for lynx in the default action handler and not print the image button if
it is lynx (as lynx ALWAYS displays it, we want it hidden).
28/01/2002
- new metafield property: browse_link - which is the id of the browse view
it should link to when rendering.
- added "generic" citations handling, via DataObj render_description which
replaces User::full_name and EPrints::short_title and Document::render_desc
- added new param to template title field: textonly="yes" to squash down
the XHTML in the
elements: it works like a
except that \n\r etc are
not turned into generic whitespace.
- cache settings on cgi pages are now just:
Cache-Control: must-revalidate
which seems to be what they should have been all along.
- added a get_status method to session which returns the HTTP status (usually
200!)
- Subject->children now sorts by Subject name (not id!)
- cleaned up the error401 page
- split the document upload page into 2 parts: files and metadata. Cleaned
up the phrases in that section.
- the upload a file page now has a seperate form for the cancel button , so
that it does not upload the file if you hit "cancel"
[C] - added validate_document_meta to ArchiveValidateConfig.pm - this checks
just the meta data of a document.
31/01/2002
- fixed bug when you have more than 3 items in a list. The form renderer was
chopping off the rest!
- added a new doc-type: coverimage, which renders as an image on the abstract
page. It's not a required format, though.
- renamed wrapper round
citations if using custom citation.
- VLit stuff now uses charrange rather than byterange and requires "xuversion"
to be set.
06/02/2002
[c] - tweaked the OAI renderer to handle bad months!
[c] - commended out the "lang" field in metadata-types: {users} as it's
only needed for multilingual archives.
- VLit now runs over all of the "document" area but not secure docs or the
front page.
- VLit now returns 401 or 501 where appropriate.
[c] - table on the default frontpage is no longer 100%: looked bad in IE.
- SearchField definitions now use 3 values rather than the icky
PHR:EQ:fred format. Still serialise OK. Also ANY/ALL/PHR is not needed if
match mode is not "IN" and if match mode is not specified it defaults to
"EQ" - which is usually used internally.
[c]- fixed typo in citations file.
- fixed bug in "area" code of VLit
- removed sub render_struct - use Data::Dumper, dammit.
07/02/2002
[c] - removed defaults for "os" and "security" as these are no longer
meaningful. Defaults are now ""
[c] - changed template to use tag around URL's in emails - don't want them word wrapped!
======================================================================
2002-02-14 - EPRINTS-2.0
======================================================================
03/03/2002
[c]- Fixed typo in citations "years" instead of "year"
- 404 page now spots /view/ and suggests you need to run generate_views
- "latest" cgi script no longer uses cached results.
- get_value on a non existant field now gives a clear error rather than
a perl !defined error. (calls abort)
- importXML - treated whitespace inbetween , wrapper.
- [api] changed syntax of EPrints::Eprint->new so that the optional param
"dataset" is now the last option. This means that it can be called
exactly like any other EPrints::DataObj->new (which is neater). Updated
all uses of this call in the code.
- [conf] changed call to EPrints::EPrint->new in the commenarty bit of
ArchiveRenderConfig
- [api] EPrints::EPrint::create() - removed the "userid" parameter which
must now be set seperately. Updated all the code to reflect this change.
- Removed $EPrints::EPrint::id_code_digits and hardwired it to "8" as I've
got no intentions of changing it and other parts of the code already
assume 8.
- Added POD documentation to Document.pm , EPrint.pm , ImportXML.pm and
RequestWrapper.pm
- Removed DIGITS from Document and hardwired occurances to 2.
- Added render_xhtml_field to Utils.pm - this acts as a special field
renderer like the one in Latex.pm (but renders as XML).
2002-05-29
- Added POD Documentation for Language.pm, Latex.pm, MetaField.pm
2002-06-13
- Added "pagehook" feature to allow certain pages to have extra body attibutes
and "stuff" in the top of the head and body elements. For javascript. Mostly
for Steve Harris in AKT.
- Added "pageid"'s to all the submission form pages.
- [c] Added examples of pagehooks to config.
- added an "export_as_xml" attribute to fields which defaults to true but if
false then the field is not exported in an XML dump - now used by subject
to supress dumping ancestors.
- fixed bug in abort() which attempted to report to the apache request while
under modperl even at startup (so no request -> error ).
2002-06-24
- [db] Added subscriptions! including a send_subscriptions bin script, a cgi
page to edit them (subscribe) and added the link to the user home page.
- added a new bin script: "upgrade" which upgrades the database tables to the
latest version. (sorts out the subscription tables for 2.0->2.1)
- [db] added a new db id counter - subscriptionid
- turned _create_table in Database.pm into create_dataset_tables so that
upgrade could use it.
- fixed a bug in the sql escaping code - escaped '.' when it didn't have to.
- added a whole bunch of $sth->finish commands to clean up more after db
functions to hopefully reduce memory leaks.
- added "version" concept to the database tables to reflect what version of
eprints they are suitable for the automatic "upgrade" script. Database.pm
gained: create_version_table, set_version, has_table, get_tables,
get_version, is_latest_version.
- session now uses "is_latest_version" to check the DB is ok and reports a
different warning if the "archive" tables exists. (wrong version vs. no
tables.)
- SearchExpressions can now be rendered into a screenable description using
->render_description - SearchField also gained a render_description which
is called by the SearchExpression method.
- MetaField gained "make_searchexp" which is only legal on search type fields
and returns the searchexp described by the given value.
- Fixed a typo in the message about not having a top-level-subject.
- Added a hack to SearchExpression which gets the fields for a search-type
field from the subscription_fields conf setting if the property is set to
"subscriptionfields" rather than an array.
- SearchExp again; made render_order_menu a seperate function so that it can
be used when rendering a inlined searchexp (eg. for a search-type-field)
- SearchExp and SearchField no longer return the bad words from a search. This
is now handled by putting the searchexp description at the top of the
search results page as part of the "blurb" which now lays out the data
about the search (so you can change the order, eg. Timing info first, or
even not at all)
- added set_property to SearchExpression so that you can change properties
of an existing searchexpression. Useful to set use_oneshot_cache on a
searchexp created from de-serialising.
- Now oai 2.0 Compliant.
- [conf] Added an oai2 oai_dc XML render function to ArchiveOAIConfig.pm AND
added oai2 config section for keeping namespaces etc seperate.
2002-06-27
- Loosened regexp for passwords in configure_archive (now allows upper case
too)
- [c] Added new SystemSettings option: "virtualhost" which is now used by
generate_apacheconf as the NameVirtualHost value (or "*" if it's not set)
- Added page id's to each build_page so that stuff can be hooked onto them.
- generate_views now orders the index page (using results from get_values)
unless it's a view of multiple combined fields in which case it does not.
- bin/upgrade turns the "commentary", "replacedby" and "succeeds" in the
tables "archive","deletion","inbox" and "buffer" from VARCHAR to
INTEGER. These fields should have been INT's in the first place. This
is done as root. bin/upgrade now makes a root dbh connection if needed.
The origional values of the fields are dumped to /tmp first in case of
disaster.
- [c] Added new metafield configs: make_value_orderkey and
make_single_value_orderkey which can be used to override the normal orderkey
generation - eg. could turn field with format "4.9d" into key
"00000004.00000009d" that will sort alphabetically correctly.
- Now correctly generates orderkeys for subjects sets and datatype's fields.
- year orderkeys now pad 6 not 4 (just in case)
- removed code which always put at the top of pages when
an "internal" button was pushed. This broke the whole idea of the #t jump
to where you were before.
- added new config option (submission_stages) which lets the admin override the
default order of the submission form stages.
2002-06-28
- Added new config options:
submission_hide_howmanyfiles
submission_hide_upload_archive
submission_hide_upload_graburl
submission_hide_upload_plain
to allow the admin to supress various parts of the submission file upload
form.
2002-07-01
- Fixed bug in render_ruler : it failed to take ownership of the
new fuler.
- Added more details into "information" page in default config. And a
GNU linking to gnu.org.
2002-07-03
- Fixed typo in MetaField.pm - had "searchfield" not "search" which
meant search fields were ending up as VARCHAR not TEXT.
- Missing subject titles now display as [Subjectid=footle]
- Fixed some typos in installer
- generate_views now treats a SystemSettings->virtualhost of "" as
undefined.
- Subjects now sort into correct order(yay!)
- Bug in scoping for DF_AVAILABLE in Utils.pm - fixed.
======================================================================
04/07/2002 - EPRINTS-2.1
======================================================================
2002-07-04
- Fixed bug in OAI 2.0 (Still using OAI 1.1 namespace in one place)
- [c] Changed ArchiveOAIConfig.pm so that now archiveid, sample
identifier and base_url are now all seperately configured for
OAI 2.0 (and changed cgi/oai2 and OpenArchives.pm to honour this)
======================================================================
04/07/2002 - EPRINTS 2.1.1
======================================================================
2002-07-07
- Fixed ANOTHER minor issue in OAI2 code. At the end of a List there
should have been (and now is) an empty resumptionToken.
- New method added to MetaField: list_values. This takes flattens out
multilang, multiple and non-multiple fields so that a list of
values of that field is returned.
- To avoid an error in oai, if datestamp is not set, datestamp now
defaults to 0001-01-01.
- SearchExpresion->dispose now does not try and dispose an undefined
tmptable.
- new method in SearchExpression: item_matches. This takes an item of
the type appropriate for the search and returns true if the search
expression matches on that item. Also a item_matches method on
SearchField used by the one in SearchExpression.
- [c] removed all the darn GIF's. Set a CSS "style" on the 1x1 image
in searchforms to "display: none". Also it now links to a PNG
instead. Also updated the "information" page a bit more. Removed
GIF's from default homepage too.
- new function is Utils.pm: is_in which takes searches in a list for
items in a second list. Two modes: success if one found or success
if all found.
2002-07-08
- Added PNGs to replace GIFs for logos in the static/image directory.
- [c] Made stylesheet link in the default template link to the full URL
rather than relative link. Eeep. That's not going to work - it'll
give an error. Dammit.
- [c] Added 2 new archive config settings: securehost and securepath for
running https.
- generate_apacheconf now generates all the apache confs (does not take
an archive id, anymore). Also now generates extra auto file to be
Include'd into a sercure virtualhost config. Played around with the
config file which gets generated to make it work both secure & not.
- tweak to /perl/users/home to make change_user work on secure setting.
- made the Auth.pm module accept /00/00/00/00/00/ format document paths
for authentications in addition to /0000000/00/. (needed for https
mode).
2002-08-08 [cjg]
- [c] Increased default results page size to 100 from 10.
- [c] Increased default width of abstract input to 90 cols.
- [c] Increased default number of author input fields to 6.
- [c] Some tweaks to default citations.
- [c] Made "publication" field optional in all types.
- [c] Added a new config file to archives - apachevhost.conf - which is
included into the configuration inside the virutalhost definition.
- Modified apacheconf rewrite rules so that a trailing "/" is not required
to get record abstract pages.
- Modified generate_views so that files for values which contain " " or "/"
have "_" in their stead.
- [db] Added new system fields to the database. DB version is now 2.2.
bin/upgrade will make the changes. Changes are:
* in dataset "subscription"
- add a new boolean field "mailempty"
* in dataset "user"
- remove the field "editorsubjects"
- add the following fields:
+ editperms (search)
+ mailempty (boolean)
+ frequency (set)
- [c] New configuration option "catch404" which may be undefined, but may
be a reference to a subroutine which takes ($session, $url) and returns
either a new URL to redirect to or undef if it's really a 404. This is
to handle migration from eprints 1 or other systems.
- [c] New "priv" for users: "no_edit_own_record" which actually removes the
edit my record option from the user page (for DB's where the users are
imported not web-registered.)
- Edit subscriptions page now includes extra option to indicate if a user
wants a mail when there are zero matches.
- Changed the layout of the subscriptions summary page to be a bit clearer.
- Added a check in get_conf to prevent null reference errors in the case
of an optional hash table. Eg $c->{a} = { c=>4, b=>5 } OR $c->{a} = undef;
and someone requests $archive->get_conf( "a", "c" ) - will return "4" in
1st case and undef in the 2nd.
- [c] Added new metadata parameter "can_clone" which defaults to 1. If set
to 0 then the field is not cloned when the record containing it is cloned.
- added a test to prevent a warning when unserialising an undefined value as
a search expression (and treat it like an empty string).
- fixed bug in SubmissionForm. Now only lists the required formats, and asks
for at least one if there is at least one required format.
- added some checks to render_name in Utils.pm to avoid warnings in the
case of undefined values.
- fixed render_citation so that it should now not crash on nested or
style lists. A custom citation no longer automatically turns off the
into
2002-10-08 cjg
- [c] Fixed ArchiveConfig.pm so that a user can always view a document
they deposited even if it's secure.
- Added regexp to make_text to remove all characters < ord(32) except
0x09, 0x0a and 0x0d. They're not legal in XML!
- Modified the selection field renderer so that if the specified height
is 2 or more, the actual height will always be at least 2. (so it does
not become a pull-down).
- Fixed a bug in SubmissionForm so that "cancel" on the "eprinttype" page
does not store any change in type.
- Added a "submit later" button to Deposit Page.
- Changed the submission form "thanks" page to mention that it is awaiting
approval by an editor.
- Fixed an error in "lib/userform:blurb" phrase which linked to set_email
rather than change_email.
- Added google_site which appends "site:whatever.com" to a search param
and redirects that search to google.
2002-10-09 cjg
- [c] Added skip_buffer config option which makes articles go from the
work area directly to the archive.
- [c] Default abstract page now lists eprint type.
- [c] Default render_user_full now lists subscriptions too.
- fixed typo in cgi/confirm s/timepout/timeout/
- fixed bug in MD5 hash code and added hook to use different hash if
required.
- [c] override default hash method.
- added
- Renamed use_gdome to be enable_gdome for configure-like goodness.
- list with radio buttons.
- Fixed a '\n' to be "\n" instead in an error in Archive.pm
- New function: @fields = $ds->get_page_fields( $type, $page,
$staff )
- New function: @pages = $ds->get_type_pages( $type );
- [db] Database now stores date 2000 as 2000-00-00 (which is the
mysql way. This is not super portable, but hey.
- New function: EPrints::Database::trim_date( $mysql_date )
- New function: EPrints::Database::pad_date( $mysql_date, [$inc] )
- These functions convert from eprints date format to mysql
and back (strip/add -00's).
- in Document.pm, changed "cp" to "/bin/cp" which is still a touch
flakey as it's shelling out, but is an absolute path and avoids
some problems on securer systems.
- in EPrints.pm changed an "if defined $obj->get_value(x)" to
"if $obj->is_set(x)"
*- New function: $eprint->validate_meta_page( $page, [$for_archive] )
for validating each page of the meta data entry (so you don't
have to wait until the end). * does not have a callback yet *
- Now the render_latex function removes trailing whitespace if any
is left over after it's shenanigens (it was adding a single space
on the end which screwed up citations.)
*- [api] New function: $xhtml = $field->render_help( $session )
now used in preference to display_help. ** maybe display_help can
be removed? **
- Improved rendering of date type so that it renders at it's
max_resolution.
*- Added a really odd hack to editperms so that it only shows extra
input boxes if explicitly clicked. That can't be right!
- Added a charset = utf-8 to textarea input fields.
- Made it so that a field of type search with a "null" search is now
considered unset, lots of empty searches were getting stored.
- Made the "EX" search flag mean nothing for date fields. This might
be changed later, but for now means that 1999 = 1999-09-01
even in "EX" mode.
*- Fiddled with "height" code for pick lists. It's still not right.
*- hacked "DOCTYPES" into the top of pages. Gotta be a better way.
- [api] new option to submission forms: $autosend. This causes the
form to store the resultant XHTML for the next page of the form
in a way that can be requested, rather then render it right away
as a page.
- submission form now uses $user->is_owner($eprint) to establish
ownership, rather than checking that user submitted it.
- Added a couple of lines to Subscription.pm to deal with the
fact that mailempty might not be defined (gets rid of a warning)
- [api][doc] Changed $user->get_owned_eprints() to be
$thing->get_owned_eprints( $dataset ). Now returns all the
eprints created by that user, in that dataset. UNLESS the
config option "get_users_owned_eprints" is set in which case
it calls that as a function and returns the result of that
instead.
- Improved field_from_config_string so that it can now have any
number of qualifications after a fieldname, if desired. eg.
foo.main.res=Y (not sure why you'd want to, but let's keep
it rebust eh?)
*- New function: EPrints::XML::write_xhtml_file( $node, $filename )
this outputs the node just like write_xml_file but prints a
DOCTYPE at the top. Bit of a hack really.
- (in tools/update_phrase_file) improved the layout of the
translation flagging and the flags now include the reference code.
2003-05-20 cjg
- [c] Made default to hide lineage and honourific
- [c] Made default to skip linking stage
- New option; invert name input - so family name comes first
*- [c] Made invert name input default to 1. Probably want to change
before release.
*- New option: submission_hide_howmanyfiles, which will cause the
"how many files?" part of the file upload to be supressed. May
be removed due to rewrite of that whole section.
- [c] TOTAL reworking of all metadata fields, eprint types and
some changes to citations (needs more there!). EPrint types
now divided into several pages.
*- [c] Added some defaults & automatics which will need to be
removed before release. Could use them as examples.
- [c] view & search default config changed to reflect new fields.
*- [c] Added input_names to MetadataFieldsConfig.pm as an alternate
input method for names. Currently being used by creators and
editors. Should be moved to core code?
- [c] Changed OAI config to reflect new fields.
- [c] put a table around default site template to limit pages
to 720 wide for readability.
- [api] Added new option to SearchExpression. "citation" which
specifies a citation to use instead of the defaults for each
type when rendering results.
- [c] Added new options: advanced_search_citation,
simple_search_citation, latest_citation to allow the citation
to be used on those pages to be explicitly specified.
- [web] Deprecated set_password page, split it into "register"
and "reset_password" which should make things a little
less confusing.
*- [web] Extensively redesign of /perl/users/home - not finished
yet.
- Fixed small bug in edit_user
- Loosened up the regexp for archive id's. is now ^[a-zA-Z0-9_]+$
- [api] New method for document; get_baseurl which returns the
URL of the document directory, not the first item. get_url
now uses this to calculate it's value.
- [api] New method for Language: has_phrase(). This tests to see
if a phrase is available in the language (without useing
the fallback languaage)
- [c] New config option for fields: render_input. This overrides
the code which renders the input form for that field.
- [api] display_help and render_help now take an optional $type
parameter, to allow them to provide type specific help if
available (tested using $language->has_phrase()
*- Added date search functionality, although still seems a bit
buggy.
- [api] Added get_lang method to Session, to get the current
language (as oppose to the current language id)
- [api] New method to Session: render_nbsp which renders an XHTML
DOM non breaking space.
- Fixed bug in menus which meant they where always the same
default height as textareas.
- New option to $session->render_input_form: above_buttons which
is some XHTML data to insert above the buttons but below
the input fields.
*- Significant changes to SubmissionForm. Changed the way in which
files are uploaded. Still in progress.
- Improved the rendering of emails in EPrints::Utils::tree_to_utf8
now does not over-do whitespace between paragraphs.
- [api] New function: EPrints::Utils::human_filesize($size_in_bytes)
which returns a sensible description of the given filesize
e.g. 5Mb (rather than 5484023bytes)
*- [c] Help & Fieldnames in the phrase file for all new fields. Not
quite done yet. Also improved the registration/password reset
email.
*- [c] Some changes to the style sheet, including making most of
the system sans-serif.
*- [c] NEED TO ADD to registration a config option for which fields
are asked for.
(eprints2-3-0-tardis-1)
2003-06-10 cjg
- [c] Changed "includes" in ArchiveConfig.pm to give better messages
for syntax errors in ArchiveRenderConfig.pm etc.
- [c] New config option: "user_registration_fields", allows extra fields
to be asked for in registration.
- [doc] New custom input renderer for subjects:
&EPrints::MetaField::subject_browser_input which does a navigable subject
tree rather than the pull-down menu.
- [c] Subject field now uses that custom input renderer.
- [c] Added more items to the monograph_type field.
- [c] Added "lecture" to the presentation_type field.
- [c] Made abstract the same width as all other fields again (looked
really ugly being super-wide)
- [c] Editors now use custom name input.
- [c] Removed institution default, but left comment to show how to do it.
- [c] Added automatics to set effective date to issue, or submission if
no date of issue.
- [c] Added automatic to set full_text_status.
- [c] Added code to show subtypes in abstract renderer for thesis,
monograph & conf_or_pres.
- [c] Abstract page again: datestamp now only renders if specified, will
not show UNSPECIFIED.
- [c] Full Summary Renderer now just lists unspecified fields to make the
page shorter & neater.
- [c] Does not bother telling you the password is UNSPECIFIED, duh.
- [c] Added two conditions to validation: date_issue AND/OR date_sub must
be set. Same for authors/editors.
- [c] Redesigned citations for book & article to be much neater. Also made
the search results citation style show stuff like if it's not published
and the full text status (if not available, or restricted)
- [c] Swapped order of date_sub & date_issue
- [c] Changed template to link to register instead of deprecated set_password
- Rewrote some of export_xml to be more XML module independent. Should fix
some errors reported.
- Tried to make eprints run in "tainted" mode but didn't get any far.
- Added phrase "cgi/register:register_agreement" which can be overriden if
some text needs to appear on the "register" page by the "register" button.
- reset_password was generating the error title even if it didn't need to.
fixed.
- reset_password: no such user msg now tells you the email which failed.
- user home now renders inbox eprints as a list with links for options next
to each item. Much neater!
- user home list of recently accepted items links to the abstracts now.
- submission form now goes to "userhome" not /perl/users/home -> it was
hardwired before.
- removed similar hardwiring in review, record & system-en-current
- get_type_fields now returns those fields in the order which they appear
in metadata-types.xml
- qualifiers for fieldnames (eg. in citations) are now seperated by ";" not
".", although ".id" will continue to work.
- added new qualifier "magicstop" which will, when rendering, add a "." to
the *single* value if it does not end with ".","?" or "!"
- new metafield property, "render_opts" which is a hash of all such
render opts.
- render_input_field now gets a list of hidden fields in case it wants
to make a GET link instead of the normal POST. This is needed by the
new subject_browse renderer.
- in normal subject input fields, the selected subjects are moved to the
top so they can be easily seen.
- added another custom renderer: render_pagerange_pp which renders page
range type fields something like the harvard style.
- fixed a glitch in searchexpression that if it didn't have an order or
a dataset it dereferenced a null {dataset} anyway. This occured in
unserialising an empty string.
- added "description" to date searches. Still a bit ropey.
- put classed spans around peoples names.
- new feature in get_subjects: no cascade label, which will soon be used
to make subject lists which DON'T have all the super-subjects as
part of each label.
- added type, eprintid and desc to the options to the titles in the
submission form. They're not all used, but could be if people want.
- redesigned file upload section. No functional changes, but extensive
cosmetic ones.
- User eprints now returned sorted by eprintid
- render_date now only shows "Feb 2000" if day == 00
- created _citation_field_value to tidy up citation rendering code.
- [c] lots more changes to phrase files and stylesheet. Stylesheet really
needs a spring clean.
- All fields in citations are now class'd with span tags for extra
easy style changes via CSS, and for an easy life for extraction tools.
(eprints2-3-0-tardis-2)
2003-06-17 cjg
- [c] removed "chapter" metadata field, no longer used.
- [c] added "fileinfo" metadata field, will be used for caching info
on available file formats for use when rendering citations.
- [c] default editor summary mailing frequency is no "never" not NULL
- [c] renamed conf_or_pres type to conference_item
- [c] valign="top" added to render_row for abstract page. looks a bit
neater.
- [c] added harvard style(ish) citation formats for all types. As
good as possible, based on lots of different standards for the
standard. It's bound to be wrong, but at least it's neat and
consistant.
- removed a stray debug line from oai2
- fixed a bug in oai2, ListMetadataFormats used oai v1.1 config, now
uses v2.
- [d] removed "max_resolution" metafield option. Now just uses ;res=Y
in citations & browse views.
- internationalised subject browser.
- searchfield now correctly renders descriptions of date searches.
- moved ": " the subject-path-join into the phrase file, and changed
it to " > "
- swapped the order of the confirm delete buttons to make "confirm"
come first.
2003-06-17 cjg/moj
*- [doc] New parameter to SystemSettings: apache_version. (renamed
later to "apache" )
- Support for Apache2 added, changes to VLit, startup.pl and Auth.pm,
added new module RequestWrapper2 which Auth will use if directed.
now does some 1.3/2.0 specific stuff in generate_apacheconf
2003-06-24 cjg
- [c] New config option to OAIRender {mime_types} to map the document
types to mime types for the dublin core conversion.
- [c] EPrint->Unqualified Dublin Core now more or less follows Andy
Powell's recommendations.
- [c] removed place of publication from converence_item (it's not
published!)
- Fixed bug in $dataobj->get_value which didn't strip the id's as
requested on "mainpart" fields.
- bugfix: moving an eprint to the deletion buffer deleted the abstract
but didn't replace it with the deleted message.
- fixed a warning in $field->render_value for dates.
- Added a search function to the subject browse input method.
- Internal buttons now only count as pressed if they are set to
something other than an empty string.
- If a problem occurs in submission form then the problem gets name="t"
which should override whichever field currently wants focus
2003-10-01 cjg
NOTE: VERY LARGE CHANGES TO METAFIELD & SEARCHES.
- Split MetaField.pm into subclasses to describe each field type,
also these new modules contain all type specific code from
searchfield.
- code for full text search has been prepared for, a function
in document returns a junk string for now until that other
code is in place.
- new module; "SearchCondition" which represents a simple
atomic part of a search (eg YEAR > 2000). One field, one
operator & one parameter. SearchCondition can also
represent an AND or OR and have a number of sub-conditions
SearchExpression now returns a search condition and
$sc->item_matches is now used to test items.
- totally redesigned the code for rendering input fields,
everything is now based on a grid so that complex things
like names lists should render in a more compact & clear way.
- [c] added code to ArchiveRenderConfig to add icons for documents
to the abstract page.
- [c] added a fileinfo field and a custom renderer function to
show what files the eprint has.
- Moved much of the indexing code to Index.pm
- created indexer which does background reindexing of the
archive.
- [c] added "fileinfo" to the "neat" citiation type.
- [c] added "pubinfo" to most metafield types.
- [c],[db] the inital GRANT in the SQL now allows the eprints
SQL user to do "ALTER", so it can rename tables (needed for
the indexer daemon)
- [api] use_oneshot_cache, use_cache & use_private_cache are
now deprecated. Caches are created if needed to order or
to retrieve values. They are not erased if keep_cache=>1
but they are no longer shared.
- bin/reindex is now deprecated
- added Extras.pm which contains alternate methods for
rendering input and output of fields.
- user home page now stripes lists of eprints to make them
more readable.
- we now have a var directory for each archive to store things
like timestamps.
- stopped "use Config" loading the config files there and then.
The first time any function which needs them is called then
they are loaded (also there is an ensure_init() function).
This is to stop it needing libraries which need Config and
getting stuck.
- added a magick field generator. This will allow dataset to
create fields prefixed with "_" even if they do not exist
in the full text. I'm not sure about this. It's a horrid
hack. (removed it again)
- added get_item_ids to dataset to return the id's of all
items in that dataset.
- removed indexing code from Database and put it in Index instead.
items are no longer automatically reindexed each time they are
udated.
- simplified the caches so they no longer are used except by
things which know the cache id. cache_id() count_cache() and
is_cached() are removed.
- added concept of a "simple" mode for search field. Used when
searching accross incompatible fields like name, text and int.
- added a cookie for prefered language.
- removed some unused code from SearchExpression
- [c] fixed a bug in systemsettings.pm that zip invoked "zip" not
"unzip".
2003-10-06 cjg
- made indexer call "/usr/bin/renice" to reduce how much it loads.
This needs to be done with a proper system call before code
release.
- field properties are now handled by the new OO metafield modules.
some fields can have additional properties. Magical default values
are UNDEF, REQUIRED, FROM_CONFIG and NO_CHANGE meaning in order
"default is undef", "this field must be explicitly set", "get
the default from the archive config" and "don't change this
property if if set to undef"
- name filtering now works! Searching for "Harris Smithe, Bob"
will now do an index search for harris AND smithe and then
filter it to things which match either
%[harris]%[smithe]%-%[bob]% or
%[harris]%[smithe]%-%[b%
- [c] made TH's smaller in the CSS - looks nicer
2003-10-16 cjg
- new render option for name fields order="gf" or order="fg" to
control order given & family are rendered.
- new options for name fields: family_first, hide_honourific and
hide_lineage. All set as field details then over-rideable.
- changed Y,M,D to year,month,day in date resolutions - why be
obscure about it?
- added per-page validation for metadata input
*- some scripts are currently perl 5.8 for testing puposes
- generate_views now does sub-pages eg type then year.
- cleaned up some "cache" options in various searches.
- added to status page info on when each dataset was last indexed.
- moved rename_table, drop_table, swap_tables & install_table into
the database module (was in index.pm)
- added a get_last_timestamp option to index.pm to be used by the
status page.
- Improved error messages for metafields with illegal properties.
- fixed an oversight in metafield (still using _ordervalue_aux1 not
ordervalue_single)
- eliminated a warning in the render date code in Utils.pm
- improved VLit code: now does 2 stages to span selection so that
it doesn't cane the web browser & bandwidth. Also added a "quote"
link from the "human" page.
- added cgi/counter" which returns a text/plain report on the size
of each dataset. Handy for stats building.
- added cgi/latestn for showing the last "n" eprints. Handy for
embedding in other sites.
2003-10-20 cjg
- Added some better comments to the "disable web based signup"
option to warn people to change the HTML pages.
- date fields can now never be "EX" so that searches for "2000"
will not look for "2000", but for anything in the year 2000.
2003-10-22 cjg
- Added up and down arrows to multiple input fields to make it
easier to rearrange things like lists of authors names.
- Added icons for the up and down arrows.
- Some work getting Everything to work with Perl 5.8
- Removed requirement for mod_rewrite. Now requires mod_perl
compiled with "EVERYTHING" so mod_perl can do the translations.
*- Changes still required to generate_apacheconf to reflect new design
including adding some vars and removing all rewrite rules.
- [c] Removed VLit Context size option. Hardwired it.
- /perl/users/home now redirects invalid users to the user-metadata
entry page. Not ideal but better than it was.
- Made some changes to the way CGI.pm is initialised to try and
avoid some strange errors with P5.8
- Several improvements to vlit. Now has 2 levels of context, and
more sensible links at the top of "human" mode, and a nicer
stylesheet entry.
2003-10-22 cjg
- Changed generate_abstracts to set a PerlVar to identify the
archive rather than all that mucking around with host and path.
- Removed all host & path code to use the PerlVar from the apache
conf instead. Much nicer. Making a session from a CGI script
is now much more straight forward.
2003-10-30 cjg
- going to the URL of a metadata page without the trailing "/" now
neatly redirects rather than giving a 404 eg.
http://ep2stable.ecs.soton.ac.uk:8000/foo/bar/archive/00000109
to
http://ep2stable.ecs.soton.ac.uk:8000/foo/bar/archive/00000109/
- Moved vlit related CSS stuff into their own stylesheet.
- Added a tardis logo to the eprints information page
- Added pauline, jessie & Harry to the AUTHORS and information.xpage
- Renamed latestn to latest_tool, including all the related config
options.
- Replaced search configuration with a new style, although the config
code will translate "simple" and "advanced" from old versions into
this new format.
- Removed "extra" fields from searches in SearchExpression.pm
- Simplified serialised searches so that they ALWAYS unserialise into
an existing searchexpression. The use "ID" of search paramater if
available.
- Removed code using serialisation from oai and oai2 - now clone a
search expression instead (to make the deleted search).
- Added "clone" method to search expressions.
- When a search expression has it's dataset changed it forgets it's
cache (and disposes of it if needs-be)
- [c] changed ArchiveConfig.pm to use the new search configs.
- advsearch deprecated. Now forwards to /perl/search/advanced
- Now many named searches can exist as sub-files of /search/ default
is "simple".
- Searches may now have filters. These may be configured in
the oai and the simple & advanced searches (etc).
- Added config options for the newly named "latest_tool". It allows
multiple modes. Each mode has it's own filters and citation style.
A mode lists the last "n" items matching the filter. Handy for
making external sites.
- [c] Renamed "msc" in the thesis_type set to be "masters" as this
is a more general term.
- [c] fileinfo renderer is now render_value not render_single_value
to skip issues with it being unset.
- [c] New config option for oai: filters.
- [c] Made the "note" appear on the abstract page. It was supposed to.
- deprecated $field->display_name. Now use $field->render_name instead.
- [c] Edited all code, including RenderConfig, to use
$field->render_name($session) instead of
$session->make_text( $field->display_name( $session )
- [c] Changed fileicons renderer so that it uses the proper root URL
and does not assume it's in the top directory.
- [c] Changed citations file so that unpublished warnings only happen
if the item is explicitly not published rather than the field being
NULL.
- Removed PerlFreshRestart from the apache config - it appeared to
cause load of warnings.
- apacheconf now handles eprints in a sub-dir properly.
*- commented out rewrite rule for "secure". need to fix that.
- Changed resumptiontokens in OAI to indicate which set they search
as this is no longer easily available from the cache system.
- Added "unset cookie" option to setlang.
- setlang now knows where it came "from" using the referer, so it can take
you back to where you followed the link from.
- Removed ARCHIVEMAP code from Config.pm - not needed now we set the
ID using PerlVar.
- Added some code to Config.pm which skunges any old search configs to
look like the new search config. Means I don't have to do any hacks
anywhere else in the code.
- Fixed a bug in database which returned lists of ID's only as an array
not a reference to an array.
- Unspecified field values now say "UNSPECIFIED Subject" rather than just
"UNSPECIFIED".
- Simplified Rewrite.pm; Now it works out the filename itself.
- Added Array of all legal options to new() to SearchExpression, as this
list is used in both new() and clone()
- SearchField: Changed get_help and display_name to render_help and
render_name. Changed all calls to them. Now both return XHTML.
- Added more CSS stuff to rendering buttons. Made submission form
have optional top buttons as well as the normal bottom bit.
- Added to .css to make submission form buttons look nice.
- Meta-stages in submission can have custom titles
- Renamed submission cancel button to "save for later" and put it on
every page of submission.
- Fixed bug in Utils which meant ifnotmatch blocks were not removed from
citations.
- MetaField->render_search_input now just takes a handle to the searchfield
rather than lots of options.
- "set" input fields when merged for search now offer all options from all
fields included in searchfield.
- Added some code to MetaField/Date.pm strings which were "" were considered
set.
- [c] Added submission form page titles to phrases.
- changed submission form "back" to be "previous" instead.
2003-10-31 cjg
- Input Form up/down buttons now on empty fields too. Because they might NOT
be empty by the time the button is clicked.
- Metafield::Name now extends Metafield::Text (so it can pick up the
indexing code)
*- Full text searching code disabled for now.
- Renamed "name" index to "grep" index as it's far more generic a concept.
All related variables renamed too.
- get_index_codes is now a method of MetaField.pm; moved from Index.pm
name grepping appears to be working OK.
- Fixed loads of bugs in SearchCondition due to earlier omission of "use
strict".
2003-11-03 cjg
- Fixed Cookies to work with Apache, rather than CGI
- Got rid of all occurances of CGI
- Got rid of all occurances of host_and_path (ugh)
- Added Archive->new_from_request which takes an apache request object
looks at the PerlVar and returns an archive or aborts. Used by
Session.pm and VLit.
- Made "frontpage link" always appear on set_lang even if referer is
set.
- Removed some seemingly junk code from SearchCondition->item_matches: grep
- Cleaned up VLit to use $archive instead of $session
- Made Name.pm indexing handle undefined "given" parts without warning
2003-11-04 cjg
- Made "hideemail" field true by default (in Users)
- Allowed "refereed" to be NULL without warning in OAI/DC code
- Cleaned up output of "indexer" when it already appears to be running.
now it gives sensible advice about running "ps" to check etc.
- Changed eprints staff search to work in the same (new) way as other
searches. Allowed "dataset_id" to be a parameter so that it can be
config'd by admin.
- Config.pm now generates 4 staff searches if they are not already configured;
"inbox","buffer",etc.
- ordervalues are now created and updated each time a record is creaded or
changed (don't need to be deleted, really, indexer does that)
- renamed phraseid's in Extra.pm to logical names.
- Added a "Go!" button to subject search.
- Searches, User Forms and Submission Forms now render problems in a CSS'd
DIV so that they are clearly highlighted.
- [c] Added problem_box entry to .css file.
- Problem with UTF-8 *objects* as attributes in some of the DOM code. Forced
them to strings.
- Subscriptions now say who they are mailing to (in debug mode), not just
that they are trying to send subscription #11
2003-11-05 cjg
- Made FULLTEXT search use a constant for clarity.
- 404, 401 pages and the PerlVar now only happen in the correct sub-dir
- latsest tool now does RSS output, kinda
- get_value is now a property of MetaField which always just calls
get_value_raw on the object, except for the fulltext object.
- Added a fulltext field type which just gets the full texts from a
file. Feels like a multiple-longtext.
- Added "delete_ordervalues". Stray ordervalues were lying around after
items were moved out of the current buffer. Caused error (INSERT) when
they came back later.
- Renamed "freetext" search to "index" and commented out name_match for
now.
PACKAGE: 2.2.99.0
2003-11-06 cjg
- Fixed file uploads. Now uses the Apache::Request style upload
PACKAGE: 2.2.99.1
2003-11-07 cjg
- Fixed bug that erase_archive failed to "use Archive"
- Added new metafield: langid. Needed to create database tables.
PACKAGE: 2.2.99.2
2003-11-14 cjg
- Made searches use "neat" citation again.
- Fixed bug in Metadata defaults
- Fixed bug in render_nbsp. Didn't always give the right unicode value.
2003-11-23 cjg
- Browse views can now have subheadings within one page. New options to
views: subheadings and heading_level
- Fixed bug which given "aa bb " searched for "aa" & "bb" & ""
- Fixed bug which meant when a live document is made secure after being
public the public symlink was not removed. Now when an eprint makes
it's static files, it unlinks them first.
- Fixed merge function so that it can deal with the first value in either
array being undef.
- Fixed a bug in the validation of users when editing a user record in
staff mode.
- Added some code to cleanly handle undefined date fields.
2003-11-24 cjg
- Added code to upgrade database to v2.3
- Added "contact" page to statics, rather than email on all pages.
2003-11-25 cjg
- [c] Added demo subject search. remove it or comment it out before
release.
- [c] hideemail is now a radio button not a checkbox
- Added AnApache.pm which decides if it should "use" Apache or Apache2.
it also loads related libraries for that mod_perl. All calls to
use Apache now replaced with use EPrints::AnApache
- disabled buggy return-to-previous on set_lang
- generate_apacheconf now uses correct v1/v2 modperl registry module
- s/apache_version/apache/
- Added release version of paracite code.
- Added $dataset->has_field
- Used it to make paracite cgi script use authors or creators - whichever.
- Added new CGI script /users/search which does ALL staffmode searches. This
replaces both eprint_search and user_search
- Added some missing phrases
- Improved examples for date search
- Deprecated links to user_search & eprints_search. Scripts now just
forward to /users/search
2003-11-25
- Fixed some problems in exporting apache constants in apache 1.3
- ..and some with AuthDBI requiring only Apache.pm not AnApache
- Fixed a bug with attr->toString not working in newer gdome's
2003-11-27
- Added some code to wrapper differences between file uploads in
apache 1.3 & 2.
- Removed some debugging code from generate_views
- Fixed a warning in generate_views
- indexer now shows current object id it's working on as it's $0
- indexer now nice's to 8 not 20
- removed more useless "untaint" code
- hide_lineage/honourific renamed to {field_defaults}->{hide_lineage}.
added some code to Config to deal with old 2.2 config files.
- added add_archive and add_file to Document (like upload, but take
filenames not handles).
- added sanitise to document. Handles cleaning up the uploaded file
names (no longer clears :.* as that's not desirable.
- Escaped values in indexer so that we can index "don't"
- Improved file uploads interface a little (new style)
- Escaped values in toString'd XML attributes.
2003-11-27
- Fixed bug that status page erased half-done index tables with "dispose"
- renamed $index->dispose to "cleanup" as it's not a required dispose
function.
- Made AnApache eval the subroutines for that apache to avoid any
confusion.
- Added apache2 upload file routines to AnApache
- fixed typo in Document.pm (add_archive x2. one should have been add_file)
- Fixed bug that full text searching lowercased and stemmed words when
it shouldn't.
- Apache 2 post trans handler does not map "/" to "/index.html" so Rewrite
now does it.
- Fixed warning if accept-language is not set.
- Userpage list-of-eprints now links to correct new search URL
- Renamed arrow images to all start with "multi" so that the upgrading
admins can use "multi*"
2003-11-28 cjg
- Cleaned up browse_view config.
- Cleaned up search config.
- Fixed bug in indexer (didn't give up STDOUT etc).
- Removed debug code from generate_views
- Submission form validate page now only has submit buttons at the
bottom of the page if the eprint is valid.
- Fixed search form on default index page.
- Added Proc/Reliable and Unicode/Normalise to bundled stuff.
2003-12-02 cjg
- Option to use CGI script "mimetex" for Latex rendering. Rewrite
now ignores any requests to /cgi/ and if enable_mimetex is set
then an extra ScriptAlias is added to the apache conf and the
Latex render_single_value points at that URL instead.
- Tidied some config files.
- Improved install.pl to rename old files to format ".YYYY-MM-DD.N"
rather than ".old"
2003-12-08 cjg
- Fixed bug in form renderer of multilang fields.
- Improved interface to subject editor (and fixed some bugs)
- Added current version to counter script.
- Internal Buttons now work again on user forms.
- Removed silly BONG message at startup.
- Startup now lists all archives which have been loaded.
- Text Searches now correctly stem words to be searched.
2003-12-19 cjg
- Added "perlmodules.pl" utility which should make installing the
required perl modules much easier.
- Added new config option "send_email" which allows the normal email
method (using sendmail) to be over-ridden.
- Fixed subjects linking to view pages with multiple levels.
- removed debug line from SearchExpression
- split words (Basic) now splits on whitespace again not any split char.
- Fixed subject-browse so there's a mini-tree at the top again.
- Fixed bug in up/down arrows in multiple fields.
======================================================================
19/12/2003 - EPRINTS-2.3.0
======================================================================
2004-01-14 cjg
- Patched DOM.pm to work in perl 5.8
2004-02-05 cjg
- Fixed some typos in phrase files
- Added 'last indexed' info on search results page
- Browse by 'name' type fields now works
- Hooks for input field renderers so that it can be made dependent on
properties of the associated object. If any.
- Patched the XML/DOM which ships with EPrints to fix some problems
with running under Perl 5.8
- Fixed a bug in 'lang' when $multilingual options are set to true
- Added escaping for cachecodes in database. a ' could cause an SQL
error before.
- Made the ordering stage use a left join rather than an inner join
so that items not in the order table for some reason don't show.
not that that should ever happen.
- Metafields are now dynamically loaded modules, don't need to 'use'
them.
- Changed paracite code so that the SEEK button now generates a
POST rather than a GET request. This stops search engines form
following these links and hammering the server.
- The name_match search condition now works for searches but not on
does-it-match? calls yet.
- Total rewrite of the generate_views code which escapes the
filename to escape any uncode character.
- Fixed VLit code to handle an archive on a sub path.
======================================================================
05/02/2004 - EPRINTS-2.3.1
======================================================================
2004-02-24 cjg
- Added 'hideempty' option to default browse subject view.
- Changed configure_archive to just do GRANT ALL.
- Made generate_views correctly show two combined subject trees.
- Fixed bug in generate_views. hideempty works correctly again.
- Changed header_in to headers_in to work with libapreq v2 AND v1
- Fixed a bug which meant