DLXS Release Notes
DLXS Release 8 - 22 Mar 2002
General Information
This is an interim release of DLXS middleware.
DLXS Release 8 is comprised of TextClass version 2.5.0, BibClass version
2.1.6, FindingAids version 2.0.3, ImageClass version 2.3.1, Broker version 1.1.2, Collmgr version 1.1.0, mrsid_retrieve version 1.3.1, tif2web version 1.0.0, dlxsd version 1.0.0 and XPAT version 5.2.3. In particular, dlxsd (the remote daemon), mrsid_retrieve and tif2web are first-time deliverables in this release.
Release 8 introduces a new architecture incorporating an Application Object which
encapsulates the mainline code from a given class of middleware (text-idx, image-idx, bib-idx) and abstracts it into a Perl class that can be instantiated and manipulated as an object. The main program is reduced to just a few lines. The Application Object's class can be subclassed to change functionality in a manner similar to the subclasses of the TextClass collection object base class. In addition, a single CGI program can instantiate multiple application objects (from different middleware classes) and combine their functionality to produce "cross-class" applications. We expect to demonstrate such functionality in an upcoming release.
Release 8 has a new top-level directory structure "misc/{db,c/class/maps}" that replaces obj/c/class/lib/{db,maps}.
XPAT version 5.2.3
Lib version 2.4.7
New and Changed Functionality
- BookBag.cfg
- Install functions + change for $gReleaseUser to dlxsadm
- CioFactory.pm
- Lib changes supporting arbitrary databases.
- Install functions + change for $gReleaseUser to dlxsadm
- Do not redirect ot an nonexistend URL
during reauth if the installed middleware was configured
without a login URL such as at a site without an auth
system
- added debugging for database user name
- changed USERID to REMOTE_USER
- A problem in the Reauthenticate routine
was corrected. In situations where reauthentication
was necessary, the cgi ended up redirecting to itself
rather than to the login screen. This resulted in
an endless loop that timed out before too long.
- CollsInfo.pm
- Lib changes supporting arbitrary databases.
- changes for subclass directories
- DLXSApp.pm
- cdrom version number variable added
- rename $cgi->Dump() to $cgi->as_string()
an alias for Dump. Dump is causing repeated problems
not being recognized due to autoloading and exporT
AS "Dump" instead of "dump" I guess.
- DbUtils.pm
- added debugging for DBI_Connect
- DevUtils.pm
- get collections from DEV_COLL and AUTHZD_COLL
only when in development
- DlpsSession.cfg, DlpsSession.pm
- Install functions + change for $gReleaseUser
to dlxsadm
- Added "empty" as an option to the new
method as well as a method to simply attach a hash
reference to an empty DlpsSession object's persistent
data.
- DlpsUtils.pm
- Installation instrumentation changes
- Fix HighlightHit() setlocale logic
to be optional
- Allow 'host' to be 'localhost' in SetLocalOrRemoteMode()
giving a local connection.
- Remove quotes and regexp metachars
in CleanCgiParameters() and in pat50TruncationHandler()
- Added "force" to CGI call in BuildPullDown
so that "default" value would be the selected option.
- changed USERID to REMOTE_USER
- changes for subclass directories, Integrate ObjectFactory
- GroupsInfo.pm
- Lib changes supporting arbitrary databases
- LibGlobals.cfg
- new connect string for CSV = qq{DBI:CSV:f_dir=$CSV_filedir;binary=0;csv_sep_char=\t;csv_eol=\n;csv_quote_char=;
- Install functions + change for $gReleaseUser to dlxsadm
- login url is query_null for install.
- assign MySQL_adm_username directly to gReleaseUser
- ProcIns.pm
- Fixed ProcIns ProcessPIs method typo from previous change (eliminating &`, etc.)
- Change to better handle regular expression in ProcessPIs.
- QueryFactory.pm
- Remove quotes and regexp metachars in CleanCgiParameters() and in pat50TruncationHandler()
- XPat.pm
- Added better debug msg for xpat error return string <error></>
Bugs Fixed
- 130: Investigate and Implement multi-page PDFs
- 301: installation script for DLXS
- 344: Allow AddPI to refer to a method as well as a subroutine
- 351: DlpsUtils::CleanCgiParameters deletes params with value 0
- 477: Architectural change to support an "Application Object"
- 483: Word Index page gets funcky when narrowed
- 493: Add daemon code to CVS, middleware tree, and release process
- 508: Modify DLXS session functionality to support central repository
Text Class version 2.5.0
New and Changed Functionality
bin/t/text
- TextClass subclass modules have moved to cgi/t/text/TextClass
- Pageviewer
- Much work done in pageviewer: Use of
c42pdf for tif to pdf conversion. Use of newer version
of tif2gif. Syntax in command parameters for new xpatviewd
daemon using "verbs" (that in xpat-5.2.4) JavaScript
in page navigation frame to not always resubmit entire
frameset and its multiple cgi calls. "Chunking" of
pdfs, handling of "ready made pdfs" Minor typos in
CmeTC. Minor typos in TextClass and proper ordering
of two parameters in the FilterLel3and4... method.
- DlpsLocalUtils.pm
- Changed gHtmlTemplates to be fully
qualified with TCGlobals package name to fix bug with
checking of idno multiple matches.
- PVApp.pm
- Add DLXSROOT to baseObjDir in ServePageForIdno
- test/u/uniqname/gifcvtdir not needed
on remote machines
- New subroutine CreatePageViewObject()
to allow subclassing of the PageView object (pvo)
- Change to CreateMainFrameSrc to properly
handle text view (pageviewer runs targeted to _top,
which in turn calls text-idx in main frame).
- Fixed handling of gif image for text
view in method for GOTO_GIF PI handling.
- Fixed ValidityChecks so that incoming
cc is used if there is one.
- PVApp, WWApp, text-idx ww2-idx pageviewer-idx
uses new path syntax from DlpsUtils
- Integrate ObjectFactory
- PageView.cfg
- Install functions + change for $gReleaseUser
to dlxsadm
- Separate password for PageView so different
database type can be configured at install time e.g.
CSV for collection data abd MySQL for PageView table.
- Chnage all references in TextClassUtils
of the genre db field to singular.
- Changes to accommodate tif2web and
better syntax for xpatviewd daemon.
- PageView.pm
- FindHostName changes to Find_HTTP_HostName
- Change in maximum number for pdf chunking.
- Separate password for PageView so different
database type can be configured at install time e.g.
CSV for collection data abd MySQL for PageView table.
- Call to create destination directory
for local tif2pdf.
- remove superfluous require PageView.cfg
- importpageviewdata.pl
- New in Release 8
- General utility for copying page-level
metadata stored in legacy pageview.dat files into the
database store used by Text Class
- TextApp.pm
- Changed gTextClassCgi to gTextClassCgiRoot
in CheckIdMatches.
- handle tcumodule subclasses of TextClassUtils
object
- FindHostName call instead Find_HTTP_HostName
- Install functions + change for $gReleaseUser
to dlxsadm
- Install functions + change for $gReleaseUser
to dlxsadm
- Fixed GetItemEncodingLevel to ASSERT
if idno is not defined and changed calls to it to
supply an idno, gotten elsewhere; e.g., from a divhead
that is being filtered in a reslist. The bug was in
the case of searches that had no idno in the CGI object;
i.e., a general search.
- Integrate ObjectFactory
- TextClass.pm
- Lib changes supporting arbitrary databases
- Added $gRankFilePath and read 'rankfile'
path frorm db. FIxes broken moa sorting.
- Change firstpublished to firstpublishedstart
firstpublishedend and firstpublishedinc
- Type in call to GetItemEncodingLevel.
- TextClassUtils.pm
- Links to homesite do not use userpath
in development.
- Chnage all references in TextClassUtils
of the genre db field to singular.
- Added userpath to GetCollFilePath method.
- WWApp.pm
- ValidityChecks in WWApp to add cc.
- Fix missing sid on quicklink found
by Sakaama
- Integrate ObjectFactory
Integrate ObjectFactory
- pageviewer-idx
- Addition of CioFactory in pageviewer-idx and ww2-idx.
- Lib changes supporting arbitrary databases.
- changed #!/l/local/bin/perl to #!../../../bin/symlinks/perl
to facilitate installation
- Installation instrumentation changes
- New subroutine CreatePVApp() to allow
subclassing
- Much work done in pageviewer: Use of
c42pdf for tif to pdf conversion. Use of newer version
of tif2gif. Syntax in command parameters for new xpatviewd
daemon using "verbs" (that in xpat-5.2.4) JavaScript
in page navigation frame to not always resubmit entire
frameset and its multiple cgi calls. "Chunking" of
pdfs, handling of "ready made pdfs" Minor typos in
CmeTC. Minor typos in TextClass and proper ordering
of two parameters in the FilterLel3and4... method.
- PVApp, WWApp, text-idx ww2-idx pageviewer-idx
uses new path syntax from DlpsUtils
- Integrate ObjectFactory
- text-idx
- Lib changes supporting arbitrary databases.
- changed #!/l/local/bin/perl to #!../../../bin/symlinks/perl to facilitate installation
- handle appmodule subclasses of TextApp
object
- PVApp, WWApp, text-idx ww2-idx pageviewer-idx
uses new path syntax from DlpsUtils
- Integrate ObjectFactory
- textclass.cfg
- Links to homesite do not use userpath
in development. Added $gDevelopmentHost to TCGlobals
package (textclass.cfg)
- obj -> misc directory structure change
- Added $gRankFilePath
- Install functions + change for $gReleaseUser to dlxsadm
- ww2-idx
- Addition of CioFactory in pageviewer-idx and ww2-idx. Lib changes supporting arbitrary databases.
changed #!/l/local/bin/perl to #!../../../bin/symlinks/perl to facilitate installation.
Installation instrumentation changes. Integrate ObjectFactory
web/t/text
- bibext.tpl
- Missing <input type=prox,citation,boolean
in all extended forms>
- booleanext.tpl
- Missing <input type=prox,citation,boolean
in all extended forms>
- header.tpl
- minor changes to the css file for nav
colors, and removed footer nav from header.tpl
- pageviewer.frameset.tpl,pageviewer.nav.tpl,pageviewer.pagenav.tpl
- Change of template for page navigation
in pageviewer. Extra JavaScript to handle the updating
of frames, rather than the re-submission of the entire
frameset and its cgi's, if full re-submission is not
necessary. Pdf page chunking also now incorporated. Changed orientation of frameset to
horizontal
- proximityext.tpl
- Missing <input type=prox,citation,boolean
in all extended forms>
- search.js
- Making sure that the "genre" javascript
array and genre pulldown are built with the singular
genre and not plural (part of a coll db column name
change back to singular).
- textclass.css
- minor changes to the css file for nav
colors, and removed footer nav from header.tpl
Fixed Bugs
Bib Class version 2.1.6
New and Changed Functionality
- BibApp.pm
- Lib changes supporting arbitrary databases.
- removed locale == 'c' and now handle
appmodule subclasses of BibApp object
- Fixed tpl parameter handling so searches
can use custom pages as wel as just when we are serving
a page
- Change FindHostName() to Find_HTTP_HostName() for remote connect handling
- Install functions + change for $gReleaseUser to dlxsadm
- Long display is now a separete html page for fgdc data.
- bib-idx
- fix app object creation for single
class mode
- handle
appmodule subclasses of BibApp object. Integrate ObjectFactory
- BibApp uses new path syntax from DlpsUtils
- bibclass.cfg
- Install functions + change for $gReleaseUser
to dlxsadm
- default.functions.cfg
- fixed <W> problems in short and long
filters
Image Class version 2.3.1
New and Changed Functionality
- Added support for CollMgr (collection manager).
- Modified to use LibGlobals.pm.
- Changed perl hash bangs and MrSID retrieve path to reference symlinks in /bin/symlink.
- Rearranged code for compliance as DLXS application object. This included moving globals to the ICGlobals name space.
- Added cgi parameter adjustment for situations where there is a cc but no c parameter. c is set to equal cc.
- Modified to work with ObjectFactory.
- Corrected the problem where an attempt was made to connect to the BookBagDB even if $gBookBagToggle was set to "off".
- Changed to Find_HTTP_Host for proper support of localhost in collmgr. Fixed bug in MySQL_username.
- Modified makeCollectionmaps-idx so that it uses only collids from collmgr rows that are appropriate to the situation (collmgr-release, production, or userid)
- Modified middleware to support automated installation.
- All uses of the USERID environment variable were changed to REMOTE_USER since USERID has been depricated.
- Corrections and enhancements were made to the contextual instructions in %gViewInstruct and %gWords of imageclass.cfg.
- Added support for AUTHZD_COLL file for command link collection authorization.
- Added auto-support of g=all for getthumbnail-idx which was failing without it.
- Corrected bug where image would fail to display if session was new. It worked when using an old session because the group parameter would get picked up from the session.
- If mrsid_retrieve is not found, Sidget2 module now reports this as a debug message. It does not bail, because there are some situations where it is OK that mrsid_retrieve is not available. getimage-idx now uses group "all" if it is not a cross collection search. This corrects a problem where an inappropropriate group was being used when a collection specific search was initiated from a non-all group selection page.
- Corrected the problem where the cross collection search form was not displaying a collection's searchable fields in the case where a single collection was selected and the dfltsrchflds collmgr entry was "default".
- Links to getthumbnail-idx were getting built without a session id. This is now corrected.
- Fixed problem where fallback was not working for "viewtabs" graphics in the sense that the middleware was not checking for the presense of collection specific files.
- Corrected a problem where bbentry.tpl and entry.tpl templates lacked quote marks around an attribute value for a PI. In bbentry, this caused the graphics for panning and zooming to not display properly.
Fixed Bugs
- 345 v2 collection selection
- 347 v2 new image controls and quality parameters
- 348 v2 personal collection management tools
- 349 v2 login interface
- 350 v2 results with full record
- 388 v2 independent sid serving
- 396 v2: problem with quotes in alt tags for images
- 397 v2: migrate to multiregion
- 410 v2: handling of help email
- 411 v2: make sure that null q2 with no q1 still works
- 412 v2: migrate to sgml without line breaks
- 413 v2: thumbfull results divs not display right in netscape agitator
- 415 v2: sids displayed in open portfolio window
- 417 v2: ImageClassUtils::insertCollName should use colldb for collname
- 418 v2: ImageClassUtils::thumbrecordfilt should use colldb briefcollname
- 421 v2: meta categs other than dublin core (search forms and sort menu)
- 422 v2: remove old access control mechanism
- 426 v2: temp cgi dir must be configurable
- 446 v2: id resolver functionality
- 454 v2: add search term highlighting in results
- 456 v2: add slideshow to entry view, and cgi memory for the last view
- 459 v2: css/template cleanup
- 460 v2: move interface english from cgi to configurable place
- 462 v2: makeCollectionmaps needs updating
- 463 v2: sorting broken
- 464 v2: support for version 3 browsers
- 465 v2: better feedback for zero results searches
- 486 v2:need to use web path in groups db
- 490 v2: hide field display based on value (IMLS)
- 512 v2: check urls for backward compatability
- 514 v2: related views not displaying in ie os x, at least
- 515 v2: should image size defaults be in colldb?
- 518 v2:implement new collection info template
- 520 v2:Include thumb image in record description table in full record resu
- 521 v2:create template for no results page
- 522 v2: makeColls can't move new .pm in to place
- 532 v2: unnecessary step in choosing a collection ?
- 533 v2: unnecessary steps in choosing a collection (?)
- 534 v2: minimal description needed on page with full image
- 535 v2: "i" buttons not intuitive for searching
- 536 v2: delete portfolio button missing in netscape
- 537 v2: delete portfolio button missing in netscape
- 538 v2: portfolio addition interface lacks radio button
- 551 v2: no horizontal scroll bar in entry view
- 554 v2: image structures need some flexibility
- 563 v2: xcoll reslist results view needs collname in records
- 564 v2: slideshow results view needs redirect from cgi for backward compat
- 565 v2: record display after sorting displays wrong record.
- 566 v2: contact colldb collname change
- 570 v2: should we add group descriptions to groups.tpl?
- 580 v.2: APIS 'descriptive info' links could be explained more fully.
- 586 v2: add colldb config of sid nlevel range
- 657 v2: search form clear button doesn't work for revised searches
- 679 IMLS: Correct header display when using "select groups" link to return
- 681 IMLS: independent selection of display fields for each view
- 682 IMLS: display collection db name for each view
- 687 IMLS: bug in access point drop-down menu
- 732 collection names should be links in group list
- 739 is "images with full record" an appropriate designation
Known Problems
- Image Class does not work properly when using MySQL for the session database. CSV is therefore preferred. Since the session database is configured in Lib (i.e., globally for all of DLXS), CSV must be used for all Classes if Image Class is to be used. The installer will ask, "Select the session datastore type," which should be answered "CSV" if Image Class is to be used. The configuration can be changed post-install by editing the value of $gSessDatabaseSelector in /DLXSROOT/lib/DlpsSession.cfg.
- The Makefiles for building Image Class XPAT indexes allocate 384 MB to
the xpatbld process. If the memory allocation fails, the allocation
should be lowered using the following guideline:
Memory allocation for xpatbld (-m 384m) should be no more than 3/4
physical memory. And, there is no need for it to be more than twice
thesize of the .sgm file.
Finding Aids version 2.0.1
Broker version 1.1.2
- This release of broker uses the bib collections maintained by Collmgr, rather than a copy of these collections.
- Sets are created based on groups that have the OAI parameter set to Y or y. Sets are also composed of the specific collections that make up these groups.
- Added installation parameters to make Broker easier to setup.
- Complete Latin-1 Unicode support was added, and a couple of other characters.
Collmgr version 1.0.0
- This is the initial release of Collmgr.
- Collmgr is responsible for maintaining collection and group information for the three DLXS classes. It interface to either a MySQL database or a CSV database, and maintains collection/group data there.
- Collmgr works kind of like a configuration management system, where users login and check out collections/groups, make changes to them, test these changes and then checkin their changes.
- Collmgr can also perform specific administrative functions, like adding and deleting collection/group fields to the database, and releasing the checked in collections/groups to production.
Finding Aids version 2.0.3
- No significant changes from Release 7