AddingAnimated Citations Drop Down back into Gramps for class SourcePage.

svn: r18979
This commit is contained in:
Rob G. Healey 2012-02-29 01:36:50 +00:00
parent 1194b9e8ab
commit b4c89cf207
7 changed files with 372 additions and 188 deletions

View File

@ -60,10 +60,10 @@ from cStringIO import StringIO
from textwrap import TextWrapper
from unicodedata import normalize
from collections import defaultdict
import re
from xml.sax.saxutils import escape
import operator
from operator import itemgetter
from decimal import Decimal, getcontext
getcontext().prec = 8
@ -1540,15 +1540,8 @@ class BasePage(object):
as part of the header title.
"""
# Header constants
xmllang = Utils.xml_lang()
_META1 = 'name ="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1"'
_META2 = 'name ="apple-mobile-web-app-capable" content="yes"'
_META3 = 'name="generator" content="%s %s %s"' % (
const.PROGRAM_NAME, const.VERSION, const.URL_HOMEPAGE)
_META4 = 'name="author" content="%s"' % self.author
# begin each html page...
xmllang = Utils.xml_lang()
page, head, body = Html.page('%s - %s' %
(html_escape(self.title_str.strip()),
html_escape(title)),
@ -1558,6 +1551,13 @@ class BasePage(object):
if self.ext in [".php", ".php3", ".cgi"]:
del page[0]
# Header constants
_META1 = 'name ="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1"'
_META2 = 'name ="apple-mobile-web-app-capable" content="yes"'
_META3 = 'name="generator" content="%s %s %s"' % (
const.PROGRAM_NAME, const.VERSION, const.URL_HOMEPAGE)
_META4 = 'name="author" content="%s"' % self.author
# create additional meta tags
meta = Html("meta", attr = _META1) + (
Html("meta", attr = _META2, indent = False),
@ -1578,16 +1578,16 @@ class BasePage(object):
url4 = self.report.build_url_image("favicon2.ico", "images", self.up)
# create stylesheet and favicon links
links = Html("link", href = url4, type = "image/x-icon", rel = "shortcut icon") + (
Html("link", href = url2, type = "text/css", media = "screen", rel = "stylesheet", indent = False),
Html("link", href = url3, type = "text/css", media = 'print', rel = "stylesheet", indent = False)
links = Html("link", type = "image/x-icon", href = url4, rel = "shortcut icon") + (
Html("link", type = "text/css", href = url2, media = "screen", rel = "stylesheet", indent = False),
Html("link", type = "text/css", href = url3, media = 'print', rel = "stylesheet", indent = False)
)
# Link to Navigation Menus stylesheet
if CSS[self.report.css]["navigation"]:
fname = "/".join(["css", "narrative-menus.css"])
url = self.report.build_url_fname(fname, None, self.up)
links += Html("link", href = url, type = "text/css", media = "screen", rel = "stylesheet", indent = False)
links += Html("link", type = "text/css", href = url, media = "screen", rel = "stylesheet", indent = False)
# add additional meta and link tags
head += meta
@ -3627,12 +3627,12 @@ class EventListPage(BasePage):
prev_letter = ""
# separate events by their type and then thier event handles
for (evt_type, data_list) in sort_event_types(self.dbase_, event_types, event_handle_list):
for (evt_type, data_list) in sort_event_types(self.dbase_, event_handle_list, event_types):
first_letter = True
_EVENT_DISPLAYED = []
# sort datalist by date of event and by event handle...
data_list = sorted(data_list, key = operator.itemgetter(0, 1))
data_list = sorted(data_list, key = itemgetter(0, 1))
first_event = True
for (sort_value, event_handle) in data_list:
@ -4431,24 +4431,23 @@ class SourceListPage(BasePage):
#
"""
class SourcePage(BasePage):
def __init__(self, report, title, src_handle, src_list, ppl_handle_list,
database_handles_list):
def __init__(self, report, title, src_handle, src_list, database_handles_list):
self.dbase_ = report.database
source = self.dbase_.get_source_from_handle(src_handle)
if not source:
return
# for use in determining if a citation referent is in the report database?
(db_people_handles, db_family_handles, db_event_handles, db_place_handles,
db_repository_handles, db_media_handles) = database_handles_list
db_source_handles = src_list
self.page_title = source.get_title()
BasePage.__init__(self, report, title, source.get_gramps_id())
# for use in determining if a citation referent is in the report database?
(self.ind_list, db_family_handles, db_event_handles, db_place_handles,
db_media_handles) = database_handles_list
db_source_handles = src_list
inc_repositories = self.report.options["inc_repository"]
self.navigation = self.report.options["navigation"]
self.navigation = self.report.options['navigation']
of, sio = self.report.create_file(src_handle, "src")
self.up = True
@ -4470,7 +4469,6 @@ class SourcePage(BasePage):
# add section title
sourcedetail += Html("h3", html_escape(source.get_title()), inline = True)
# begin sources table
with Html("table", class_ = "infolist source") as table:
sourcedetail += table
@ -4515,18 +4513,47 @@ class SourcePage(BasePage):
if repo_list is not None:
sourcedetail += repo_list
# get the Source and its Citation Referents too...
# get the Source and its Citation Referents...
the_lists = Utils.get_source_and_citation_referents(src_handle, self.dbase_)
if the_lists:
(citation_list, citation_referents_list) = the_lists
if citation_referents_list:
# Drop Down is being used, add Style sheet and javascript file...
if self.navigation == "DropDown":
# link- in Animated Drop Down style sheet
fname = "/".join(["css", "narrative-dropdown.css"])
url = self.report.build_url_fname(fname, None, self.up)
head += Html("link", type = "text/css", href = url, media = "screen",
rel = "stylesheet", inline = True)
# javascript if the user's browser is IE6?
fname = "/".join(["scripts", "jquery-1.7.1.min.js"])
url = self.report.build_url_fname(fname, None, self.up)
head += Html("script", type = "text/javascript", href = url,
language ="javascript", inline = True)
with Html("script", type = "text/javascript", language = "javascript") as jsc:
head += jsc
jsc += """
if ($.browser.msie && $.browser.version.substr(0,1)< 7)
{
$('li').has('ul').mouseover(function(){
$(this).children('ul').css('visibility','visible');
}).mouseout(function(){
$(this).children('ul').css('visibility','hidden');
})
}
});"""
# begin Source Citation Referents section
with Html("div", class_ ="subsection", id = "SourceCitationReferents") as section:
sourcedetail += section
# add secion title
section += Html("h4", _("Citation References"), inline =True)
section += Html("h4", _("Citation Referents"), inline = True)
ordered1 = Html("ol", class_ = "Col1", role = "Volume-n-Page")
@ -4534,65 +4561,41 @@ class SourcePage(BasePage):
citation = self.dbase_.get_citation_from_handle(citation_handle)
if citation:
# gets all citation referents no matter on the filters...
# gets all citation referents no matter on the filters being used...
(people_list, family_list, event_list, place_list, source_list, media_list, repo_list) = refs
# remove people that are not in this report database...
people_list = [person_handle for person_handle in people_list if person_handle in db_people_handles]
# Sort the person list by the individual's surname...
people_list = sort_people(self.dbase_, people_list)
list1 = Html("li", citation.get_page())
people_list = [person_handle for person_handle in people_list
if person_handle in self.ind_list]
list1 = Html("li")
list1.extend(
citation.get_page()
)
unordered2 = Html("ul", class_ = "Col2", id = "menu", role = "Object Type")
# Citation Referents have Person objects...
if people_list:
list2 = Html("li")
# sot people by surnames and first, then group by surnames and
# their associated handles
people_list = sort_people(self.dbase_, people_list)
list2.extend(
Html("a", _("People"), href = "#", title = _("People"), inline = True)
)
people_dict = dict((surname, handle_list) for (surname, handle_list) in people_list)
unordered3 = Html("ul", class_ = "Col3", role = "Surname")
for (surname, people_handle_list) in people_list:
list3 = Html("li")
list3.extend(
Html("a", surname, href = "#", title = surname, inline = True)
)
unordered4 = Html("ul", class_ = "Col4", role = "Short Name")
for person_handle in people_handle_list:
person = self.dbase_.get_person_from_handle(person_handle)
if person:
url = self.report.build_url_fname_html(person_handle, "ppl", up = self.up)
unordered4.extend(
Html("li", self.person_link(url, person, name_style = False), inline = True)
)
list3 += unordered4
unordered3 += list3
list2 += unordered3
unordered2 += list2
self.display_citation_refs_list(unordered2, people_dict, "People")
# remove family handles if they are not in this report database?
family_list = [family_handle for family_handle in family_list if family_handle in db_family_handles]
family_list = [family_handle for family_handle in family_list
if family_handle in db_family_handles]
# Citation Referents have Family Objects...
if (self.inc_families and family_list):
list2 = Html("li")
list2.extend(
Html("a", _("Families"), href = "#", title = _("Families"), inline = True)
)
unordered3 = Html("ul", class_ = "Col3", role = "Husband-n-Spouse")
for family_handle in family_list:
@ -4601,94 +4604,26 @@ class SourcePage(BasePage):
unordered3.extend(
Html("li", self.get_family_string(family))
)
list2 += unordered3
unordered2 += list2
# remove event handles if they are not in this report database...
event_list = [event_handle for event_handle in event_list if event_handle in db_event_handles]
event_list = [event_handle for event_handle in event_list
if event_handle in db_event_handles]
# Citation Referents have Event Objects...
if (self.inc_events and event_list):
list2 = Html("li")
list2.extend(
Html("a", _("Events"), href = "#", title = _("Events"), inline = True)
)
event_handle_list, event_types = build_event_data_by_events(self.dbase_, event_list)
unordered3 = Html("ul", class_ = "Col3", role = "Event Type")
# separate events by their types and then thier event handles
for (event_type, event_list) in sort_event_types(self.dbase_, event_types, event_handle_list):
# sort data_list by date of event and event handle...
event_list = sorted(event_list, key = operator.itemgetter(0, 1))
list3 = Html("li")
list3.extend(
Html("a", event_type, href = "#", title = event_type, inline = True)
)
unordered4 = Html("ul", class_ = "Col4", role = "HyperLinked Event Date")
events_dict = {}
for (event_type, event_list) in sort_event_types(self.dbase_,
event_handle_list, event_types):
event_handle_list = []
for (sort_value, event_handle) in event_list:
event = self.dbase_.get_event_from_handle(event_handle)
if event:
event_date = _dd.display(event.get_date_object())
event_handle_list.append(event_handle)
events_dict[event_type] = event_handle_list
list4 = Html("li")
list4.extend(
Html("a", event_date, href = "#", title = event_date, inline = True)
)
unordered5 = Html("ul", class_ = "Col5")
# marriage or Divorce Event...
if event.get_type() in [gen.lib.EventType.MARRIAGE, gen.lib.EventType.DIVORCE]:
for (classname, newhandle) in self.dbase_.find_backlink_handles(event_handle, ["Family"]):
family = self.dbase_.get_family_from_handle(newhandle)
if (family and newhandle in db_family_handles):
unordered5.extend(
Html("li", self.get_family_string(family))
)
# any other event types...
else:
back_handle_list = self.dbase_.find_backlink_handles(event_handle, ["Person"])
back_handle_list = [(classname, handle) for (classname, handle) in back_handle_list]
if back_handle_list:
if len(back_handle_list) == 1:
for (classname, newhandle) in back_handle_list:
obj = self.dbase_.get_person_from_handle(newhandle)
if obj:
unordered5.extend(
Html("li", self.event_link(event_handle, self.get_name(obj),
uplink = self.up), inline = True)
)
# this occurs when an event has multiple participants...
else:
for (classname, newhandle) in back_handle_list:
obj = self.dbase_.get_person_from_handle(newhandle)
if obj:
unordered5.extend(
Html("li", self.event_link(event_handle, self.get_name(obj),
uplink = self.up), inline = True)
)
list4 += unordered5
unordered4 += list4
list3 += unordered4
unordered3 += list3
list2 += unordered3
unordered2 += list2
# self.display_citation_refs_list(unorered2, events_dict, "Events")
# remove place handles if they are not in this report database...
place_list = [place_handle for place_handle in place_list if place_handle in db_place_handles]
@ -4697,11 +4632,9 @@ class SourcePage(BasePage):
if place_list:
list2 = Html("li")
list2.extend(
Html("a", _("Places"), href = "#", title = _("Places"), inline = True)
)
unordered3 = Html("ul", class_ = "Col3", role = "Place Title")
for place_handle in place_list:
@ -4711,49 +4644,40 @@ class SourcePage(BasePage):
Html("li", self.place_link(place_handle, place.get_title(), uplink = self.up),
inline = True)
)
list2 += unordered3
unordered2 += list2
# remove sources if they are not in this report database...
source_list = [source_handle for source_handle in source_list if source_handle in db_source_handles]
source_list = [source_handle for source_handle in source_list
if source_handle in db_source_handles]
# Citation Referents have Source Objects...
if source_list:
list2 = Html("li")
list2.extend(
Html("a", _("Sources"), href = "#", title = _("Sources"), inline = True)
)
unordered3 = Html("ul", class_ = "Col3", role = "Source Title")
for source_handle in source_list:
source = self.dbase_.get_source_from_handle(source_handle)
if source:
unordered3.extend(
Html("li", self.source_link(source_handle,
source.get_title(), source.get_gramps_id(),
Html("li", self.source_link(source_handle,
source.get_title(), source.get_gramps_id(),
uplink = self.up), inline = True)
)
list2 += unordered3
unordered2 += list2
# remove repositories if they are not in this report database...
repo_list = [repo_handle for repo_handle in repo_list
if repo_handle in db_repository_handles]
# Citation Referents have Repository Objects...
if (inc_repositories and repo_list):
list2 = Html("li")
list2.extend(
Html("a", _("Repositories"), href = "#", title = _("Repositories"), inline = True)
)
unordered3 = Html("ul", class_ = "Col3", role = "Repository Name")
for repository_handle in repo_list:
@ -4763,12 +4687,12 @@ class SourcePage(BasePage):
Html("li", self.repository_link(repository_handle, repository.get_name(),
uplink = self.up), inline = True)
)
list2 += unordered3
unordered2 += list2
# remove media if they are not in this report database...
media_list = [media_handle for media_handle in media_list if media_handle in db_media_handles]
media_list = [media_handle for media_handle in media_list
if media_handle in db_media_handles]
# Citation Referents has Media Objects...
if (self.create_media and media_list):
@ -4819,6 +4743,85 @@ class SourcePage(BasePage):
# and close the file
self.XHTMLWriter(sourcepage, of, sio)
def get_citation_ref_link(self, obj_handle, citation_type):
"""
returns the hyper link for the handle that was passed to it
"""
hyper = None
if citation_type == "People":
obj_ = self.dbase_.get_person_from_handle(obj_handle)
url = self.report.build_url_fname_html(obj_handle, "ppl", up = self.up)
hyper = self.person_link(url, obj_, name_style = False)
else:
obj_ = self.dbase_.get_event_from_handle(obj_handle)
event_date = _dd.display(obj_.get_date_object()) or '&nbsp;'
hyper = self.event_link(obj_handle, event_date, uplink = self.up)
return hyper
def display_citation_refs_list(self, unordered2, citations_dict, citation_type):
"""
displays the citations referents list
"""
keys = sorted(citations_dict, key = locale.strxfrm)
max_per_column = 5
list2 = Html("li")
list2.extend(
Html("a", _(citation_type), href = "#", title = _(citation_type), inline = True)
)
unordered3 = Html("ul", class_ = "Col3", role = "Surname/ Event Type")
for key in keys:
list3 = Html("li")
list3.extend(
Html("A", key, href = "#", title = key, inline = True)
)
unordered4 = Html("ul", class_ = "Col4", role = "Name/ Date")
# determine the length of the values for this key
value_len = len(citations_dict[key])
# if value is more than 5, then we have to make groups...
if value_len > max_per_column:
num_of_cols = ((value_len // max_per_column) + 1)
for x in range(num_of_cols):
list4 = Html("li")
list4.extend(
Html("a", key + str((x + 1)), href = "#", inline = True)
)
unordered5 = Html("ul", class_ = "Col5", role = "Surname/ Type divide")
for y in range(max_per_column):
if ((x * max_per_column + y) < value_len):
obj_handle = citations_dict[key][((x * max_per_column) + y)]
list5 = Html("li")
list5.extend(
self.get_citation_ref_link(obj_handle, citation_type)
)
unordered5 += list5
list4 += unordered5
# else, we are not required to make groups and we can loop through them as it is
else:
for x in range(value_len):
obj_handle = citations_dict[key][x]
list4 = Html("li")
list4.extend(
self.get_citation_ref_link(obj_handle, citation_type)
)
unordered4 += list4
list3 += unordered4
unordered3 += list3
list2 += unordered3
unordered2 += list2
class MediaListPage(BasePage):
def __init__(self, report, title, db_media_handles):
self.dbase_ = report.database
@ -5503,7 +5506,7 @@ class IndividualPage(BasePage):
# 0 = latitude, 1 = longitude, 2 = place title, 3 = handle, and 4 = date, 5 = event type...
# being sorted by date, latitude, and longitude...
place_lat_long = sorted(place_lat_long, key =operator.itemgetter(4, 0, 1))
place_lat_long = sorted(place_lat_long, key = itemgetter(4, 0, 1))
# for all plugins
# if family_detail_page
@ -6991,6 +6994,9 @@ class NavWebReport(Report):
place_list = {}
source_list = {}
# copy all of the neccessary files for NarrativeWeb report...
self.copy_narrated_files()
self.base_pages()
# for use with discovering biological, half, and step siblings for use in display_ind_parents()...
@ -7036,16 +7042,13 @@ class NavWebReport(Report):
if self.inc_addressbook:
self.addressbook_pages(ind_list)
database_handles_list = (ind_list, db_family_handles, db_event_handles, db_place_handles,
db_repository_handles, db_media_handles)
database_handles_list = (ind_list, db_family_handles, db_event_handles,
db_place_handles, db_media_handles)
# build classes SourceListPage and SourcePage
# has been moved so that all Sources can be found before processing...
self.source_pages(source_list, ind_list, database_handles_list)
# copy all of the neccessary files
self.copy_narrated_files()
# if an archive is being used, close it?
if self.archive:
self.archive.close()
@ -7118,6 +7121,14 @@ class NavWebReport(Report):
fname = CSS["NarrativeMaps"]["filename"]
self.copy_file(fname, "narrative-maps.css", "css")
# if Drop Down Navigation is being used, copy its style sheet and its javascript file...
if self.navigation == "DropDown":
fname = CSS["Animated Dropdown"]["filename"]
self.copy_file(fname, "narrative-dropdown.css", "css")
fname = CSS["Animated Dropdown"]["javascript"]
self.copy_file(fname, "jquery-1.7.1.min.js", "scripts")
# Copy the Creative Commons icon if the Creative Commons
# license is requested
if 0 < self.copyright <= len(_CC):
@ -7380,7 +7391,7 @@ class NavWebReport(Report):
self.user.step_progress()
self.user.end_progress()
def source_pages(self, source_list, ppl_handle_list, database_handles_list):
def source_pages(self, source_list, ind_list, database_handles_list):
"""
creates SourceListPage and SourcePage
"""
@ -7390,7 +7401,7 @@ class NavWebReport(Report):
SourceListPage(self, self.title, source_list.keys())
for source_handle in source_list:
SourcePage(self, self.title, source_handle, source_list, ppl_handle_list, database_handles_list)
SourcePage(self, self.title, source_handle, source_list, database_handles_list)
self.user.step_progress()
self.user.end_progress()
@ -8185,7 +8196,7 @@ def sort_people(dbase, handle_list):
return sorted_lists
def sort_event_types(dbase, event_types, event_handle_list):
def sort_event_types(dbase, event_handle_list, event_types):
"""
sort a list of event types and their associated event handles
@ -8193,17 +8204,16 @@ def sort_event_types(dbase, event_types, event_handle_list):
@param: event_types -- a dict of event types
@param: event_handle_list -- all event handles in this database
"""
event_dict = dict((evt_type, list()) for evt_type in event_types)
for event_handle in event_handle_list:
event = dbase.get_event_from_handle(event_handle)
event_type = str(event.get_type())
event_type = event.get_type()
# add (gramps_id, date, handle) from this event
if event_type in event_dict:
sort_value = event.get_date_object().get_sort_value()
event_dict[event_type].append((sort_value, event_handle))
for tup_list in event_dict.values():
@ -8211,7 +8221,7 @@ def sort_event_types(dbase, event_types, event_handle_list):
# return a list of sorted tuples, one per event
retval = [(event_type, event_list) for (event_type, event_list) in event_dict.iteritems()]
retval.sort(key=lambda item: str(item[0]))
retval.sort(key = lambda item: str(item[0]))
return retval

View File

@ -9,6 +9,7 @@ DATAFILES = \
ancestortree.css \
behaviour.css \
narrative-maps.css \
Web_Animated-Dropdown.css \
Web_Basic-Ash.css \
Web_Basic-Blue.css \
Web_Basic-Cypress.css \

View File

@ -0,0 +1,183 @@
/* Main Element
------------------------------------------------------ */
#menu, #menu ul {
margin: 0;
padding: 0;
list-style-type: none;
}
/* Main Level
------------------------------------------------------ */
#menu {
width: 100%;
margin: 6px auto;
border: 1px solid #222;
background-color: #111;
background-image: -moz-linear-gradient(#444, #111);
background-image: -webkit-gradient(linear, left top, left bottom, from(#444), to(#111));
background-image: -webkit-linear-gradient(#444, #111);
background-image: -o-linear-gradient(#444, #111);
background-image: -ms-linear-gradient(#444, #111);
background-image: linear-gradient(#444, #111);
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border-radius: 6px;
-moz-box-shadow: 0 1px 1px #777;
-webkit-box-shadow: 0 1px 1px #777;
box-shadow: 0 1px 1px #777;
}
/* Clear Floats
------------------------------------------------------ */
#menu:before,
#menu:after {
content: "";
display: table;
}
#menu:after {
clear: both
}
#menu {
zoom: 1
}
/* List Elements
------------------------------------------------------ */
#menu li {
float: left;
border-right: 1px solid #222;
-moz-box-shadow: 1px 0 0 #444;
-webkit-box-shadow: 1px 0 0 #444;
box-shadow: 1px 0 0 #444;
position: relative;
}
#menu a {
float: left;
padding: 12px 30px;
color: #999;
text-transform: uppercase;
font: bold 12px Arial, Helvetica;
text-decoration: none;
text-shadow: 0 1px 0 #000;
}
#menu li:hover > a {
color: #fafafa
}
*html #menu li a:hover { /* IE6 only */
color: #fafafa
}
/* sub-menu
------------------------------------------------------ */
#menu ul {
margin: 20px 0 0 0;
_margin: 0; /*IE6 only*/
opacity: 0;
visibility: hidden;
position: absolute;
top: 38px;
left: 0;
z-index: 9999;
background: #444;
background: -moz-linear-gradient(#444, #111);
background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #111),color-stop(1, #444));
background: -webkit-linear-gradient(#444, #111);
background: -o-linear-gradient(#444, #111);
background: -ms-linear-gradient(#444, #111);
background: linear-gradient(#444, #111);
-moz-box-shadow: 0 -1px rgba(255,255,255,.3);
-webkit-box-shadow: 0 -1px 0 rgba(255,255,255,.3);
box-shadow: 0 -1px 0 rgba(255,255,255,.3);
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-transition: all .2s ease-in-out;
-moz-transition: all .2s ease-in-out;
-ms-transition: all .2s ease-in-out;
-o-transition: all .2s ease-in-out;
transition: all .2s ease-in-out;
}
#menu li:hover > ul {
opacity: 1;
visibility: visible;
margin: 0;
}
#menu ul ul {
top: 0;
left: 150px;
margin: 0 0 0 20px;
_margin: 0; /*IE6 only*/
-moz-box-shadow: -1px 0 0 rgba(255,255,255,.3);
-webkit-box-shadow: -1px 0 0 rgba(255,255,255,.3);
box-shadow: -1px 0 0 rgba(255,255,255,.3);
}
#menu ul li {
float: none;
display: block;
border: 0;
_line-height: 0; /*IE6 only*/
-moz-box-shadow: 0 1px 0 #111, 0 2px 0 #666;
-webkit-box-shadow: 0 1px 0 #111, 0 2px 0 #666;
box-shadow: 0 1px 0 #111, 0 2px 0 #666;
}
#menu ul li:last-child {
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
}
#menu ul a {
padding: 10px;
width: 130px;
_height: 10px; /*IE6 only*/
display: block;
white-space: nowrap;
float: none;
text-transform: none;
}
#menu ul a:hover {
background-color: #0186ba;
background-image: -moz-linear-gradient(#04acec, #0186ba);
background-image: -webkit-gradient(linear, left top, left bottom, from(#04acec), to(#0186ba));
background-image: -webkit-linear-gradient(#04acec, #0186ba);
background-image: -o-linear-gradient(#04acec, #0186ba);
background-image: -ms-linear-gradient(#04acec, #0186ba);
background-image: linear-gradient(#04acec, #0186ba);
}
/* first and Last child elements
------------------------------------------------------ */
#menu ul li:first-child > a {
-moz-border-radius: 3px 3px 0 0;
-webkit-border-radius: 3px 3px 0 0;
border-radius: 3px 3px 0 0;
}
#menu ul li:first-child > a:after {
content: '';
position: absolute;
left: 40px;
top: -6px;
border-left: 6px solid transparent;
border-right: 6px solid transparent;
border-bottom: 6px solid #444;
}
#menu ul ul li:first-child a:after {
left: -6px;
top: 50%;
margin-top: -6px;
border-left: 0;
border-bottom: 6px solid transparent;
border-top: 6px solid transparent;
border-right: 6px solid #3b3b3b;
}
#menu ul li:first-child a:hover:after {
border-bottom-color: #04acec
}
#menu ul ul li:first-child a:hover:after {
border-right-color: #0299d3;
border-bottom-color: transparent;
}
#menu ul li:last-child > a {
-moz-border-radius: 0 0 3px 3px;
-webkit-border-radius: 0 0 3px 3px;
border-radius: 0 0 3px 3px;
}

View File

@ -775,21 +775,6 @@ div#SourceDetail {
div#SourceDetail div#references ol li {
padding-bottom: .5em;
}
div#SourceCitationReferents ul.Col1 {
list-style-type: decimal
}
div#SourceCitationReferents ul.Col2 {
list-style-type: upper-alpha
}
div#SourceCitationReferents ul.Col3 {
list-style-type: lower-alpha
}
div#SourceCitationReferents ul.Col4 {
list-style-type: upper-roman
}
div#SourceCitationReferents ul.Col5 {
list-style-type: disc
}
/* Repositories
------------------------------------------------------ */

View File

@ -8,7 +8,7 @@
DATAFILES = \
jquery-1.3.2.min.js \
jquery-ui-1.7.2.custom.min.js \
jquery-1.7.min.js \
jquery-1.7.1.min.js \
jquery-1.7.1.js

View File

@ -130,6 +130,11 @@ def load_on_reg(dbstate, uistate, plugin):
["Fade-Menus", 0, "Fade In/ Out Menus",
path_css('Web_Fade-Menus.css'), None, [], [] ],
# WebKit/ Html5/ CSS3 Animated Drop Down Style Sheet
["Animated Dropdown", 0, "Animated Dropdown",
path_css("Web_Animated-Dropdown.css"), None, [],
path_js("jquery-1.7.1.min.js") ],
# WebKit/ Html5/ CSS3 Drop Down Navigation Menus Style Sheet
["DropDown-Menus", 0, "Drop Down Menus",
path_css("Web_DropDown-Menus.css"), None, [], [] ],