""" open/dulcinea/lib/ui/crumbs.qpy """ from qp.fill.directory import get_crumb_tree from qp.pub.common import get_path, get_response from qp.fill.css import format_style_rule, TextStyle from qp.fill.html import href def format_crumbs:xml(delim=None): if get_response().get_status_code() == 200: format_crumb_tree(get_crumb_tree(), delim=delim) def format_crumb_menu:xml(crumbs=None): if get_response().get_status_code() == 200: crumb_tree = get_crumb_tree() '' def _format_crumb_menu:xml(crumb_tree): '\n' def format_crumb_tree:xml(crumb_tree, delim=None): # For this to work you will need the crumb tree javascript if delim is None: delim = '>' '' ''' ''' def format_crumb_menu_css:str(menu_text_style=TextStyle(), menu_highlight_text_style=TextStyle()): menu_text_style.format_rules('ul.crumbmenu', ['li']) menu_highlight_text_style.format_rules('ul.crumbmenu', ['li.selected'], 'padding: 0.75ex; font-weight: bold;') format_style_rule('ul.crumbmenu', [], 'width:10em; list-style:none; display:inline; float:right;' 'margin: 0; padding: 0; margin-left: 1ex; margin-bottom: 1ex;' 'list-style: none; float: right; font-weight: bold;' 'border-left: thin solid inherit;' 'border-right: thin solid inherit;') format_style_rule('ul.crumbmenu', ['li'], 'padding: 0.75ex; font-weight: bold; display:block;') format_style_rule('ul.menu', [], 'float:left') format_style_rule('div.navigation', [], 'clear:both') def format_crumbs_css:str(color_map): ''' .navigation { color: %(CRUMBS_FG)s; background: %(CRUMBS_BG)s; font-size: x-small; } div.navigation { clear:both; } .navigation a:link, .navigation a:visited, .navigation a:active { margin-left: 0.5ex; margin-right: 0.5ex; text-decoration: none; color: %(LIGHT_A)s; } .navigation a:hover { margin-left: 0.5ex; margin-right: 0.5ex; color: %(LIGHT_A_HOVER)s; text-decoration: underline; } ''' % color_map ''' ul.suckerfish, ul.suckerfish ul { padding: 0; margin: 0; list-style: none; z-index: +2; } ul.suckerfish li.level1 { float: left; z-index: +2; } ul.suckerfish li.level1 a { color: white; } ul.suckerfish li { position: relative; margin: 0; padding-top: 1ex; padding-bottom: 1ex; } ul.suckerfish li.level2 { background: %(CRUMBS_BG)s; float: none; /* border-bottom: 1px solid %(BODY_BG)s; */ width: 100%%; } ul.suckerfish li ul { /* second-level lists */ width: 9em; display: none; position: absolute; top: 2em; left: 0; padding-top: 0.2em; border: thin solid %(CRUMBS_FG)s; } /* to override top and left in browsers other than IE, which will position * to the top right of the containing li, rather than bottom left */ li > ul { top: auto; left: auto; } ul.suckerfish li.over ul, ul.suckerfish li:hover ul { display: block; } ul.crumbmenu { margin: 0; padding: 0; margin-left: 1ex; margin-bottom: 1ex; list-style: none; float: right; width: 10em; background: %(CRUMBS_BG)s; } /* IE6 "float drop" bug workaround */ body.IE6 ul.crumbmenu { position: absolute; right: 0; } ul.crumbmenu li { background: %(CRUMBS_BG)s; padding: 0.75ex; } ul.crumbmenu li.selected { background: white; border-right: thin solid %(BODY_BG)s; border-left: thin solid %(BODY_BG)s; } ul.crumbmenu li.selected a, ul.crumbmenu li.selected a:link, ul.crumbmenu li.selected a:visited, ul.crumbmenu li.selected a:active, ul.crumbmenu li.selected a:hover { color: %(CRUMBS_BG)s; text-decoration: none; display: block; /* padding: 1px; */ } ''' % color_map