SOAR_Manakin - SOAR Home

advertisement
BUILDING NEW INTERFACES FOR
SHOCKER OPEN ACCESS REPOSITORY
Sai Deng, Wichita State University Libraries
KLA-CULS Fall Conference 2010
SOAR

Manakin
interface @
WSU
Libraries
CUSTOMIZATIONS MADE











Header: Institution logo and banner
Footer: Text, links
Pages: Color scheme
Messages: Changed headings, news/messages
Navigation bar: Added “Share” section and “Information” Section
Static pages: Added “Help” files
Record view and bitstream display: Changed records summary
view label and bitstream link styles; changed “View” to
“View/Download” for bitstreams; switched bitstream label and field
data display order.
Structural changes: Disabled top left “login” button and “Search”
section on top of “Communities” in homepage
Font: Disabled font-sizing mechanism originally included
Additional aspects: Audio-visual streaming module, document
viewer, image zoomer (from @mire)…
Also experimented with community collapsing and expanding list,
themes for different communities and image collections. Disabled
these for the final interface due to various reasons.
TAKE A
SECOND
LOOK AT
THE
INTERFACE
ds-header
ds-div-head
ds-trail
content
sidebar
file_news_div_news
ds-share-option
ds-option-set
ds-paragrah
ds-search-option
aspect_artifactbrowser_Navigation_list_browse
ds-div-head
ds-option-set-head
Understand
page
structures
by looking
at element
ids and CSS
classes.
aspect_artifactbrowser_CommunityBrowser_div_comunity-browser
aspect_artifactbrowser_Navigation
_list_account_browse
ds-information-option
ds-footer
CREATE THE MANAKIN INTERFACE

Step 1: Find some documentations and presentations and
understand what Manakin is

Some resources to look at:









Some Manakin instances:






DSpace System Documentation: Manakin [XMLUI] Configuration and Customization
http://ir.uz.ac.zw/dspace/ch07.html
DSpace XMLUI-Manakin: https://wiki.duraspace.org/display/DSPACE/Manakin
NIS Camp: Developing Interfaces and Interactivity for DSpace with Manakin
http://nitlecamp.pbworks.com/f/manakin-workshop-slides.pdf
TDL training document: http://scott.phillips.name/wp-content/uploads/2009/05/tdlmanakin-training.pdf
Donohue, Tim. Making DSpace XMLUI Your Own
http://www.slideshare.net/tdonohue/making-dspace-xmlui-your-own
Gibson, Hilton. Asset Presentation http://ir.sun.ac.za/wiki/index.php/Asset_Presentation
Phillips, Scott. Manakin Developer's Guide.
http://drcdev.ohiolink.edu/handle/123456789/28
Texas A&M Repository http://repository.tamu.edu/
The Geologic Atlas of the United States http://repository.tamu.edu/handle/1969.1/2490
IDEALS @ UIUC https://www.ideals.illinois.edu/
ResearchSpace@Auckland http://researchspace.auckland.ac.nz/
Search “Who’s Using DSpace” and select “Manakin Themes” http://www.dspace.org/
Place to look for help:

DSpace community: DSpace Tech-list
WHAT IS MANAKIN?





XML-based DSpace user interface
Modular interface layer
Customizable on community, collection and item level
Built by Apache cocoon framework
Cocoon Pipeline model
(Figure from Manakin: A New Face for DSpace at:
http://www.dlib.org/dlib/november07/phillips/11phillips.html)
SOME MANAKIN CONCEPTS


Cocoon: a web development framework built around the concept of
pipeline, separation of concerns and a component-based architecture.
Sitemap: a set of XML files that configures the cocoon components.
 Components: generators, transformers, serializers, matchers,
selectors, actions, readers
 Pipeline defines components arrangement

Aspect: provides a set of coupled features for the system.

Theme: stylizes the content generated by Manakin.

DRI (Digital Repository Interface): schema governing the structure of
Manakin pages encoded in xml; has three top level elements: <meta>,
<body>, <options> contained inside <document>.

Aspect chain generates DRI document, theme stylizes the DRI document
and produces XHTML for display.

Concept definitions from “Manakin: Developer’s Guide” .
MANAKIN COMPONENT ARCHITECTURE/TIERS

Java/Cocoon development Tier


XML/XSL Theme Tier


Add or modify themes (structural changes)
HTML/CSS style Tier


Add or modify aspects (features)
Add or Modify themes (CSS changes)
Read “Manakin: Developer’s Guide” for details.
CREATE THE MANAKIN INTERFACE

Step 2: Navigate the file directories, locate the theme
templates and get to know how to make changes

Where are the theme templates?
(In Source version): [dspace-source]/dspace-xmlui/dspace-xmluiwebapp/src/main/webapp/themes
 (In Release version, after run a maven build): [dspacesource]/dspace/target/dspace-1.6.2-build.dir/webapps/xmlui/themes/


At WSU Libraries:







DSpace system upgrade from 1.4.2 to 1.6.2 (1.5 only installed in a
test server);
Installed release version;
Source directory: [dspace-source]=/usr/local/src/dspace-1.6.2release
Running directory: [dspace]=/data/dspace
Where did we find the theme templates the first time:
data/dspace/webapps/xmlui/themes (in running DSpace)
Where did we copy the templates to: [dspacesource]/dspace/modules/xmlui/src/main/webapp/themes/
Theme customization needs to be done in the source directory.
XMLUI THEME OVERLAY
(From Donohue, Tim. Making DSpace XMLUI Your Own.
Available at http://www.slideshare.net/tdonohue/making-dspace-xmlui-your-own)
THEMES FILE STRUCTURE (@WSU L
IBRARIES)
Themes
themes.xmap
dri2xhtml.xsl
General-Handler.xsl
DIM-Handler.xsl
dri2xhtml
wsu/
localtheme
MODS-Handler.xsl
QDC-Handler.xsl
Reference
css
lib
structural.xsl
Kubrick
soarlogo.jpg
soarfooter.jpg
…
images
wsu/
localtheme
quickguide.htm
help.htm
…
static
lib
……
sitemap.xmap
wsu.xsl
images
…
sitemap.xmap
wsu.xsl
* wsu theme is based on Kubrick theme
HOW DOES THE THEME FIT INTO A BIGGER
PICTURE?


DRI to XHTML
Five steps in
processing aspect
content:





Generate the DRI
page (by aspects)
Add page metadata
Transform to XHTML
Localize the page
Serialize to the
browser
(Figure from TDL Manakin Training)
THEME SITEMAP

Configures cocoon components.
/themes/Reference/sitemap.xmap (Reference
theme sitemap)
 /themes/Kubrick/sitemap.xmap (Kubrick theme
sitemap)
 /themes/wsu/sitemap.xmap (Local theme
sitemap)


/themes/themes.xmap
General sitemap
ThemeMatcher
 If matcher fails, default theme will be applied.

XSLT FILES
Convert DRI to XHTML.
 /themes/dri2xhtml.xsl



/themes/dri2xhtml/structural.xsl


Bitstream display, file information
/themes/dri2xhtml/MODS-Handler.xsl


Items, collections, communities display
/themes/dri2xhtml/General-Handler.xsl


Structural components of a theme
/themes/dri2xhtml/DIM-Handler.xsl


Import other xsl files
MODS file
/themes/dri2xhtml/QDC-Handler.xsl

Qualified DC
ASPECTS



Aspects: search, browse, admin, e-person, submission…
Check DSpace wiki Manakin How To Guides for “how to create a
new aspect”;
For an example of overwriting the trail links, see the figure below:
(Figure from Donohue, Tim. Making DSpace XMLUI Your Own
http://www.slideshare.net/tdonohue/making-dspace-xmlui-your-own)
CREATE THE MANAKIN INTERFACE

Step 3: Decide on the template for testing
and/or modifying, identify some areas for
customization

Templates: Reference, Kubrick, Classic…

Decide on the parts which need customization:







Header, footer
Navigation bar
Homepage news/messages
Headings
Page structure, sections
Record display
…
TOOLS

Tools helping
in making CSS
changes and
identifying
page structure
and elements
 Firefox
Firebug
 IE 8
Developer
Tools
REBUILD DSPACE MANAKIN
Apache Maven and Ant
 Commands to rebuild Manakin @WSU
Libraries:







cd /usr/local/src/dspace/dspace-1.6.2-release/dspace
mvn package
cd /usr/local/src/dspace/dspace-1.6.2release/dspace/target/dspace-1.6.2-build.dir
(ant -Dconfig=/data/dspace/config/dspace.cfg
init_configs)
ant -Dconfig=/data/dspace/config/dspace.cfg update
sudo /sbin/service tomcat5 restart
(Commands provided by Andy Speagle, Unix Administrator.)
CREATE THE MANAKIN INTERFACE

Step 4: Start create your local theme

Themes (*These theme print screens were taken after themes
were applied to different communities at a later testing stage at
WSU.)
Reference Theme
Classic Theme
CREATE THE LOCAL THEME


WSU theme is initially based on Reference
theme, then is changed to Kubrick theme (after
some internal feedback).
Create WSU theme based on Reference theme:

Copy themes folder to custom themes folder;



cd /data/dspace/webapps/xmlui/themes
cp –r themes /usr/local/src/dspace/dspace-1.6.2release/dspace/modules/xmlui/src/main/webapp/themes/
Create “wsu” theme folder (mkdir) under “themes”
based on Reference theme.
CREATE THE LOCAL THEME: MODIFY
XMLUI CONFIGURATION FILE

Modifiy XMLUI (Manakin) configuration file

Modify which theme should be applied to a particular URL


cd /usr/local/src/dspace/dspace-1.6.2-release/dspace/config
vi xmlui.xconf
<theme> attributes: name, id, regex, handle, path
 Cascading: down to derivative directories


An example (<theme> section in xmlui.xconf):
<!-- test, Image gallery theme for pottery collections -->
<theme name="gallery" handle="10057/81" path="gallery/" />
<!-- test, Graduate School theme -->
<theme name="Gradschool" handle="10057/67"
path="Gradschool/"/>
<!-- WSU theme, local by default -->
<theme name="wsu" path="wsu/" regex=".*" />
CREATE THE LOCAL THEME: MODIFY
SITEMAP.XMAP

Modify local sitemap.xmap by changing “theme-path” and
“theme-name” to local ones.

For example:
<map:sitemap
xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<map:pipelines>
<map:component-configurations>
<global-variables>
<theme-path>wsu</theme-path>
<theme-name>Wichita State University Libraries
theme</theme-name>
</global-variables>
</map:component-configurations>
…
</map:pipelines>
</map:sitemap>
CREATE THE LOCAL THEME: CUSTOMIZE
HEADER

Header: logo change

For reference theme test: change logo under images
folder and adjust css under lib folder;


cd \DSpace\dspace-1.6.2release\dspace\modules\xmlui\src\main\webapp\themes
\wsu\lib
vi style.css


div#ds-header a span#ds-header-logo {
…
background-image: url("../images/soarlogo.jpg");
}
For Kubrick theme, change kubrickheader and
kubrickfooter under lib/css folder and revise css as
well.
CREATE THE LOCAL THEME:
CUSTOMIZE HEADINGS AND MESSAGES

Heading text
 cd
/usr/local/src/dspace/dspace-1.6.2release/dspace/modules/xmlui/src/main/webapp/i18n/
 vi
messages.xml

Adjust heading styles in CSS.

Change messages text in messages.xml
 Headings
 Trail
message
 Menu
header
 Error
message
…
CREATE THE LOCAL THEME: CUSTOMIZE
FOOTER

Customize footer text and links
In Reference theme test, copy footer section from
structural.xsl to local.xsl and modify local.xsl.
 For Kubrick theme, create local.xsl by modifying
Kubrick.xsl. Change footer text and add additional links to
local.xsl directly.
 For example:

<xsl:template name="buildFooter">
<div id="footer">
…
<div id="ds-footer-links">
<a href="http://libraries.wichita.edu/">University Libraries</a>
<xsl:text> | </xsl:text>
<a href="http://www.wichita.edu/">Univeristy Home</a>
</div>
</div>…
</xsl:template>
CREATE THE LOCAL THEME: DISABLE
FONT-SIZING MECHANISM

Disable font-sizing mechanism.
“The font-sizing variable is the result of a linear function
applied to the character count of the heading text.”
 It causes huge font display in some browsers and size
percentage for display needs to be adjusted in different
browsers.


Comment out font-sizing mechanism in structural.xsl
<!-- <xsl:template match="dri:div/dri:head" priority="3">
<xsl:variable name="head_count" select="count(ancestor::dri:div)"/> -->
<!-- with the help of the font-sizing variable, the font-size of our header
text is made continuously variable based on the character count -->
<!--<xsl:variable name="font-sizing" select="365 - $head_count * 160 string-length(current())"></xsl:variable>
…
</xsl:template> -->
CREATE THE LOCAL THEME: DISABLE
FONT-SIZING MECHANISM

Add the following section to local.xsl.
<!-- Overrides the default header -->
<xsl:template match="dri:div/dri:head" priority="3">
<xsl:variable name="head_count" select="count(ancestor::dri:div)"/>
<xsl:element name="h{$head_count}">
<xsl:call-template name="standardAttributes">
<xsl:with-param name="class">ds-div-head</xsl:with-param>
</xsl:call-template>
<xsl:apply-templates />
</xsl:element>
</xsl:template>
* Provided by DSpace Tech-list community.

Change body and heading text sizes to be fixed in
CSS files (when needed).
CREATE THE LOCAL THEME: ADD A
INFORMATION MENU FOR HELP FILES


Add custom code (adapted from UIUC’s code) to local.xsl to
provide an information block in the navigation menu.
If the search section is overwritten, copy “search” from
structural.xsl to local.xsl.
<xsl:template match="dri:options">
<div id="sidebar">
<h3 id="ds-search-option-head" class="ds-option-sethead"><i18n:text>xmlui.dri2xhtml.structural.search</i18n:text></h3>
…
<xsl:apply-templates />
<h3 class="ds-option-set-head">Information</h3>
<div id="ds-information-option" class="ds-option-set">
<ul class="ds-simple-list“>
<li><a>
<xsl:attribute name="href">
<xsl:text>quickguide.htm</xsl:text>
</xsl:attribute>
<i18n:text>Help</i18n:text>
</a></li>…
</ul>
</div>
CREATE THE LOCAL THEME: MORE
STRUCTURAL CHANGES


Disable top left “login” by modifying structual.xsl and commenting
out this section:
<!-- <xsl:choose>
<xsl:when
test="/dri:document/dri:meta/dri:userMeta/@authenticated = 'yes'">
<div id="ds-user-box">
….
</xsl:choose> -->
Remove front page search section (on top of the communities,
NOT the search box in the navigation menu)
Create a custom module folder:
/dspace/modules/xmlui/src/main/resources/aspects;
 Copy ArtifactBrowser folder and its sitemap.xmap file from the sources
folder to the custom folder;
 Comment out the following transformer in sitemap.xmap:



<map:transformer name=”FrontPageSearch”
src=”org.dspace.app.xmlui.aspect.artifactbrowser.FrontPageSearch” />
For details, refer to
http://ir.sun.ac.za/wiki/index.php/Asset_Presentation
CREATE THE LOCAL THEME:
CUSTOMIZE FRONT PAGE NEWS

Edit homepage main text at [DSpacesource]/dspace/config/news-xmlui.xml
XML DRI document
 An Example:



<p>… Authors retain copyright to their own works
published/archived in SOAR (see <xref
target="http://webs.wichita.edu/inaudit/ch9_10.htm">Unive
rsity intellectual Property policy</xref>.) …</p>
For DRI information, go to “DRI Schema
Reference” at:
http://scm.dspace.org/svn/repo/dspace/tags/dspace1.5.2/dspace/docs/html.legacy/DRISchemaReference.html#DRI_in_Ma
nakin
CREATE THE LOCAL THEME: ADD
STATIC PAGES

Add static pages (help and about pages)

Create static webpages (check the structure and
markup of DSpace pages before starting the work);

Create “static” folder under local theme and Upload
the files to the “static” folder;

Modify static content section in local sitemap.xmap:
<map:match pattern="themes/*/**">
<map:read src="{2}"/>
</map:match>
<map:match pattern="*.htm">
<map:read src="static/{1}.htm" mime-type="text/html" />
</map:match>
CREATE THE LOCAL THEME: COLLAPSING AND
EXPANDING FEATURE FOR COMMUNITY LIST

Test on collapsing and expanding feature for community list
Documentation is at
https://wiki.duraspace.org/pages/viewpage.action?pageId=19006695
 Some code can be found in Texas A&M’s IR site, check
http://repository.tamu.edu/handle/1969.1/2815
 Implement with caution, extra customization may be needed


At WSU, add to local.xsl:
<xsl:template name="communitySummaryList-DIM">
<xsl:variable name="data"
select="./mets:dmdSec/mets:mdWrap/mets:xmlData/dim:dim"/>
<p class="ListPlus" style="display:none">[+]</p>
<p class="ListMinus">[-]</p>
…
</xsl:template>



Add jquery-1.3.2.min.js and menus.js to lib/;
Add the following lines to local sitemap.xmap for all browsers:
 <map:parameter name="javascript#1" value="lib/jquery-1.3.2.min.js"/>
 <map:parameter name="javascript#2" value="lib/menus.js"/>
Add css (from Texas A&M) to local.css:
p#expand_all_clicker,
p#collapse_all_clicker
…
CREATE THE LOCAL THEME: COLLAPSING AND
EXPANDING FEATURE FOR COMMUNITY LIST
Experiment at WSU

However we disabled this function because it stopped
statistics showing on the top level of the communities.
A TESTING RESULT: A COMMUNITY BASED ON
THE REFERENCE THEME
A TESTING RESULT: IMAGE GALLERY THEME

Image Gallery theme (http://dspace.nitle.org/handle/10090/12005)
“Includes a grid-view, popup metadata from grid view, and a
zoom-and-pan viewer on image view interface.”
 See below for record view (CSS not fine adjusted) and zoom
effect
 Not implemented to the final interface because we purchased
image zoom module from @mire.

A TESTING RESULT: GRADUATE SCHOOL
THEME

The Graduate School theme (based on Kubrick theme, use
Graduate School logo. Disabled in our final interface due to
confusion in branding.)
A TESTING RESULT: USE A DIFFERENT
BACKGROUND

Local theme with a darker background (based on Kubrick
theme)
CREATE THE LOCAL THEME: BROWSER TEST




Step 5: Initial Testing in different browsers
CSS customization and Browser test
Browser selector mechanism
Many browsers handle CSS in a more standard way
(e.g. Mozilla Firefox, Opera, Google Chrome…)

IE nightmare: IE8, IE7, IE6…
Many positioning problems (no big issues in other
browsers);
 Define different stylesheets;
 If encountering browser selector problems, use CSS
hacks (mainly IE hacks). For example:

color:brown\9; /* for all IE */
color:brown\0; /* IE8 only */
+color:red; /* IE7 only */ _
color:black; /* IE6 only */
FOCUS GROUP FEEDBACK
Step 6: Get feedback from the focus group
and admin office
 Some feedback:








Make “title” and other labels in records summary
view more prominent;
Change “View” to “View/Download” in bitstream table
and make the link more obvious;
Change the order of bitstream table headers;
Change “DSpace” labels to “SOAR”;
“Send records to my Facebook”;
Add statistics number on the top level of the
communities;
Delete “[+]” in front of the communities when there is
only one level of community in homepage…
RECORD SUMMARY VIEW LABELS

Make record summary view labels more prominent.

Identified the element in MODS-Handler.xsl:
<!-- Generate the info about the item from the metadata section -->
<xsl:template match="mods:mods" mode="itemSummaryViewMODS">
<table class="ds-includeSet-table">
<tr class="ds-table-row odd">
<td><span class="bold"><i18n:text>xmlui.dri2xhtml.METS1.0.item-preview</i18n:text>:</span></td>…
</tr>
</table>
…

Add link style in CSS for “.ds-table a” and “span.bold”.
MESSAGES CHANGE

Changes made in messages.xml:
Adjust “show full item records” to “show Complete
item records” in record summary view;
 Modify “All of DSpace” to “All of SOAR”;
 Chang bitstream table lable “View” to
“View/Download”



<message key="xmlui.dri2xhtml.METS-1.0.item-filesview">View/Download</message>
Discuss adding various file type logos under
“Format” label in bitstream table (not
investigated due to time constrain).
BITSTREAM TABLE LABEL ORDER

Move “description” before “view” in bitstream table

Copy sections of code from General-Handler.xsl to wsu.xsl
and modify label and table cell content order accordingly
<!-- Generate the bitstream information from the file section -->
<xsl:template match="mets:fileGrp[@USE='CONTENT']">
….
<h2><i18n:text>xmlui.dri2xhtml.METS-1.0.item-files-head</i18n:text></h2>
<table class="ds-table file-list">
<tr class="ds-table-header-row">
<th><i18n:text>xmlui.dri2xhtml.METS-1.0.item-filesfile</i18n:text></th>…
<th><i18n:text>xmlui.dri2xhtml.METS-1.0.item-filesview</i18n:text></th>
</tr>…
</xsl:template>
<!-- Generate the bitstream information from the file section -->
<xsl:template match="mets:file">
<xsl:param name="context" select="."/>
<tr>…
<td>…</td>
…
</tr>…
</xsl:template>
STATISTICS NUMBER DISPLAY AND
EXPANDING MENU FOR COMMUNITY LIST



Add statistics numbers by changing configuration
file (dspace.cfg);
With the community collapsing and expanding
feature on, the statistics numbers do not show up
in the top community level and a “[+]” displays in
front of each community even when there is only
one level;
We disabled the collapsing and expanding menu.
If keeping it, more customization will need to be
done.
“SENT TO MY FACEBOOK”



Code provided by
Stuart Lewis
@Auckland
Code added to
structural.xsl (in
our case, local.xsl
since we modified
the sidebar menu)
For code and
potential
implementation
issues, see this
thread at
http://www.mailarchive.com/dspacetech@lists.sourceforge.n
et/msg12281.html
“SENT TO MY FACEBOOK”

Cocoon caching and browser selector problems
experienced at WSU

Force IE browsers to display the content correctly by
adding CSS hacks to the main CSS. See the previous
thread.
Send a link to
Facebook
SOME THOUGHTS ABOUT MANAKIN

Good things about Manakin:
Community and collection branding
 Make it possible for department pages in DSpace to be consistent
to the department website (if preferred)
 Make it possible for faculty collection pages in DSpace to be
consistent to the faculty website (if requested)
 Special visual effect and structural layout for some collections (e.g.
images, maps)
 Allow sharing of modular extensions and new features…


Some discussion on Manakin in DSpace Tech-list from the
design perspective:







Track the “Manakin questions” thread (e.g. http://www.mailarchive.com/dspace-tech@lists.sourceforge.net/msg12292.html)
Templates are not associated with individual pages;
Templating approach is more confusing than it is in other systems;
Structural.xsl is huge and hard to modify;
Program processing flow is not easy to follow;
Is DRI layer necessary?
Evaluation of Manakin needed…
SOME REFLECTIONS ON THE PROJECT



The upgrade of DSpace at WSU Libraries is a team work
of the IR Librarian, the Unix Administrator, the DSpace
Tech Support and the Metadata Librarian.
How can Manakin truly enhance an IR’s interfaces
without great effort and time spent?
How to best utilize the human resources when a developer
team is not available in a small or medium sized
institution?
 The Metadata Librarian’s Manakin experience: sharp
learning curve, not too easy but rewarding
 Always find inspirations and good practices from other
institutions;
 Look for help from Systems people and DSpace
community.
PROJECT TEAM INFORMATION AND
ACKNOWLEDGEMENTS






Coordinator: Susan Matveyeva, WSU Libraries
Administrative Support: Kathy Downes, WSU Libraries
Metadata Catalog Librarian: Sai Deng, WSU Libraries
DSpace Tech Support: Baseer Khan, WSU Libraries
Unix Administrator: Andy Speagle, WSU Computing
Center
Thanks DSpace community developers who either wrote
the code or answered our Manakin questions: Hardy
Pottinger from UM, Tim Donohue & Bill Ingram from
UIUC, Stuart Lewis from Auckland and Hilton Gibson
from Stellenbosch…
Download