Release Notes for Current DLXS Release

From DLXS Documentation

(Difference between revisions)
Jump to: navigation, search
Current revision (12:19, 30 October 2012) (edit) (undo)
(General Information Release_15)
 
(208 intermediate revisions not shown.)
Line 1: Line 1:
[[DLXS Wiki|Main Page]] > Release Notes for Current DLXS Release  
[[DLXS Wiki|Main Page]] > Release Notes for Current DLXS Release  
-
==General Information==
+
==General Information <span class="release_15">Release_15 </span> ==
<p>TextClass is substantially
<p>TextClass is substantially
-
identical to release 13 except for bug fixes as noted below. ImageClass
+
identical to release 14 except for enhancements and bug fixes as noted below.  
-
provides new image viewing functionality.  FindaidClass improves handling of the EAD DTD and includes subject browsing.  BibClass is unchanged and is being de-emphasized.</p>
+
-
<p>Release 14 is comprised of:
+
Note that searching for the string <span class="release_15">'''Release_15'''</span> will produce a list of changes to this wiki that are relevant to DLXS Release 15.</p>
 +
 
 +
<p>Highlights of release 15 include:
 +
<ul>
 +
<li>[[#Lib|Customizable user interface fallback]]</li>
 +
<li>Better error handling and notification</li>
 +
<li>Improved browsing, including support for non-[a-z] characters</li>
 +
<li>[[#TextClass|TextClass]]: Much improved scaling and size options for JP2 images in PageViewer</li>
 +
<li>[[#ImageClass|ImageClass]]: Several new search options</li>
 +
<li>[[#OAI|OAI improvements]]</li>
 +
<li>[[#TextClass|TextClass]]: Text Class no longer supports MrSid image files (Image Class still does)</li>
 +
 
 +
</ul>
 +
 
 +
</p>
 +
 
 +
<p>Release 15 is comprised of:
   <ul>
   <ul>
-
         <li>[[#BibClass|BibClass version 3.8.1]]</li>
+
         <li>[[#BibClass|BibClass version 3.10.1]]</li>
-
         <li>[[#Oai version 1.1.1]]</li>
+
         <li>[[#OAI|Oai version 1.2.2]]</li>
-
         <li>[[#broker20|broker20 version 1.5.1]]</li>
+
         <li>[[#IdResolver|IdResolver 1.2.1]]</li>
-
         <li>[[#Collmgr|Collmgr version 3.3.1]]</li>
+
         <li>[[#Collmgr|Collmgr version 3.5.1]]</li>
-
         <li>[[#FindaidClass|FindaidClass version 6.5.1]]</li>
+
         <li>[[#FindaidClass|FindaidClass version 6.9.2]]</li>
-
         <li>[[#ImageClass|ImageClass version 4.11.1]]</li>
+
         <li>[[#ImageClass|ImageClass version 5.2.3]]</li>
-
         <li>[[#Lib|Lib version 4.12.1]]</li>
+
         <li>[[#Lib|Lib version 4.20.2]]</li>
-
         <li>[[#TextClass|TextClass version 4.7.1]]</li>
+
         <li>[[#TextClass|TextClass version 4.14.2]]</li>
         <li>[[#XClass|XClass version 2.2.5]]</li>
         <li>[[#XClass|XClass version 2.2.5]]</li>
-
         <li>[[#METS Pageturner and Collection Builder|METS Pageturner and Collection Builder version 1.26.1]]</li>
+
         <li>[[#XPAT|XPAT version 5.3.2 (5.3.7 in Release 15b)]]</li>
-
 
+
         <li>[[#SRU|SRU version 1.3.1]]</li>
-
         <li>[[#XPAT|XPAT version 5.3.2]]</li>
+
         <li>[[#Stats|Stats version 1.5.1]]</li>
-
         <li>SRU version 1.2.1</li>
+
         <li>dlxsd version 1.0.3</li>
         <li>dlxsd version 1.0.3</li>
Line 37: Line 51:
   </ul>
   </ul>
-
      <hr />
+
 
     </p>
     </p>
 +
<p>Additionally: Text Class PageViewer no longer supports Mr.SID images so if you are using Mr.SID they will have to be converted to JP2. Image Class still supports MrSID, though migration to JP2 is highly recommended.</p>
==Known Problems==
==Known Problems==
Line 48: Line 63:
==Database Installation Notes==
==Database Installation Notes==
-
<p>MySQL is the supported database type.  In order to run DLXS you will need to have a MySQL server installed.  Sample data is delivered in the form of a MySQL dump file which can be directly imported into a MySQL database.  The database upgrade script (<b>upgrade_6_7</b>) operates only on a MySQL database.  These issues are documented in detail in the [[Installing DLXS|installation instructions]] and the [[DLXS Database Upgrade Utility|upgrade instructions]].</p>
+
<p>MySQL is the supported database type.  In order to run DLXS you will need to have a MySQL server installed.  Sample data is delivered in the form of a MySQL dump file which can be directly imported into a MySQL database.  The database upgrade script (<b>upgrade_7_8</b>) operates only on a MySQL database.  These issues are documented in detail in the [[Installing DLXS|installation instructions]] and the [[DLXS Database Upgrade Utility|upgrade instructions]].</p>
==New and Changed Functionality==
==New and Changed Functionality==
Line 54: Line 69:
===XPAT===
===XPAT===
     <ul>
     <ul>
-
       <li>No changes.</li>
+
       <li>No changes in the original release.</li>
 +
      <li>There have been two XPAT-only releases (15a and 15b) bringing the version number to 5.3.7:</li>
 +
      <ul>
 +
        <li>64-bit inode support for large filesystems.</li>
 +
        <li><code>-r ROOT_PATH</code> command-line option where <code>ROOT_PATH</code> is an absolute path to which all other paths are relative.</li>
 +
        <li>Coptic and Arabic Unicode blocks added.</li>
 +
        <li>Cyrillic and Devanagari blocks extended.</li>
 +
      </ul>
     </ul>
     </ul>
===Lib===
===Lib===
 +
====New and Changed Functionality====
 +
<p><b>Customizable Fallback</b></p>
 +
Collections can now be configured to use any number of custom fallback levels between the standard group and class levels.  This allows greater control and reduced code duplication when managing your [[Customizing_the_User_Interface|user interface customizations]]. See the new "customfallbackwebdirs" Collection Manager field.
-
     <ul>
+
====Changed Files====
-
    <li></li>
+
<p><b>DlpsUtils.pm</b></p>
-
     </ul>
+
<ul>
 +
 
 +
  <li>Make no referring URL Assertion Failure Report not send email</li>
 +
  <li>Now log Assertion Failure Reports</li>
 +
  <li>If $keyValuePairs are not requested, an array is returned.  Fixed bug
 +
    that returned array in arbitrary order instead of in order they were
 +
     listed in Collmgr.</li>
 +
  <li>Updated to display feedback form with captcha on AFR error page</li>
 +
  <li>Added noAssert option to MkdirPath() to prevent inf. loop</li>
 +
  <li>sub BuildClassCacheWebPath (for emitting in XML).</li>
 +
  <li>Added RemoveTrailingHalfEntities + RemoveLeadingHalfEntities; rewrote
 +
    RemoveLeadingAndTrailingHalfTags to use both.</li>
 +
  <li>During fallback, check any dirs listed in the 'customfallbackwebdirs' filed in collmgr (after checking group dirs, but before checking class dirs).</li>
 +
  <li>Fallback: Grab values from LibGlobals for values that are undef or not passed in from app modules.</li>
 +
</ul>
 +
<p><b>LibGlobals.cfg</b></p>
 +
<ul>
 +
 
 +
  <li>Updated to read in the AFR error message from a (HTML) file</li>
 +
  <li>changed path to systemerrorfeedback.html file, adding f/feedback.</li>
 +
  <li>ScriptNames, used in search forms, now have vlaues defined here instead of in web/lib/dlxsglobals.xml.</li>
 +
 
 +
</ul>
 +
<p><b>DlpsUtils.pm</b>, <b>LibGlobals.cfg</b></p>
 +
<ul>
 +
 
 +
  <li>rewrite reCAPTCHA code to use a global hash for pub/priv keys in
 +
     LibGlobals and add access routines in DlpsUtils.pm</li>
 +
 
 +
</ul>
 +
<p><b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>added initialize and field for subclass gSortFields</li>
 +
 
 +
</ul>
 +
<p><b>BookBag.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Remove underscore from file extension for download file.</li>
 +
 
 +
</ul>
 +
<p><b>DbUtils.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Backticked a table names and column names in a bunch of places.</li>
 +
 
 +
</ul>
 +
<p><b>CollsInfo.pm</b>, <b>DLXSApp/FullTextApp.pm</b>, <b>DLXSClass/FullTextClass.pm</b>, <b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Fix linking to be relative to preserve https</li>
 +
 
 +
</ul>
 +
<p><b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>fix linking to be relative to preserve https</li>
 +
  <li>BuildHelpLink_XML: more flexibility for location of help files.</li>
 +
  <li>Use fallback to find the appropriate help dir.  Then use logic to find the best file within that dir.</li>
 +
  <li>BuildPdfLink_XML: fixed algorithm to find best help file in the fallback help dir.</li>
 +
 
 +
</ul>
 +
<p><b>ItemView.cfg</b>, <b>ItemView.pm</b>, <b>ItemViewApp.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Serving full item PDFs (if available in the repository).</li>
 +
 
 +
</ul>
 +
<p><b>Stats/Reports/COUNTER/ReportTools.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Display title ID if title name cannot be determined, rather than just skipping that title.</li>
 +
 
 +
</ul>
 +
<p><b>DLXSApp.pm</b>, <b>ItemAuth.pm</b>, <b>DLXSApp/FullTextApp.pm</b>, <b>DLXSClass/FullTextClass.pm</b>, <b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Moved item-level auth checking into module ItemAuth.pm, for use in auxillary cgi scripts.</li>
 +
 
 +
</ul>
 +
<p><b>DLXSApp.pm</b>, <b>DLXSApp/FullTextApp.pm</b>, <b>DLXSClass/FullTextClass.pm</b>, <b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Revert ItemAuth changes</li>
 +
 
 +
</ul>
 +
<p><b>DLXSApp.pm</b>, <b>DLXSApp/FullTextApp.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Re-virtualized ItemLevelRestrictionTestHook here.</li>
 +
  <li>Put sub ItemLevelRestrictionTestHook back here.</li>
 +
 
 +
</ul>
 +
<p><b>DLXSApp/FullTextApp.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Fixes in ItemLevelRestrictionTestHook.</li>
 +
 
 +
</ul>
 +
<p><b>ItemAuth.pm</b></p>
 +
<ul>
 +
 
 +
  <li>TestItemLevelRestriction:: test whether the appObject is defined before calling methods on it; otherwise use provided default values.</li>
 +
 
 +
</ul>
 +
<p><b>Stats/DB.pm</b>, <b>Stats/MainPage.pm</b>, <b>Stats/Resource.pm</b>, <b>Stats/Reports/COUNTER/BR1.pm</b>, <b>Stats/Reports/COUNTER/BR2.pm</b>, <b>Stats/Reports/COUNTER/BR5.pm</b>, <b>Stats/Reports/COUNTER/DR1.pm</b>, <b>Stats/Tools/ResourceTools.pm</b>, <b>Stats/XML/BuildXML.pm      </b></p>
 +
<ul>
 +
 
 +
  <li>Changes to record stats by year/month now instead of year/month/day, to reduce the number of rows in the database.</li>
 +
 
 +
</ul>
 +
 
 +
<p><b>XsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Decode browse values as UTF-8 before they're written to the XML output (so multi-byte characters are represented correctly).</li>
 +
  <li>Checks whether the browse value is already unicode (uft-8 flag is set) before decode it as unicode; for some reason, for serialissue, the flag is already set in production, but not in development(?).</li>
 +
  <li>sub BuildScriptNames_XML</li>
 +
 
 +
</ul>
 +
 
 +
<p><b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>sub BuildCacheWebPath.  To emit the href to the cache in the XML, instead of forcing XSLT to munge it from the path on disk.</li>
 +
 
 +
</ul>
 +
<p><b>LibGlobals.cfg</b>, <b>XsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Typo in gScriptNameFindaid.</li>
 +
 
 +
</ul>
 +
<p><b>CioFactory.pm</b>, <b>DlpsUtils.pm</b>, <b>GroupsInfo.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Examine AUTHZD_COLL for groupids, then populate authzd coll list with its member collids.  (Allows Cory to only make one access control rule for large groups.)</li>
 +
 
 +
</ul>
 +
<p><b>DLXSApp.pm</b>, <b>DlpsUtils.pm</b>, <b>XsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>More generic handling of browse navigation --- UI is able to present
 +
    non-[a-z] characters. Most of these are UTF8 characters; query parameters
 +
    are now protected accordingly.
 +
   
 +
    Modified DlpsUtils::RemoveLeadingAndTrailingHalfEntities to ignore
 +
    partial entity-like strings that have spaces in them.</li>
 +
 
 +
</ul>
 +
<p><b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Emit 'crosscollection.search.title.str' (via langmap.en.xml) for
 +
    TITLE_XML PI when xcollmode=colls to give title in &lt;head&gt; of page=home
 +
    or page=browsecolls.</li>
 +
 
 +
</ul>
 +
<p><b>Stats/MainPage.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Don't hard-code years for custom report. Do from 2006 to year().</li>
 +
 
 +
</ul>
 +
<p><b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Change 'amount' pulldown building
 +
    to reflect values that are in the map starting at 5 in increments of 5
 +
    up to 120</li>
 +
 
 +
</ul>
 +
<p><b>ItemView.cfg</b>, <b>ItemView.pm</b>, <b>ItemViewApp.pm</b></p>
 +
<ul>
 +
 
 +
  <li>changes to make pageview work like pageturner.</li>
 +
</ul>
 +
<p><b>ItemView.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Using the collmgr configurable display sizes.</li>
 +
 
 +
</ul>
 +
<p><b>DLXSApp.pm</b>, <b>XsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>DLXSApp.pm   
 +
    - GetBrowseInfo: sort results of ItemBrowseCount scan so [a-z] are guaranteed to come first 
 +
    XsltPIFiller.pm
 +
    - BuildBrowseNav_XML: more accurate calculation of initial single-letter
 +
    browse list (avoiding conflicts between how MySQL and Perl see some unicode characters)</li>
 +
</ul>
 +
<p><b>ItemView.pm</b></p>
 +
<ul>
 +
 
 +
  <li>dynamic page config.</li>
 +
</ul>
 +
<p><b>ItemView.pm</b></p>
 +
<ul>
 +
 
 +
  <li>1.  changed quality from 85 to 100 so picture would be sharper.
 +
    2.  Put in a check so that the defaultPage size is one available from the
 +
    dynamically computed amounts.</li>
 +
</ul>
 +
<p><b>DLXSApp/FullTextApp.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Different ways to sort idnos follr picklists; SPO (by default) will use index order, but the default will be to sort by idno.</li>
 +
  <li>Changed FullTextApp::HandlePicklistPage to use array of array refs instead of hash to maintain order and updated all calling code</li>
 +
  <li>Refactored and merged picklist logic with base class picklist logic</li>
 +
  <li>All SPO picklist customization using new Volume/Issue mode</li>
 +
</ul>
 +
<p><b>DlpsUtils.pm</b>, <b>ItemAuth.pm</b>, <b>XsltPIFiller.pm</b>, <b>XsltPIFiller/FullTextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
 
 +
  <li>New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)</li> 
 +
</ul>
 +
<p><b>DLXSApp.pm</b></p>
 +
<ul>
 +
 
 +
  <li>Pass arguments that enable custom fallback functionality in DlpsUtils.pm.</li>
 +
</ul>
 +
<p><b>LibGlobals.cfg</b></p>
 +
<ul>
 +
 
 +
  <li>Put fallback variables here in case they aren't defined at the class level.</li> 
 +
</ul>
 +
<p><b>BrowseUpdate/FindaidBU.pm</b></p>
 +
<ul>
 +
    <li>Added ability to generate subject browse for Finding Aids
 +
   
 +
</ul>
 +
 
 +
<p><b>BrowseUpdate.pm, updatebrowsedb.pl, BrowseDoubleLayerNav.xsl</b></p>
 +
<ul>
 +
  <li>Browse lists are based on collection data, so values outside 'a'..'z' can now be found in browse lists.</li>
 +
  <li>Explicitly encode browse values as UTF-8 before writing them to the database tables.</li>
 +
  <li>UTF-8 values are transliterated (e.g. zó -&gt; zo)  to match MySQL query semantics; the original UTF-8 is presented in lists.</li>
 +
  <li>Punctuation in values is ignored when building counts ("A.B" is treated as "Ab").
 +
  <li>Menu correctly handles when there are &gt; 26 items in the navbar.</li>
 +
  <li><strong>Browse update should be run against collections.</strong></li>
 +
</ul>
 +
 
 +
<p><b>dlxsglobals.xml</b></p>
 +
<ul>
 +
 
 +
  <li>ScriptNames now populated by a PI for greater application control (in this case, to substitute the Shibboleth script alias).</li>
 +
  <li>New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)</li>
 +
</ul>
===TextClass===
===TextClass===
 +
====New and Changed Functionality====
 +
<p>'''Pageviewer'''</p>
 +
Pageviewer was changed to support the following functionalaties:
 +
<ul>
 +
<li>
 +
The algorithm used in Release 14 used discrete steps to determine the scaled size, Release 15 uses continuous scaling to create the image size.
 +
</li>
 +
<li>Instead of using the + or - symbols to increase or decrease the size of the image and ocr, which only gave the user 3 size options ( small, medium, and large ), the user can now select a percent deviation from the original image size from which to view the image page or the ocr page.  For JP2000 files, at startup the software will determine what sizes to make available to the user.  A full range of sizes may not be available for every JP2000 page image.  The sizes available depends on the image's resolution.  The range available is 50% to 400%.  This range is not configurable for JP2000 files.  A test is made to determine if the image can scale to the appropriate the size.  If it can, that scale is made available, if not that scale is not made available.</li>
 +
<li>Pageviewer will no longer support Mr.SID images so if you are using Mr.SID they will have to be converted to jp2.</li>
 +
<li>Pageviewer no longer uses a frameset for displaying PDF; the <code>frm</code> URL parameter is no longer generated, and is ignored if present.</li>
 +
<li>The location of the page images have to be on the either on the server where pageviewer runs from or mounted on to that server.  You can indicate the location of images in the hash %gMoutnPointMap in the ItemView.cfg.</li>
 +
</ul>
-
    <h4>XML template and XSL stylesheet changes</h4>
+
The following files were changed to support this change:
-
    <ul>
+
<ul>
-
   
+
<li>t/text/clipviewer.xsl </li>
-
    </ul>
+
<li>t/text/htmlhead.xsl </li>
 +
<li>t/text/langmap.en.xml </li>
 +
<li>t/text/langmap.fr.xml </li>
 +
<li>t/text/pageviewer.xsl </li>
 +
<li>t/text/viewer.utils.xsl </li>
 +
<li>t/text/viewer.xsl </li>
 +
<li>lib/ItemView.cfg </li>
 +
<li>lib/ItemView.pm  </li>
 +
<li>lib/ItemViewApp.pm </li>
 +
</ul>
-
====CGI/Middleware====
+
In the subclasses are, these files were changed:
-
    <ul>
+
<ul>
-
      <li> TextApp.pm - Backward compatibility for pagenname=browseentries/Na.xml. Removed ValidityChecks setting of default value for browse. It is set when building the browse page when we know more about what is available instead of just selecting 'a'</li>
+
<li>a/acls/pageviewer.xsl </li>
-
      <li> TextClass.pm - Allow parameter $idroot to sub FigureIDResolver to indicate extra dir level in image filepath, e.g. web/c/coll/images/idroot/idno.jpg. Extensive re-write of entity resolution in &lt;FIGURE ENTITY=...&gt; to support more types of resolution.  Better error message when a query failure occurs fetching the text of a pageviewer page. TextClass::Filter_REFsForText now handles more kinds of REF targets. BEG Change regexp in FilterPBs_XML to accept &lt;PB .../&gt; or &lt;PB ...&gt;&lt;/PB&gt; since both are valid XML. Filter_REFsForText: check for TYPE="ptr" instead of assuming every REF with a TARGET attr is of the same type. Optimize Filter_REFsForText for case of no &lt;REF ..&gt; elements. Fix bug: Empty defaultpageview field is ok if pageimages field is empty or 0 in collmgr. Better error message in GetItemEncodingLevel()</li>
+
<li>PVApp/EeboPVApp.pm  </li>
 +
<li>PageView/AclssuppPV.pm </li>
 +
<li>PageView/CjsPV.pm </li>
 +
<li>PageView/EccoPV.pm </li>
 +
<li>PageView/MachynPV.pm </li>
 +
</ul>
-
    </ul>
+
<p>'''Picklist'''</p>
 +
Picklist has been modified to offer issue and volume views, along with the "classic mode" (i.e., pre-existing picklist view). By default, all code is evaluated in classic mode, meaning that picklists will behave as it did in release 14. See [[Picklist customization for serial articles]] for more information.
-
===ImageClass===
+
The following files were changed to support this change:
 +
<ul>
 +
<li>DlpsLocalUtils.pm</li>
 +
<li>langmap.en.xml</li>
 +
<li>picklist.xsl</li>
 +
<li>picklistheader.xsl</li>
 +
</ul>
-
====CGI/Middleware====
+
There were many collection-specific changes. The broadest changes were accomplished by enabling the new picklist functionality in SpoCommonTC.pm and in turn subclassing that (instead of TextClass.pm) for collection-specific text classes. Additional customization was accomplished for each collection by modifying picklist.xsl, picklistheader.xsl, or langmapextra.xml in the respective web directory.
-
<p>Known Problems</p>
+
====Changed Files====
 +
<p><b>langmap.en.xml</b></p>
<ul>
<ul>
 +
<li>added openurl link text</li>
-
<li>Metadata fields containing xml must be mapped to ic_xml in the field_admin_maps Collection Manager field. AND, there is a bug in the released version of the data2db.pm perl module that causes fields containing XML to be skipped completely. <a href="/products/archive-by-CDROM/13/Patches">Download</a> the data2db.pm patch file.</li>
+
</ul><p><b>pageviewerheader.xsl</b></p>
-
<li>July 11, 2007. data2db.pm parser for FMP DSO XML failed to handle fields where the name of the field contains special regular expression characters that needed to be quoted. <a href="/products/archive-by-CDROM/13/Patches">Download</a> the data2db.pm patch file.</li>
+
<ul>
-
<li>TEXT::CSV_XS Perl module must be installed (available in CPAN) in order for the image class data loading script to perform.</li>
+
<li>added class=title245 to div in itemcitation</li>
-
<li>The owner of a session based/temporary portfolio is not allowed to open it. For example, a non-authenticated user adds an image to a new portfolio and the user is not allowed to see the portfolio when it tries to open to display the new addition. To fix the problem, change the following lines of the <strong>GetBookBag</strong> method in <strong>$DLXSROOT/cgi/i/image/ImageApp.pm</strong>.
+
-
<br><strong>Old</strong>
+
</ul><p><b>textclass.css</b></p>
-
<pre>
+
<ul>
-
  if ( ( lc($ENV{'REMOTE_USER'}) ne lc($portfolioOwner) ) && ( ! $portfolioPublic ) )
+
<li>added .title245 style to fix long titles that wrap and cut off pdf viewer navigation</li>
-
  {
+
-
  &DlpsUtils::errorBail( qq{Requested portfolio is not public. The owner may choose to make it so.} );
+
-
  }
+
-
</pre>
+
-
<strong>New</strong>
+
-
<pre>
+
-
  my $sessionid = &DlpsUtils::GetReadOnlySessionId();
+
-
  my $username = $ENV{'REMOTE_USER'} || qq{sid-} . $sessionid;
+
-
+
-
  if ( ( $username !~ m/^$portfolioOwner$/i ) && ( ! $portfolioPublic ) )
+
-
  {
+
-
  &DlpsUtils::errorBail( qq{Requested portfolio is not public. The owner may choose to make it so.} );
+
-
  }
+
-
</pre>
+
-
      </li>
+
</ul><ul>
-
    </ul>
+
<li>Links to PDFs (if available).</li>
 +
<ul>
 +
<li>picklistheader.xsl</li>
 +
<li>textclass.css</li>
 +
</ul>
 +
</ul><p><b>navheader.xsl</b></p>
 +
<ul>
 +
<li>Simplified help link; now uses whatever value is provided by the middleware.</li>
 +
</ul><p><b>help/help-readme.html</b></p>
 +
<ul>
 +
<li>Describes a workflow and workfiles that do not exist.</li>
 +
</ul><p><b>help/bbag-holdings.html, help/bbag-intro.html, help/bbag-srch.html, help/history-intro.html, help/results-intro.html, help/results-sort.html, help/search-basic.html, help/search-bib.html, help/search-boolean.html, help/search-intro.html, help/search-proximity.html, help/search-sel-type.html, help/search-tips.html, help/search-ww.html, help/xcbbag-holdings.html, help/xcbbag-intro.html, help/xcbbag-search.html, help/xchistory-intro.html, help/xcresults-intro.html, help/xcresults-sort.html, help/xcsearch-basic.html, help/xcsearch-bib.html, help/xcsearch-boolean.html, help/xcsearch-intro.html, help/xcsearch-proximity.html, help/xcsearch-sel-type.html, help/xcsearch-tips.html, help/xcsearch-ww.html, help/css/help.css</b></p>
 +
<ul>
 +
<li>Copyediting, took out references to UMDL.</li>
-
<b><p>Speed/Performance Enhancements </p></b>
+
</ul><p><b>tocheader.xsl</b></p>
-
  <ul>
+
<ul>
-
  <li>Sliced viewing of portfolios was added to improve performance of large portfolios
+
<li>Don't add comma between multiple EDITORS after apply-templates, the comma is add
-
  and to avoid getting throttled by the web server due to many thumbnail requests
+
ed in the template rule.</li>
-
  at once. This changed required some rearrangement of interface functions.</li>
+
-
  <li>Browse results are now sliced for better performance and a list of field
+
-
    values with occurrence counts is presented in the sidebar for further navigation
+
-
    within the browse results. </li>
+
-
  <li>Changed Image Class searching to use UNION of sql select statements rather
+
</ul><p><b>textclass.css</b></p>
-
    than a temp table. The temp table was contributing to MySQL database replication
+
<ul>
-
    errors.</li>
+
<li>added style for tocdiv table to make it 100% due to a bug in IE8 that ignores the table width set in the table attribute</li>
-
  <li>Thumbnails are now embedded in XHTML as a data:URI, reducing the number
+
-
    of HTTP requests and improving performance. This does not work with IE, so,
+
-
    the common thumbnail linking method is used for IE. </li>
+
-
  <li>A limited number of search results are now cached on the session in raw
+
-
    unformatted form and as XML. Look-ahead cacheing is done as the end of the
+
-
    CGI run for the next slice as well. The cacheing improves overall performance.</li>
+
-
  </ul>
+
-
<p>Other</p>
+
-
<ul>
+
-
  <li>Made changes to <em>related views</em> to support
+
-
    direct media links.</li>
+
-
  <li>Minor xsl change related to entry display
+
</ul><p><b>tocheader.xsl</b></p>
-
    of real media and pdf links.</li>
+
<ul>
-
  <li>Separated thumbnail XSL code out into new template
+
<li>$subjectinfo: also use @TYPE='keyword'.</li>
-
    for easy override.</li>
+
-
  <li>Made changes to avoid searching all
+
-
    collections when no collections are selected in group search mode. It is now
+
-
      necessary for the user to select at least one collection.</li>
+
-
  <li>Improved handling
+
-
        of missing portfolio items.</li>
+
-
  <li>CSS is used to change the background color of items just added to a
+
-
          portfolio.</li>
+
-
  <li>Enlarged the display size of the DIV that encloses each thumbnail
+
-
            in the results view. This reduces the clipping of metadata in some
+
-
          cases.</li>
+
-
  <li>Image Class was modified to use a database table (ImageClassMediaFiles)
+
</ul><p><b>htmlhead.xsl</b></p>
-
          to store and retrieve technical metadata about images instead of storing
+
<ul>
-
        this information in text files on disk.</li>
+
<li>changed the way title is handled for journals</li>
-
  <li>Previously a record with multiple media items, each with a distinct
+
-
          caption, resulted in a single combined caption. Now captions are independently
+
-
          associated with images. Please see documentation for details of how to
+
-
          take advantage of this new functionality relating to <em>ic_vi </em>field
+
-
        mappings. </li>
+
-
  <li>Added ability to output xml (rather than xhtml or html, and without
+
-
          using debug=XML) after applying xslt to original xml.</li>
+
-
  <li>Improved retrieval of items when an exact match of the ID is not possible.
+
-
          For example, when an id stored in a portfolio fails to work as is, there
+
-
          are some simple things that can be done to find the right record in most
+
-
          cases.</li>
+
-
  <li>Fixed a bug that allowed private portfolios to be retrieved by ID,
+
-
          even if not the owner. This situation was not likely to occur in real
+
-
          use, and it did not make the content accessible, just the structure of
+
-
          the portfolio.</li>
+
-
  <li>Browse level configuration can now be done per field using Collmgr. </li>
+
</ul><p><b>navheader.xsl</b></p>
-
  <li>Image Class items can now be retrieved by filename alone if there is
+
<ul>
-
          an exact match with an entry. </li>
+
<li>call buildLoginLink factored out of web/t/text/navheader.xsl</li>
-
  <li>Changed handling of captions in related views for situation where there
+
 
-
          is no image for the view to display the caption. This is helpful with
+
</ul><p><b>clipviewer.xsl, jquery.ba-resize.js, pageviewer.xsl, pdf_framer.js, viewer.utils.xsl, viewer.xsl</b></p>
-
          a database that has a single record with &quot;views&quot; for digital
+
<ul>
-
          and slide so that the slide has reasonable representation in the related
+
<li>Removed <code>frm</code> param and frameset option for PDF viewing; now use iframe with Javascript to calculate correct frame size.</li>
-
          views table.</li>
+
 
-
  <li>Added a status check on prep tables to make sure there are indexes before
+
</ul><p><b>footer.import.xsl</b></p>
-
          allowing the middleware to hit on them. This adds stability in certain
+
<ul>
-
          environments, like Michigan's where MySQL replication is in use.</li>
+
<li>Added alt attribute to "Back to Top" link image.</li>
-
  <li>Improved handling of AUTHZD_COLL list for comparision to entry auth
+
 
-
          value for allowing/denying access to full image.</li>
+
</ul><p><b>header.xsl, search.xsl, ww.xsl</b></p>
 +
<ul>
 +
<li>Renamed form method "GET" to "get".</li>
 +
 
 +
</ul><p><b>text.components.xsl</b></p>
 +
<ul>
 +
<li>Typo: $divLevel -&gt; $divlevel</li>
 +
 
 +
</ul><p><b>text.components.xsl</b></p>
 +
<ul>
 +
<li>HEADER tmeplate: handle unexpected cases with  &lt;xsl:otherwise&gt;&lt;xsl:apply-templates/&gt;&lt;/xsl:otherwise&gt;.</li>
 +
 
 +
</ul><p><b>textclass.css</b></p>
 +
<ul>
 +
<li>added styles for new h1, h2, etc. output from t/text/text.components.xsl</li>
 +
 
 +
</ul><p><b>resultsheader.xsl</b></p>
 +
<ul>
 +
<li>More robust code changes to support mixed collections moved from Feminist Studies to DLXS system-wide</li>
 +
 
 +
</ul><ul>
 +
<li>Fixes for Diderot so publication information field only shows up if any information; fix to base XSLT stylesheet since applies to all collections</li>
 +
<ul>
 +
<li>resultsheader.xsl</li>
 +
<li>searchheader.xsl</li>
 +
</ul>
 +
</ul><p><b>langmap.en.xml, picklist.xsl, picklistheader.xsl, resultsheader.xsl, searchheader.xsl</b></p>
 +
<ul>
 +
<li>All SPO picklist customization using new Volume/Issue mode</li>
 +
 
 +
</ul><p><b>browse.xsl</b></p>
 +
<ul>
 +
<li>New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)</li>
 +
 
 +
</ul><p><b>TextClass.pm</b></p>
 +
<ul>
 +
<li>SerialArticleTocLinkHook: built link to view=toc for pageimage collections.</li>
 +
 
 +
</ul><p><b>TextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
<li>BuildItemLink_XML: handle case of serialarticle colls using pageimages.</li>
 +
 
 +
</ul><p><b>DlpsLocalUtils.pm</b></p>
 +
<ul>
 +
<li>CreatePicklist: don't link to text view if it's a serialarticle coll that uses pageimages.</li>
 +
 
 +
</ul><p><b>textclass.cfg</b></p>
 +
<ul>
 +
<li>fix linking to be relative to preserve https</li>
 +
 
 +
</ul><p><b>textclass.cfg</b></p>
 +
<ul>
 +
<li>$gHelpSubdir: more flexibility for location of help files.</li>
 +
 
 +
</ul><p><b>TextClass.pm</b></p>
 +
<ul>
 +
<li>Moved logic of ViewPDFLink_XML to TextAppXsltPIFiller.pm, as most of the time it is processing PIs.</li>
 +
 
 +
</ul><p><b>TextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
<li>ViewPDFLink_XML: now looks for PDFs in item obj dir, then serves them out of web cache.</li>
 +
 
 +
</ul><p><b>TextClass.pm</b></p>
 +
<ul>
 +
<li>Moved  ViewPDFLink_XML back from TextAppXsltPIFiller.pm (caused more problems than it solved).</li>
 +
 
 +
</ul><p><b>TextAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
<li>Moved ViewPDFLink_XML back to TextClass.pm (caused more problems than it solved).</li>
 +
 
 +
</ul><p><b>TextClass.pm</b></p>
 +
<ul>
 +
<li>Moved item-level auth checking into module ItemAuth.pm, for use in auxillary cgi scripts.</li>
 +
 
 +
</ul><p><b>TextClass.pm</b></p>
 +
<ul>
 +
<li>Calls to ViewPDFLink_XML now call BuildPODandDODLinks_XML.</li>
 +
 
 +
</ul><p><b>DlpsLocalUtils.pm</b></p>
 +
<ul>
 +
<li>Add call to BuildPODandDODLinks_XML.</li>
 +
 
 +
</ul><p><b>textclass.cfg</b></p>
 +
<ul>
 +
<li>Change 'amount' pulldown building
 +
to reflect values that are in the map starting at 5 in increments of 5
 +
up to 120 -- replaces @proximityAmounts array</li>
 +
 
 +
</ul><p><b>textclass.cfg</b></p>
 +
<ul>
 +
<li>Set up a variable (which will be used in TextClass/SpoCommonTC.pm when commited) that uses custom SpoLocalUtils.pm instead of DlpsLocalUtils.pm for picklist processing.</li>
 +
 
 +
</ul><p><b>textclass.cfg</b></p>
 +
<ul>
 +
<li>Added .png to gEntityExtensionsToCheck.</li>
 +
 
 +
</ul><p><b>TextClass/FsTC.pm</b></p>
 +
<ul>
 +
<li>New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)</li>
 +
 
 +
</ul>
 +
 
 +
===ImageClass===
 +
 
 +
 
 +
====CGI/Middleware====
 +
 
 +
<p>Known Problems</p>
 +
<ul>
 +
<li>None known so far.</li>
 +
</ul>
 +
 
 +
<p>Enhancements </p>
 +
 
 +
<ul>
 +
    <li>Image Viewing
 +
        <ul>
 +
            <li>Each field value repetition is now wrapped in a DIV with class <tt>fldvalrep</tt> so that spacing between repetitions can be controlled (<tt>fieldvalues.xsl, css/imageclass.css</tt>)</li>
 +
            <li>Document domain setting is no longer set; it can be added in custom XSL (<tt>js/imageclass.js</tt>)</li>
 +
            <li>Added download link for current image size (<tt>entry_imagetools.xsl, langmap.en.xml, panzoom.xsl</tt>)</li>
 +
            <li>Feedback form now uses reCAPTCHA service (<tt>bbentry.xml, entry.xml</tt>)</li>
 +
            <li>Added "prep tables in use" indicator when using <tt>prep=1</tt> option (<tt>htmlhead.xsl, langmap.en.xml, css/imageclass.css</tt>)</li>
 +
            <li>Improved page titles and meta information for key pages in Image Class
 +
              with hopes of improving search engine recognition and simply making
 +
              the pages more meaningful and therefore user friendly (<tt>entry.xml, entry.xsl, groups.xsl, htmlhead.xsl, index.xsl, panzoom.xsl, results.xsl, search.xsl</tt>).</li>
 +
            <li>Long titles can be truncated via Javascript (<tt>entry.xsl, panzoom.xsl, entry.xml, js/jquery.text-overflow.js</tt>).</li>
 +
            <li><tt>ImageAppXsltPIFiller.pm</tt>
 +
                <ul>
 +
                    <li>Added "urltext" option to idlinks and keylinks options for field value
 +
                          display, configurable in collmgr.</li>
 +
                    <li>display order of browseoptions fields is now the same as listed in the
 +
                    browsefields collmgr field.</li>
 +
                </ul>
 +
            </li>
 +
                   
 +
        </ul>
 +
    </li>
 +
    <li>Portfolios
 +
        <ul>
 +
            <li>Track ExtendedSliceSize and warn user that their downloaded porfolio will not
 +
              contain all items (<tt>bbexportprep.xsl, langmap.en.xml</tt>).</li>
 +
            <li>Better handling of IDs that have changed since being stored in a portfolio (<tt>ImageApp.pm</tt>)</li> 
 +
            <li>Better cleanup of artifacts from downloaded portfolios (<tt>ImageApp.pm</tt>)</li>
 +
        </ul>
 +
    </li>
 +
    <li>Searching/Browsing
 +
        <ul>
 +
            <li>Changes that support new searching options ("searchtypes" in Collection Manager) including starts with, ends
 +
                with, and contains, exact, and support for term list in search form (<tt>browseoptions.xsl, index.xml, index.xsl, search.xsl, css/imageclass.css, js/imageclass.js</tt>).</li>
 +
            <li>Fields can now be weighted for relevance ranking. Configurable in Collection Manager.</li>
 +
            <li>Search result pages have a <tt>link</tt> reference to a MediaRSS feed (<tt>resultsdata.xsl</tt>).</li>
 +
            <li>Result pages should now print without losing any images (<tt>htmlhead.xsl, css/print.css</tt>)</li>
 +
        </ul>
 +
    </li>
 +
</ul>
-
  <li>Enhanced getimage-idx to do a better job of finding an image where
 
-
          the viewid has changed for some reason, and a stale external link is
 
-
          being used.</li>
 
-
  </ul>
 
====Data Preparation====
====Data Preparation====
-
<p>Speed/Performance Enhancements </p>
 
-
<ul><li>Image Class was modified to use a database
 
-
      table (ImageClassMediaFiles) to store and retrieve technical metadata
 
-
        about images instead of storing this information in text files on disk.
 
-
        Unofficially, metadata loading is 2-4 times faster than it was before
 
-
        because image filenaming checking is faster with the table.</li>
 
-
  <li>Tables are now locked during metadata loading. This speeds up the data
 
-
      loading.</li>
 
-
  <li>Consolidated table optimizations into single MySQL statement rather than
+
<p>Enhancements </p>
-
    several. The same was done for index building. This is approach is much
+
-
      faster. </li>
+
-
  <li>Combined ic_all (all fields of the record) field is now made into a unique
+
-
    list of words to reduce the size of ic_all a little, and in turn improve
+
-
      search performance.</li>
+
-
</ul>
+
-
    <b><p>Other</p></b>
+
<p><b>statsconfig.pl</b></p>
-
    <ul>
+
<ul>
-
      <li> Made changes to the key Image Class data loading scripts to add an
+
  <li>This a new script that generates stats configuration resource definations for image class collections. These definitions are used by the stats system to know how to gather usage statistics.</li>
-
        option that allows data records to be loaded to an alternative (e.g.,
+
</ul>
-
        development or prep) MySQL server. The option is configured globally
+
-
        in the icdbprep.cfg file, and can also be controlled with a command line
+
-
        parameter for load.pl, icdbprep.pl, fmpxml2mysql.pl (deprecated in favor
+
-
      of data2db.pl), and data2db.pl.</li>
+
-
      <li>The mediaprep script replaced imageprep as the utility for gathering
+
===OAI===
-
          information about media files for use with Image Class. mediaprep works
+
-
        with the new ImageClassMediaFiles table. </li>
+
-
      <li>Previously a record with multiple media items, each with a distinct
+
-
          caption, resulted in a single combined caption. Now captions are independently
+
-
          associated with images. Please see documentation for details of how to
+
-
          take advantage of this new functionality relating to <em>ic_vi </em>field
+
-
        mappings. </li>
+
-
      <li>Changed the way the ic_all field is assembled so that it includes &quot;istruct_caption_&quot; fields
+
-
      that are mapped to ic_all. </li>
+
-
      <li>Session timeouts during data loading are now avoided by making the
+
-
          sessions empty so that there is no attempt to write the session back
+
-
        to the session database.</li>
+
-
      <li>If a
+
====New and Changed Functionality====
-
    ic_id was &gt; 255, index would not get added. Now, it
+
You must create the following two tables oai_marc and oai_mods in additions to the oai and oaisets tables:
-
    will, for those odd situations where an ic_id is so
+
-
    long (probably a data error).</li>
+
-
      <li>Case of filename field
+
-
    names was not handled properly. Uppercase fieldnames
+
-
    were ignored. This had been fixed. </li>
+
-
      <li>Changed &quot;splitrepeatingfield&quot; routine
+
-
    so that it no longer splits on a comma in an ic_vi (caption) or ic_fn (filename)
+
-
        field. ic_vi fields often include commas not meant as delimiters. </li>
+
-
      <li>Added automatic database reconnection. This is most likely to aid data
+
-
          loading processes in certain environments. This is actually a change
+
-
        to DbUtils.pm, but is most beneficial to Image Class. </li>
+
-
      <li>Removed a filter for binary files that
+
<pre>
-
     was getting confused about text PDFs and RAM files that simply enclose a URL
+
  CREATE TABLE `oai_marc` (
-
        for redirection.</li>
+
     id  varchar(150) NOT NULL default '',
-
     </ul>
+
    timestamp  timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
 +
     marc21  mediumblob,
 +
    PRIMARY KEY  (id),
 +
    KEY timestamp (timestamp),
 +
    KEY oai_time_id (timestamp,id));
-
===BibClass===
+
  CREATE TABLE `oai_mods` (
-
     <ul>
+
     id` varchar(150) NOT NULL default '',
-
      <li>Exploratory work in BibClass IMLS subclasses for clustering/categorization support.</li>
+
    timestamp  timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
-
     </ul>
+
     mods  mediumblob,
 +
    PRIMARY KEY  (id),
 +
    KEY timestamp (timestamp),
 +
    KEY oai_time_id (timestamp,id));
 +
</pre>
-
===Oai===
+
We were finding that UMProvider was taking too long when responding to a request for marc and mods records, so we created these two tables to contain marc and mods records.  In our nightly cron jobs that keep the oai tables current, we have all the marc and mods records placed in the oai table and also in one of these two tables depending on the format type of the record:
-
    <ul>
+
<pre>
-
      <li></li>
+
INSERT INTO oai_marc select id, times tamp, marc21 FROM oai WHERE marc21 is not null;
-
    </ul>
+
-
===broker20===
+
INSERT INTO oai_marc select id, times tamp, marc21 FROM oai WHERE marc21 is not null;
-
    <ul>
+
</pre>
-
      <li>No changes.</li>
+
-
    </ul>
+
 +
The data provider provides records from the oai table when a Dublin Core format type request comes in; from the oai_marc table when a marc format type request comes in; and, from oai_mods when a mods format request comes in.
 +
 +
====Changed Files====
 +
<p><b>provider/LoadDB.pl</b></p>
 +
<ul>
 +
<li>Updated to trim set and id before storing record</li>
 +
<li>Updated ConnectToDB to get database name from config xml</li>
 +
<li>De-coupled from nameresolver so that it is optional to sync with nameresolver</li>
 +
<li>new code for new tables oai_mods, and oai_marc</li>
 +
</ul>
 +
<p><b>provider/GetNewCollections.pl</b></p>
 +
<ul>
 +
<li>Fixed path for emailing report to look in subdir</li>
 +
</ul>
 +
<p><b>provider/umprovider_flow_diagrams_and_examples.ppt</b></p>
 +
<ul>
 +
<li>PowerPoint presentation for the workshop which includes example transformations and 3 flow charts</li>
 +
</ul>
 +
<p><b>provider/ExtractHeaders.pl</b></p>
 +
<ul>
 +
<li>Updated to get data dictionary from collmgr instead of constructing the path using the standard convention</li>
 +
</ul>
 +
<p><b>provider/RunOaiConversion.pl</b></p>
 +
<ul>
 +
<li>Updated call to LoadDB for DLPS classes</li>
 +
</ul>
 +
<p><b>provider/exampleColls.xml</b></p>
 +
<ul>
 +
<li>Updated to use sampleutf8_tc collection which is included in the DLXS release</li>
 +
</ul>
 +
<p><b>provider/dlxs_to_oaidc_cron.pl</b></p>
 +
<ul>
 +
<li>Cron job to include in DLXS 14 release which includes email addresses specified in oai.cfg</li>
 +
</ul>
 +
<p><b>provider/dlps/text_ic_oai_cron.pl</b></p>
 +
<ul>
 +
<li>Updated call to RunOaiTransformation</li>
 +
</ul>
 +
<p><b>provider/dlps/modifiedDlpsColls.xml, provider/CollsAndTypesOfIDs.xls</b></p>
 +
<ul>
 +
<li>Moved to dlps subdir</li>
 +
</ul>
 +
<p><b>provider/dlps/modifiedSpoColls.xml</b></p>
 +
<ul>
 +
<li>Moved to modified subdir</li>
 +
</ul>
 +
<p><b>provider/dlps/RunDlpsOaiConversion.pl, provider/dlps/text_ic_oai_cron.pl</b></p>
 +
<ul>
 +
<li>More specific version of old RunOaiConversion.pl script to be used for DLPS</li>
 +
</ul>
 +
<p><b>provider/dlps/RunDlpsOaiConversion.pl</b></p>
 +
<ul>
 +
<li>Had to move back to bin/o/oai/provider because of paths for scripts</li>
 +
<li>File for running DLPS specific text class to oai_dc transformation. This is provided as an example for release 14 but most people can probably more easily modify RunOaiConversion.pl</li>
 +
</ul>
 +
<p><b>provider/ExtractHeaders.pl</b></p>
 +
<ul>
 +
<li>Updated to take xpat host as param</li>
 +
</ul>
 +
<p><b>provider/GenerateReport.pl, provider/RunDlpsOaiConversion.pl, provider/RunOaiConversion.pl</b></p>
 +
<ul>
 +
<li>Updated help option and call to ExtractHeaders</li>
 +
<li>Updated path to colls.xml files</li>
 +
</ul>
 +
<p><b>provider/GenerateReport.pl</b></p>
 +
<ul>
 +
<li>Updated call to get DLXSROOT environment variable</li>
 +
</ul>
 +
<p><b>provider/oai_update_history_text.txt</b></p>
 +
<ul>
 +
<li>Example file for execution history</li>
 +
</ul>
 +
<p><b>provider/exampleColls.xml</b></p>
 +
<ul>
 +
<li>Updated with instructions about the possible attributes for each collection</li>
 +
</ul>
 +
<p><b>provider/GetNewCollections.pl</b></p>
 +
<ul>
 +
<li>Updated logic to send report with or without CC on email</li>
 +
</ul>
 +
<p><b>provider/dlps/NewOAICollection.svg, provider/dlps/RunOaiConversion.svg, provider/dlps/UMProviderFlow.svg</b></p>
 +
<ul>
 +
<li>SVG (Omnigraffle, Visio, gliffy) editable formats of the flow diagrams for UMProvider. The JPEG (uneditable) versions of these files are $DLXSROOT/bin/o/oai/provider.</li>
 +
</ul>
 +
<p><b>ConfirmPublicDomain.pl</b></p>
 +
<ul>
 +
<li>new set name, minor changes</li>
 +
</ul>
 +
<p><b>filterMarc21.xsl</b></p>
 +
<ul>
 +
<li>added new fields</li>
 +
</ul>
 +
<p><b>provider/dlps/text_ic_oai_cron.pl</b></p>
 +
<ul>
 +
<li>be more exact in the path.</li>
 +
</ul>
 +
<p><b>provider/oai_update.pl</b></p>
 +
<ul>
 +
<li>new code for new tables oai_marc and oai_mods</li>
 +
<li>drop tables oai_copy and oaisets_copy in case connect error left them
 +
behind on previous run.</li>
 +
</ul>
 +
<p><b>moveOaiTables.pl</b></p>
 +
<ul>
 +
<li>new code for new tables oai_mods and oai_marc</li>
 +
<li>code for the oai_marc and oai_mods tables.</li>
 +
</ul>
 +
<p><b>provider/dlps/modifiedDlpsColls.xml, provider/dlps/modifiedSpoColls.xml, provider/dlps/oai_update_history_dlps.txt, provider/dlps/oai_update_history_spo.txt</b></p>
 +
<ul>
 +
<li>these are changed by the cron jobs and should not be controlled.</li>
 +
</ul>
 +
<p><b>provider/oai_new_coll_history.txt, provider/oai_update_history_text.txt</b></p>
 +
<ul>
 +
<li> they are dynamic.  no need for cvs control.</li>
 +
</ul>
 +
<p><b>provider/oai_update.pl</b></p>
 +
<ul>
 +
<li>insert deleted records into marc and mods table.</li>
 +
</ul>
 +
<p><b>ExtractIdno.pl</b></p>
 +
<ul>
 +
<li>new, for processing non oai items into nameresolver.</li>
 +
</ul>
 +
<p><b>provider/GetNewCollections.pl, provider/dlxs_to_oaidc_cron.pl, provider/dlps/text_ic_oai_cron.pl</b></p>
 +
<ul>
 +
<li>removed the Server from mail module so that email did not get sent to the server.</li>
 +
</ul>
 +
<p><b>provider/textClassToDc.xsl</b></p>
 +
<ul>
 +
<li>changes to support ca, icp, and tap.</li>
 +
<li>added special condition for jsas spo collection.</li>
 +
</ul>
 +
<p><b>oai.cfg</b></p>
 +
<ul>
 +
<li>Added to request email addresses for reports</li>
 +
<li>Updated instructions for email addresses</li>
 +
<li>change question wording</li>
 +
</ul>
 +
<p><b>UMProvider.pm</b></p>
 +
<ul>
 +
<li>fix bug in GetRecord for bad ID values</li>
 +
<li>minor bug in opt. SetSetsTableName() call</li>
 +
<li>added support for deleting records at the metadata level</li>
 +
<li>new tables oai_marc and oai_mods to optimize db.</li>
 +
<li>added support for optional about container</li>
 +
</ul>
 +
<p><b>oai</b></p>
 +
<ul>
 +
<li>support YYYY-MM-DD request for ListRecords and ListIdentifiers.</li>
 +
</ul>
 +
 +
===IdResolver===
 +
<ul>
 +
<li>added bin/n/nameresolver</li>
 +
<ul><li>cvstag.idresolver</li></ul>
 +
</ul><ul>
 +
<li>new error message when nameresolver can't find an ID.</li>
 +
<ul><li>IDResolver.pm</li></ul>
 +
</ul>
===Collmgr===
===Collmgr===
-
    <ul>
+
<p>Supports database version 8.0 for DLXS release 15.</p>
-
      <li>Labels on radio buttons now clickable.</li>
+
-
    </ul>
+
 +
<p><b>collmgr-fields.html</b></p>
 +
<ul>
 +
  <li>Added info about recordcount and mediacount</li>
-
===FindaidClass===
+
  <li>Changed documentation for browsefields to include Findaid Class
-
     <h4>XML template and XSL stylesheet changes</h4>
+
     subject searching and to document that first field on browsefields
-
    <ul>
+
    list is used for default browse page in Text and Findaid Class</li>
-
      <li>browse.xml - Added &lt;BrowseLevels&gt;&lt;?BROWSE_LEVELS_XML?&gt;&lt;/BrowseLevels&gt;</li>
+
  <li>Documented field_rel_weight for relevance ranking</li>
-
      <li>browse.xsl - Changes for subject browse and special 'browsefields' syntax to support browse levels per field, e.g. subject=0, author=1</li>
+
  <li>Corrected description of pageviewhost based on the changes to make pageview work more like pageturner.</li>
 +
  <li>More documentation for defatulpagesize.</li>
 +
  <li>New field for the image sizes to display.</li>
 +
  <li>Update secondarytitle documenation. This field only implemented in bibclass.</li>
 +
  <li>Updated collmgr-fields.html (collmgr documentation) for new field "quickbrowse"</li>
 +
  <li>New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)</li>
 +
  <li>Added customfallbackwebdirs.</li>
 +
</ul>
-
      <li>navheader.xsl - Avoid adding empty "tips=" parameter to url for navbar links to fix problem where additional url params tacked onto end create invalid syntax e.g. ...tips=target=_top</li>
+
<p><b>addcoll.tpl, addfields.tpl, addgroup.tpl, badidwarning.tpl, checkinconfirm.tpl, checkingroupwarning.tpl, checkinwarning.tpl, checkoutlist.tpl, collmgr-dlxsadm.css, collmgr-user.css, collmgr.css, collmgrdown.tpl, contdeletefields.tpl, deletefields.tpl, displayclassesforrelease.tpl, displayclassselection.tpl, edit.fs.tpl, insertcollidwarning.tpl, insertwarning.tpl, login.tpl, mainmenu.tpl, removeconfirm.tpl, selectionwarning.tpl, updatecoll.tpl, updategroup.tpl, viewlist.tpl, viewreadonlycoll.tpl, viewreadonlylist.tpl</b></p>
-
      <li>search.xsl - Move tips to below the search form so the iframe is not squeezed into a tiny box</li>
+
<ul>
-
      <li>results.xsl - BEG Fixed bug in hit summary creation for boolean search results.</li>
+
  <li>Make $gReleaseUserHost quod.lib.umich.edu for us and 0 for partners.
-
      <li>text.xml -  Remove TextClass PI doesn't belong &lt;DocEncodingType>&lt;?DOC_ENCODING_TYPE_XML?>&lt;/DocEncodingType></li>
+
    Force $gLogin to dlxsadm on this host to support dlxsadm on production
-
      <li>text.xsl -  Refer to results.str.returntoresults instead of results.str.22 so "return to results" link will show up.</li>
+
    host (collmgr must be in the ACL for that host to protect access to
 +
    collmgr to just those who can authenticate to a production host).  Add
 +
    color effects when running as dlxsadm.</li>
 +
 
 +
</ul>
-
     </ul>
+
<p><b>collmgr.cfg</b></p>
 +
<ul>
 +
  <li>version 8.0</li>
 +
  <li>Added the functionality for a group to have hold capability.</li>
 +
</ul>
 +
<p><b>collmgr</b></p>
 +
<ul>
 +
  <li>Fixed bug introduced during hold that was only one collid into the GroupColl table.</li>
 +
  <li>After 5 sconds of waiting if dbexist is still there remove it and go on.</li>
 +
  <li>Add debug=env</li>
 +
</ul>
 +
<p><b>collmgr, collmgr.cfg, logout</b></p>
 +
<ul>
 +
  <li>Make $gReleaseUserHost quod.lib.umich.edu for us and 0 for partners.
 +
     Force $gLogin to dlxsadm on this host to support dlxsadm on production
 +
    host (collmgr must be in the ACL for that host to protect access to
 +
    collmgr to just those who can authenticate to a production host).  Add
 +
    color effects when running as dlxsadm.</li>
 +
 
 +
</ul>
-
    <h4>CGI/Middleware</h4>
+
===FindaidClass===
-
    <ul>
+
-
      <li> FindaidAppp.pm - Removed ValidityChecks setting of default value for browse. It is set when building the browse page when we know more about what is available instead of just selecting 'a'</li>
+
-
      <li>FindaidClass.pm - Added 'silent' optional parameter to ASSERT in dao resolution so an unresolvable dao does not prevent the entire page from rendering. Improved visibility of dao links and emit "[image not available]" for unresolved daos. Add 'silent' optional parameter to ASSERT so processing can continue but still give us an email warning. Move list of section heads that was hardcoded in FindaidClass::_initialize to findaidclass.cfg to make editing out those heads that are missing under sume EAD encoding practices.  Catch connect exception when doing idresolver calls. Fix FilterAllDaos_XML case where there is no href attribute to prevent infinite loop. </li>
 
-
    </ul>
+
<p><b>browse.xsl</b></p>
 +
<ul>
 +
  <li>Added subject browse and TagCloudFilter for subject browse</li>
 +
 
 +
</ul>
 +
<p><b>langmap.en.xml</b></p>
 +
<ul>
 +
  <li>Added items for subject browse and TagCloud item count  for subject browse</li>
 +
 
 +
</ul>
 +
<p><b>help/index.html</b></p>
 +
<ul>
 +
  <li>User now taken directly to relevant search page by FullTextAppXsltPIFiller::BuildHelpLink_XML.</li>
 +
 
 +
</ul>
 +
<p><b>help/bbag-holdings.html, help/bbag-intro.html, help/bbag-srch.html, help/newnav.html, help/res-intro.html, help/res-sort.html, help/srch-basic.html, help/srch-boolean.html, help/srch-intro.html, help/srch-tips.html, help/xc1res-intro.html, help/xc1srch-intro.html</b></p>
 +
<ul>
 +
  <li>Moved here from extraneous html/ subdir.</li> 
 +
</ul>
 +
<p><b>help/res-intro.html, help/res-sort.html, help/srch-basic.html, help/srch-boolean.html, help/srch-intro.html, help/srch-tips.html, help/xc1res-intro.html, help/xc1srch-intro.html</b></p>
 +
<ul>
 +
  <li>Renamed for consistency with textclass.</li>
 +
 
 +
</ul>
 +
<p><b>help/bbag-intro.html, help/bbag-srch.html, help/results-intro.html, help/results-sort.html, help/search-basic.html, help/search-boolean.html, help/search-intro.html, help/search-tips.html, help/xcresults-intro.html, help/xcsearch-intro.html, help/bbag-holdings.html</b></p>
 +
<ul>
 +
  <li>Files renamed for consistency with textclass; links updated.</li>
 +
  </ul>
 +
<p><b>dlxsclassglobals.xml, navheader.xsl</b></p>
 +
<ul>
 +
  <li>CacheWebPath</li>
 +
 
 +
</ul>
 +
<p><b>reslist.xsl</b></p>
 +
<ul>
 +
  <li>Added the sliceftr module, adding the results slices to the bottom of the page as in Text Class.</li>
 +
 
 +
</ul>
 +
<p><b>text.components.xsl</b></p>
 +
<ul>
 +
  <li>typo corrected: "Acquisition" now spelled right</li>
 +
 
 +
</ul>
 +
<p><b>FindaidClass/DemofaFC.pm</b></p>
 +
<ul>
 +
  <li>Improved comments and added back in commented out code</li>
 +
 
 +
</ul>
 +
<p><b>FindaidClass/BioghistfaFC.pm</b></p>
 +
<ul>
 +
  <li>Demo of using &lt;bioghist&gt;&lt;head&gt; elements to label bioghist section</li>
 +
 
 +
</ul>
 +
<p><b>FindaidAppXsltPIFiller.pm</b></p>
 +
<ul>
 +
  <li>Added sub TagLink_XML to override superclass and include Findaid class
 +
    specific region name "Subjects" . </li>
 +
 
 +
</ul>
 +
<p><b>findaidclass.cfg</b></p>
 +
<ul>
 +
  <li>Values used for context-sensitive search links.</li>
 +
 
 +
</ul>
 +
<p><b>findaidclass.cfg</b></p>
 +
<ul>
 +
  <li>$gHelpSubdir: more flexibility for location of help files.</li>
 +
 
 +
</ul>
 +
===Stats===
 +
<ul>
 +
<li>Only count hits with HTTP status 200.</li>
 +
<ul><li>stats_driver.pl</li></ul>
 +
</ul><ul>
 +
<li>Change to record stats by year/month rather than year/month/day, to reduce the number of rows in the database.</li>
 +
<ul><li>stats_driver.pl</li></ul>
 +
</ul>
 +
===SRU===
 +
    <ul>
 +
      <li>No changes.</li>
 +
    </ul>
 +
===BibClass===
 +
    <ul>
 +
      <li>No changes.</li>
 +
    </ul>
===XClass===
===XClass===
     <ul>
     <ul>
       <li>No changes.</li>
       <li>No changes.</li>
     </ul>
     </ul>
-
 
-
===METS Pageturner and Collection Builder===
 
-
    <ul>
 
-
      <li>Ongoing development work.</li>
 
-
    </ul>
 
-
 
-
[[#top|Top]]
 

Current revision

Main Page > Release Notes for Current DLXS Release

Contents

[edit] General Information Release_15

TextClass is substantially identical to release 14 except for enhancements and bug fixes as noted below. Note that searching for the string Release_15 will produce a list of changes to this wiki that are relevant to DLXS Release 15.

Highlights of release 15 include:

Release 15 is comprised of:

Additionally: Text Class PageViewer no longer supports Mr.SID images so if you are using Mr.SID they will have to be converted to JP2. Image Class still supports MrSID, though migration to JP2 is highly recommended.

[edit] Known Problems

  • None

[edit] Database Installation Notes

MySQL is the supported database type. In order to run DLXS you will need to have a MySQL server installed. Sample data is delivered in the form of a MySQL dump file which can be directly imported into a MySQL database. The database upgrade script (upgrade_7_8) operates only on a MySQL database. These issues are documented in detail in the installation instructions and the upgrade instructions.

[edit] New and Changed Functionality

[edit] XPAT

  • No changes in the original release.
  • There have been two XPAT-only releases (15a and 15b) bringing the version number to 5.3.7:
    • 64-bit inode support for large filesystems.
    • -r ROOT_PATH command-line option where ROOT_PATH is an absolute path to which all other paths are relative.
    • Coptic and Arabic Unicode blocks added.
    • Cyrillic and Devanagari blocks extended.

[edit] Lib

[edit] New and Changed Functionality

Customizable Fallback

Collections can now be configured to use any number of custom fallback levels between the standard group and class levels. This allows greater control and reduced code duplication when managing your user interface customizations. See the new "customfallbackwebdirs" Collection Manager field.

[edit] Changed Files

DlpsUtils.pm

  • Make no referring URL Assertion Failure Report not send email
  • Now log Assertion Failure Reports
  • If $keyValuePairs are not requested, an array is returned. Fixed bug that returned array in arbitrary order instead of in order they were listed in Collmgr.
  • Updated to display feedback form with captcha on AFR error page
  • Added noAssert option to MkdirPath() to prevent inf. loop
  • sub BuildClassCacheWebPath (for emitting in XML).
  • Added RemoveTrailingHalfEntities + RemoveLeadingHalfEntities; rewrote RemoveLeadingAndTrailingHalfTags to use both.
  • During fallback, check any dirs listed in the 'customfallbackwebdirs' filed in collmgr (after checking group dirs, but before checking class dirs).
  • Fallback: Grab values from LibGlobals for values that are undef or not passed in from app modules.

LibGlobals.cfg

  • Updated to read in the AFR error message from a (HTML) file
  • changed path to systemerrorfeedback.html file, adding f/feedback.
  • ScriptNames, used in search forms, now have vlaues defined here instead of in web/lib/dlxsglobals.xml.

DlpsUtils.pm, LibGlobals.cfg

  • rewrite reCAPTCHA code to use a global hash for pub/priv keys in LibGlobals and add access routines in DlpsUtils.pm

XsltPIFiller/FullTextAppXsltPIFiller.pm

  • added initialize and field for subclass gSortFields

BookBag.pm

  • Remove underscore from file extension for download file.

DbUtils.pm

  • Backticked a table names and column names in a bunch of places.

CollsInfo.pm, DLXSApp/FullTextApp.pm, DLXSClass/FullTextClass.pm, XsltPIFiller/FullTextAppXsltPIFiller.pm

  • Fix linking to be relative to preserve https

XsltPIFiller/FullTextAppXsltPIFiller.pm

  • fix linking to be relative to preserve https
  • BuildHelpLink_XML: more flexibility for location of help files.
  • Use fallback to find the appropriate help dir. Then use logic to find the best file within that dir.
  • BuildPdfLink_XML: fixed algorithm to find best help file in the fallback help dir.

ItemView.cfg, ItemView.pm, ItemViewApp.pm

  • Serving full item PDFs (if available in the repository).

Stats/Reports/COUNTER/ReportTools.pm

  • Display title ID if title name cannot be determined, rather than just skipping that title.

DLXSApp.pm, ItemAuth.pm, DLXSApp/FullTextApp.pm, DLXSClass/FullTextClass.pm, XsltPIFiller/FullTextAppXsltPIFiller.pm

  • Moved item-level auth checking into module ItemAuth.pm, for use in auxillary cgi scripts.

DLXSApp.pm, DLXSApp/FullTextApp.pm, DLXSClass/FullTextClass.pm, XsltPIFiller/FullTextAppXsltPIFiller.pm

  • Revert ItemAuth changes

DLXSApp.pm, DLXSApp/FullTextApp.pm

  • Re-virtualized ItemLevelRestrictionTestHook here.
  • Put sub ItemLevelRestrictionTestHook back here.

DLXSApp/FullTextApp.pm

  • Fixes in ItemLevelRestrictionTestHook.

ItemAuth.pm

  • TestItemLevelRestriction:: test whether the appObject is defined before calling methods on it; otherwise use provided default values.

Stats/DB.pm, Stats/MainPage.pm, Stats/Resource.pm, Stats/Reports/COUNTER/BR1.pm, Stats/Reports/COUNTER/BR2.pm, Stats/Reports/COUNTER/BR5.pm, Stats/Reports/COUNTER/DR1.pm, Stats/Tools/ResourceTools.pm, Stats/XML/BuildXML.pm

  • Changes to record stats by year/month now instead of year/month/day, to reduce the number of rows in the database.

XsltPIFiller.pm

  • Decode browse values as UTF-8 before they're written to the XML output (so multi-byte characters are represented correctly).
  • Checks whether the browse value is already unicode (uft-8 flag is set) before decode it as unicode; for some reason, for serialissue, the flag is already set in production, but not in development(?).
  • sub BuildScriptNames_XML

XsltPIFiller/FullTextAppXsltPIFiller.pm

  • sub BuildCacheWebPath. To emit the href to the cache in the XML, instead of forcing XSLT to munge it from the path on disk.

LibGlobals.cfg, XsltPIFiller.pm

  • Typo in gScriptNameFindaid.

CioFactory.pm, DlpsUtils.pm, GroupsInfo.pm

  • Examine AUTHZD_COLL for groupids, then populate authzd coll list with its member collids. (Allows Cory to only make one access control rule for large groups.)

DLXSApp.pm, DlpsUtils.pm, XsltPIFiller.pm

  • More generic handling of browse navigation --- UI is able to present non-[a-z] characters. Most of these are UTF8 characters; query parameters are now protected accordingly. Modified DlpsUtils::RemoveLeadingAndTrailingHalfEntities to ignore partial entity-like strings that have spaces in them.

XsltPIFiller/FullTextAppXsltPIFiller.pm

  • Emit 'crosscollection.search.title.str' (via langmap.en.xml) for TITLE_XML PI when xcollmode=colls to give title in <head> of page=home or page=browsecolls.

Stats/MainPage.pm

  • Don't hard-code years for custom report. Do from 2006 to year().

XsltPIFiller/FullTextAppXsltPIFiller.pm

  • Change 'amount' pulldown building to reflect values that are in the map starting at 5 in increments of 5 up to 120

ItemView.cfg, ItemView.pm, ItemViewApp.pm

  • changes to make pageview work like pageturner.

ItemView.pm

  • Using the collmgr configurable display sizes.

DLXSApp.pm, XsltPIFiller.pm

  • DLXSApp.pm - GetBrowseInfo: sort results of ItemBrowseCount scan so [a-z] are guaranteed to come first XsltPIFiller.pm - BuildBrowseNav_XML: more accurate calculation of initial single-letter browse list (avoiding conflicts between how MySQL and Perl see some unicode characters)

ItemView.pm

  • dynamic page config.

ItemView.pm

  • 1. changed quality from 85 to 100 so picture would be sharper. 2. Put in a check so that the defaultPage size is one available from the dynamically computed amounts.

DLXSApp/FullTextApp.pm

  • Different ways to sort idnos follr picklists; SPO (by default) will use index order, but the default will be to sort by idno.
  • Changed FullTextApp::HandlePicklistPage to use array of array refs instead of hash to maintain order and updated all calling code
  • Refactored and merged picklist logic with base class picklist logic
  • All SPO picklist customization using new Volume/Issue mode

DlpsUtils.pm, ItemAuth.pm, XsltPIFiller.pm, XsltPIFiller/FullTextAppXsltPIFiller.pm

  • New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)

DLXSApp.pm

  • Pass arguments that enable custom fallback functionality in DlpsUtils.pm.

LibGlobals.cfg

  • Put fallback variables here in case they aren't defined at the class level.

BrowseUpdate/FindaidBU.pm

  • Added ability to generate subject browse for Finding Aids

BrowseUpdate.pm, updatebrowsedb.pl, BrowseDoubleLayerNav.xsl

  • Browse lists are based on collection data, so values outside 'a'..'z' can now be found in browse lists.
  • Explicitly encode browse values as UTF-8 before writing them to the database tables.
  • UTF-8 values are transliterated (e.g. zó -> zo) to match MySQL query semantics; the original UTF-8 is presented in lists.
  • Punctuation in values is ignored when building counts ("A.B" is treated as "Ab").
  • Menu correctly handles when there are > 26 items in the navbar.
  • Browse update should be run against collections.

dlxsglobals.xml

  • ScriptNames now populated by a PI for greater application control (in this case, to substitute the Shibboleth script alias).
  • New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)

[edit] TextClass

[edit] New and Changed Functionality

Pageviewer

Pageviewer was changed to support the following functionalaties:

  • The algorithm used in Release 14 used discrete steps to determine the scaled size, Release 15 uses continuous scaling to create the image size.
  • Instead of using the + or - symbols to increase or decrease the size of the image and ocr, which only gave the user 3 size options ( small, medium, and large ), the user can now select a percent deviation from the original image size from which to view the image page or the ocr page. For JP2000 files, at startup the software will determine what sizes to make available to the user. A full range of sizes may not be available for every JP2000 page image. The sizes available depends on the image's resolution. The range available is 50% to 400%. This range is not configurable for JP2000 files. A test is made to determine if the image can scale to the appropriate the size. If it can, that scale is made available, if not that scale is not made available.
  • Pageviewer will no longer support Mr.SID images so if you are using Mr.SID they will have to be converted to jp2.
  • Pageviewer no longer uses a frameset for displaying PDF; the frm URL parameter is no longer generated, and is ignored if present.
  • The location of the page images have to be on the either on the server where pageviewer runs from or mounted on to that server. You can indicate the location of images in the hash %gMoutnPointMap in the ItemView.cfg.

The following files were changed to support this change:

  • t/text/clipviewer.xsl
  • t/text/htmlhead.xsl
  • t/text/langmap.en.xml
  • t/text/langmap.fr.xml
  • t/text/pageviewer.xsl
  • t/text/viewer.utils.xsl
  • t/text/viewer.xsl
  • lib/ItemView.cfg
  • lib/ItemView.pm
  • lib/ItemViewApp.pm

In the subclasses are, these files were changed:

  • a/acls/pageviewer.xsl
  • PVApp/EeboPVApp.pm
  • PageView/AclssuppPV.pm
  • PageView/CjsPV.pm
  • PageView/EccoPV.pm
  • PageView/MachynPV.pm

Picklist

Picklist has been modified to offer issue and volume views, along with the "classic mode" (i.e., pre-existing picklist view). By default, all code is evaluated in classic mode, meaning that picklists will behave as it did in release 14. See Picklist customization for serial articles for more information.

The following files were changed to support this change:

  • DlpsLocalUtils.pm
  • langmap.en.xml
  • picklist.xsl
  • picklistheader.xsl

There were many collection-specific changes. The broadest changes were accomplished by enabling the new picklist functionality in SpoCommonTC.pm and in turn subclassing that (instead of TextClass.pm) for collection-specific text classes. Additional customization was accomplished for each collection by modifying picklist.xsl, picklistheader.xsl, or langmapextra.xml in the respective web directory.

[edit] Changed Files

langmap.en.xml

  • added openurl link text

pageviewerheader.xsl

  • added class=title245 to div in itemcitation

textclass.css

  • added .title245 style to fix long titles that wrap and cut off pdf viewer navigation
  • Links to PDFs (if available).
    • picklistheader.xsl
    • textclass.css

navheader.xsl

  • Simplified help link; now uses whatever value is provided by the middleware.

help/help-readme.html

  • Describes a workflow and workfiles that do not exist.

help/bbag-holdings.html, help/bbag-intro.html, help/bbag-srch.html, help/history-intro.html, help/results-intro.html, help/results-sort.html, help/search-basic.html, help/search-bib.html, help/search-boolean.html, help/search-intro.html, help/search-proximity.html, help/search-sel-type.html, help/search-tips.html, help/search-ww.html, help/xcbbag-holdings.html, help/xcbbag-intro.html, help/xcbbag-search.html, help/xchistory-intro.html, help/xcresults-intro.html, help/xcresults-sort.html, help/xcsearch-basic.html, help/xcsearch-bib.html, help/xcsearch-boolean.html, help/xcsearch-intro.html, help/xcsearch-proximity.html, help/xcsearch-sel-type.html, help/xcsearch-tips.html, help/xcsearch-ww.html, help/css/help.css

  • Copyediting, took out references to UMDL.

tocheader.xsl

  • Don't add comma between multiple EDITORS after apply-templates, the comma is add ed in the template rule.

textclass.css

  • added style for tocdiv table to make it 100% due to a bug in IE8 that ignores the table width set in the table attribute

tocheader.xsl

  • $subjectinfo: also use @TYPE='keyword'.

htmlhead.xsl

  • changed the way title is handled for journals

navheader.xsl

  • call buildLoginLink factored out of web/t/text/navheader.xsl

clipviewer.xsl, jquery.ba-resize.js, pageviewer.xsl, pdf_framer.js, viewer.utils.xsl, viewer.xsl

  • Removed frm param and frameset option for PDF viewing; now use iframe with Javascript to calculate correct frame size.

footer.import.xsl

  • Added alt attribute to "Back to Top" link image.

header.xsl, search.xsl, ww.xsl

  • Renamed form method "GET" to "get".

text.components.xsl

  • Typo: $divLevel -> $divlevel

text.components.xsl

  • HEADER tmeplate: handle unexpected cases with <xsl:otherwise><xsl:apply-templates/></xsl:otherwise>.

textclass.css

  • added styles for new h1, h2, etc. output from t/text/text.components.xsl

resultsheader.xsl

  • More robust code changes to support mixed collections moved from Feminist Studies to DLXS system-wide
  • Fixes for Diderot so publication information field only shows up if any information; fix to base XSLT stylesheet since applies to all collections
    • resultsheader.xsl
    • searchheader.xsl

langmap.en.xml, picklist.xsl, picklistheader.xsl, resultsheader.xsl, searchheader.xsl

  • All SPO picklist customization using new Volume/Issue mode

browse.xsl

  • New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)

TextClass.pm

  • SerialArticleTocLinkHook: built link to view=toc for pageimage collections.

TextAppXsltPIFiller.pm

  • BuildItemLink_XML: handle case of serialarticle colls using pageimages.

DlpsLocalUtils.pm

  • CreatePicklist: don't link to text view if it's a serialarticle coll that uses pageimages.

textclass.cfg

  • fix linking to be relative to preserve https

textclass.cfg

  • $gHelpSubdir: more flexibility for location of help files.

TextClass.pm

  • Moved logic of ViewPDFLink_XML to TextAppXsltPIFiller.pm, as most of the time it is processing PIs.

TextAppXsltPIFiller.pm

  • ViewPDFLink_XML: now looks for PDFs in item obj dir, then serves them out of web cache.

TextClass.pm

  • Moved ViewPDFLink_XML back from TextAppXsltPIFiller.pm (caused more problems than it solved).

TextAppXsltPIFiller.pm

  • Moved ViewPDFLink_XML back to TextClass.pm (caused more problems than it solved).

TextClass.pm

  • Moved item-level auth checking into module ItemAuth.pm, for use in auxillary cgi scripts.

TextClass.pm

  • Calls to ViewPDFLink_XML now call BuildPODandDODLinks_XML.

DlpsLocalUtils.pm

  • Add call to BuildPODandDODLinks_XML.

textclass.cfg

  • Change 'amount' pulldown building to reflect values that are in the map starting at 5 in increments of 5 up to 120 -- replaces @proximityAmounts array

textclass.cfg

  • Set up a variable (which will be used in TextClass/SpoCommonTC.pm when commited) that uses custom SpoLocalUtils.pm instead of DlpsLocalUtils.pm for picklist processing.

textclass.cfg

  • Added .png to gEntityExtensionsToCheck.

TextClass/FsTC.pm

  • New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)

[edit] ImageClass

[edit] CGI/Middleware

Known Problems

  • None known so far.

Enhancements

  • Image Viewing
    • Each field value repetition is now wrapped in a DIV with class fldvalrep so that spacing between repetitions can be controlled (fieldvalues.xsl, css/imageclass.css)
    • Document domain setting is no longer set; it can be added in custom XSL (js/imageclass.js)
    • Added download link for current image size (entry_imagetools.xsl, langmap.en.xml, panzoom.xsl)
    • Feedback form now uses reCAPTCHA service (bbentry.xml, entry.xml)
    • Added "prep tables in use" indicator when using prep=1 option (htmlhead.xsl, langmap.en.xml, css/imageclass.css)
    • Improved page titles and meta information for key pages in Image Class with hopes of improving search engine recognition and simply making the pages more meaningful and therefore user friendly (entry.xml, entry.xsl, groups.xsl, htmlhead.xsl, index.xsl, panzoom.xsl, results.xsl, search.xsl).
    • Long titles can be truncated via Javascript (entry.xsl, panzoom.xsl, entry.xml, js/jquery.text-overflow.js).
    • ImageAppXsltPIFiller.pm
      • Added "urltext" option to idlinks and keylinks options for field value display, configurable in collmgr.
      • display order of browseoptions fields is now the same as listed in the browsefields collmgr field.
  • Portfolios
    • Track ExtendedSliceSize and warn user that their downloaded porfolio will not contain all items (bbexportprep.xsl, langmap.en.xml).
    • Better handling of IDs that have changed since being stored in a portfolio (ImageApp.pm)
    • Better cleanup of artifacts from downloaded portfolios (ImageApp.pm)
  • Searching/Browsing
    • Changes that support new searching options ("searchtypes" in Collection Manager) including starts with, ends with, and contains, exact, and support for term list in search form (browseoptions.xsl, index.xml, index.xsl, search.xsl, css/imageclass.css, js/imageclass.js).
    • Fields can now be weighted for relevance ranking. Configurable in Collection Manager.
    • Search result pages have a link reference to a MediaRSS feed (resultsdata.xsl).
    • Result pages should now print without losing any images (htmlhead.xsl, css/print.css)

[edit] Data Preparation

Enhancements

statsconfig.pl

  • This a new script that generates stats configuration resource definations for image class collections. These definitions are used by the stats system to know how to gather usage statistics.

[edit] OAI

[edit] New and Changed Functionality

You must create the following two tables oai_marc and oai_mods in additions to the oai and oaisets tables:

  CREATE TABLE `oai_marc` (
    id  varchar(150) NOT NULL default '',
    timestamp  timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
    marc21  mediumblob,
    PRIMARY KEY  (id),
    KEY timestamp (timestamp),
    KEY oai_time_id (timestamp,id));

  CREATE TABLE `oai_mods` (
    id` varchar(150) NOT NULL default '',
    timestamp  timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
    mods  mediumblob,
    PRIMARY KEY  (id),
    KEY timestamp (timestamp),
    KEY oai_time_id (timestamp,id));

We were finding that UMProvider was taking too long when responding to a request for marc and mods records, so we created these two tables to contain marc and mods records. In our nightly cron jobs that keep the oai tables current, we have all the marc and mods records placed in the oai table and also in one of these two tables depending on the format type of the record:

INSERT INTO oai_marc select id, times tamp, marc21 FROM oai WHERE marc21 is not null;

INSERT INTO oai_marc select id, times tamp, marc21 FROM oai WHERE marc21 is not null;

The data provider provides records from the oai table when a Dublin Core format type request comes in; from the oai_marc table when a marc format type request comes in; and, from oai_mods when a mods format request comes in.

[edit] Changed Files

provider/LoadDB.pl

  • Updated to trim set and id before storing record
  • Updated ConnectToDB to get database name from config xml
  • De-coupled from nameresolver so that it is optional to sync with nameresolver
  • new code for new tables oai_mods, and oai_marc

provider/GetNewCollections.pl

  • Fixed path for emailing report to look in subdir

provider/umprovider_flow_diagrams_and_examples.ppt

  • PowerPoint presentation for the workshop which includes example transformations and 3 flow charts

provider/ExtractHeaders.pl

  • Updated to get data dictionary from collmgr instead of constructing the path using the standard convention

provider/RunOaiConversion.pl

  • Updated call to LoadDB for DLPS classes

provider/exampleColls.xml

  • Updated to use sampleutf8_tc collection which is included in the DLXS release

provider/dlxs_to_oaidc_cron.pl

  • Cron job to include in DLXS 14 release which includes email addresses specified in oai.cfg

provider/dlps/text_ic_oai_cron.pl

  • Updated call to RunOaiTransformation

provider/dlps/modifiedDlpsColls.xml, provider/CollsAndTypesOfIDs.xls

  • Moved to dlps subdir

provider/dlps/modifiedSpoColls.xml

  • Moved to modified subdir

provider/dlps/RunDlpsOaiConversion.pl, provider/dlps/text_ic_oai_cron.pl

  • More specific version of old RunOaiConversion.pl script to be used for DLPS

provider/dlps/RunDlpsOaiConversion.pl

  • Had to move back to bin/o/oai/provider because of paths for scripts
  • File for running DLPS specific text class to oai_dc transformation. This is provided as an example for release 14 but most people can probably more easily modify RunOaiConversion.pl

provider/ExtractHeaders.pl

  • Updated to take xpat host as param

provider/GenerateReport.pl, provider/RunDlpsOaiConversion.pl, provider/RunOaiConversion.pl

  • Updated help option and call to ExtractHeaders
  • Updated path to colls.xml files

provider/GenerateReport.pl

  • Updated call to get DLXSROOT environment variable

provider/oai_update_history_text.txt

  • Example file for execution history

provider/exampleColls.xml

  • Updated with instructions about the possible attributes for each collection

provider/GetNewCollections.pl

  • Updated logic to send report with or without CC on email

provider/dlps/NewOAICollection.svg, provider/dlps/RunOaiConversion.svg, provider/dlps/UMProviderFlow.svg

  • SVG (Omnigraffle, Visio, gliffy) editable formats of the flow diagrams for UMProvider. The JPEG (uneditable) versions of these files are $DLXSROOT/bin/o/oai/provider.

ConfirmPublicDomain.pl

  • new set name, minor changes

filterMarc21.xsl

  • added new fields

provider/dlps/text_ic_oai_cron.pl

  • be more exact in the path.

provider/oai_update.pl

  • new code for new tables oai_marc and oai_mods
  • drop tables oai_copy and oaisets_copy in case connect error left them behind on previous run.

moveOaiTables.pl

  • new code for new tables oai_mods and oai_marc
  • code for the oai_marc and oai_mods tables.

provider/dlps/modifiedDlpsColls.xml, provider/dlps/modifiedSpoColls.xml, provider/dlps/oai_update_history_dlps.txt, provider/dlps/oai_update_history_spo.txt

  • these are changed by the cron jobs and should not be controlled.

provider/oai_new_coll_history.txt, provider/oai_update_history_text.txt

  • they are dynamic. no need for cvs control.

provider/oai_update.pl

  • insert deleted records into marc and mods table.

ExtractIdno.pl

  • new, for processing non oai items into nameresolver.

provider/GetNewCollections.pl, provider/dlxs_to_oaidc_cron.pl, provider/dlps/text_ic_oai_cron.pl

  • removed the Server from mail module so that email did not get sent to the server.

provider/textClassToDc.xsl

  • changes to support ca, icp, and tap.
  • added special condition for jsas spo collection.

oai.cfg

  • Added to request email addresses for reports
  • Updated instructions for email addresses
  • change question wording

UMProvider.pm

  • fix bug in GetRecord for bad ID values
  • minor bug in opt. SetSetsTableName() call
  • added support for deleting records at the metadata level
  • new tables oai_marc and oai_mods to optimize db.
  • added support for optional about container

oai

  • support YYYY-MM-DD request for ListRecords and ListIdentifiers.

[edit] IdResolver

  • added bin/n/nameresolver
    • cvstag.idresolver
  • new error message when nameresolver can't find an ID.
    • IDResolver.pm

[edit] Collmgr

Supports database version 8.0 for DLXS release 15.

collmgr-fields.html

  • Added info about recordcount and mediacount
  • Changed documentation for browsefields to include Findaid Class subject searching and to document that first field on browsefields list is used for default browse page in Text and Findaid Class
  • Documented field_rel_weight for relevance ranking
  • Corrected description of pageviewhost based on the changes to make pageview work more like pageturner.
  • More documentation for defatulpagesize.
  • New field for the image sizes to display.
  • Update secondarytitle documenation. This field only implemented in bibclass.
  • Updated collmgr-fields.html (collmgr documentation) for new field "quickbrowse"
  • New collmgr field to disable quickbrowse in dynamic browse page; fixed an authorization issue (related to reusing AUTHZD environment variable), so now picklists conditionally show PDF link; some SPO picklist customization (to work with PDF links)
  • Added customfallbackwebdirs.

addcoll.tpl, addfields.tpl, addgroup.tpl, badidwarning.tpl, checkinconfirm.tpl, checkingroupwarning.tpl, checkinwarning.tpl, checkoutlist.tpl, collmgr-dlxsadm.css, collmgr-user.css, collmgr.css, collmgrdown.tpl, contdeletefields.tpl, deletefields.tpl, displayclassesforrelease.tpl, displayclassselection.tpl, edit.fs.tpl, insertcollidwarning.tpl, insertwarning.tpl, login.tpl, mainmenu.tpl, removeconfirm.tpl, selectionwarning.tpl, updatecoll.tpl, updategroup.tpl, viewlist.tpl, viewreadonlycoll.tpl, viewreadonlylist.tpl

  • Make $gReleaseUserHost quod.lib.umich.edu for us and 0 for partners. Force $gLogin to dlxsadm on this host to support dlxsadm on production host (collmgr must be in the ACL for that host to protect access to collmgr to just those who can authenticate to a production host). Add color effects when running as dlxsadm.

collmgr.cfg

  • version 8.0
  • Added the functionality for a group to have hold capability.

collmgr

  • Fixed bug introduced during hold that was only one collid into the GroupColl table.
  • After 5 sconds of waiting if dbexist is still there remove it and go on.
  • Add debug=env

collmgr, collmgr.cfg, logout

  • Make $gReleaseUserHost quod.lib.umich.edu for us and 0 for partners. Force $gLogin to dlxsadm on this host to support dlxsadm on production host (collmgr must be in the ACL for that host to protect access to collmgr to just those who can authenticate to a production host). Add color effects when running as dlxsadm.

[edit] FindaidClass

browse.xsl

  • Added subject browse and TagCloudFilter for subject browse

langmap.en.xml

  • Added items for subject browse and TagCloud item count for subject browse

help/index.html

  • User now taken directly to relevant search page by FullTextAppXsltPIFiller::BuildHelpLink_XML.

help/bbag-holdings.html, help/bbag-intro.html, help/bbag-srch.html, help/newnav.html, help/res-intro.html, help/res-sort.html, help/srch-basic.html, help/srch-boolean.html, help/srch-intro.html, help/srch-tips.html, help/xc1res-intro.html, help/xc1srch-intro.html

  • Moved here from extraneous html/ subdir.

help/res-intro.html, help/res-sort.html, help/srch-basic.html, help/srch-boolean.html, help/srch-intro.html, help/srch-tips.html, help/xc1res-intro.html, help/xc1srch-intro.html

  • Renamed for consistency with textclass.

help/bbag-intro.html, help/bbag-srch.html, help/results-intro.html, help/results-sort.html, help/search-basic.html, help/search-boolean.html, help/search-intro.html, help/search-tips.html, help/xcresults-intro.html, help/xcsearch-intro.html, help/bbag-holdings.html

  • Files renamed for consistency with textclass; links updated.

dlxsclassglobals.xml, navheader.xsl

  • CacheWebPath

reslist.xsl

  • Added the sliceftr module, adding the results slices to the bottom of the page as in Text Class.

text.components.xsl

  • typo corrected: "Acquisition" now spelled right

FindaidClass/DemofaFC.pm

  • Improved comments and added back in commented out code

FindaidClass/BioghistfaFC.pm

  • Demo of using <bioghist><head> elements to label bioghist section

FindaidAppXsltPIFiller.pm

  • Added sub TagLink_XML to override superclass and include Findaid class specific region name "Subjects" .

findaidclass.cfg

  • Values used for context-sensitive search links.

findaidclass.cfg

  • $gHelpSubdir: more flexibility for location of help files.

[edit] Stats

  • Only count hits with HTTP status 200.
    • stats_driver.pl
  • Change to record stats by year/month rather than year/month/day, to reduce the number of rows in the database.
    • stats_driver.pl

[edit] SRU

  • No changes.

[edit] BibClass

  • No changes.

[edit] XClass

  • No changes.
Personal tools