167 lines
6.2 KiB
Genshi
167 lines
6.2 KiB
Genshi
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<?python import sitetemplate ?>
|
|
<?python
|
|
|
|
selectView = [
|
|
('icon', 'View: Icon'),
|
|
('list', 'View: List'),
|
|
('quote', 'View: Quotes'),
|
|
]
|
|
|
|
selectSort = [
|
|
('title', 'Sort: Title'),
|
|
('date', 'Sort: Date'),
|
|
('size', 'Sort: Size'),
|
|
('relevance', 'Sort: Relevance'),
|
|
]
|
|
|
|
selectFind = [
|
|
('all', 'Find: All'),
|
|
('title', 'Find: Title'),
|
|
('author', 'Find: Author'),
|
|
('date', 'Find: Date'),
|
|
('genre', 'Find: Genre'),
|
|
]
|
|
|
|
selectList = [
|
|
('all', 'List: All'),
|
|
('Screenings', 'List: Screenings'),
|
|
]
|
|
|
|
def search_link(search, n = None, o = None):
|
|
link = "/search?"
|
|
if n:
|
|
o = search['o'] - (search['o'] % n) + 1
|
|
for key in search:
|
|
value = search[key]
|
|
if key == 'o' and o:
|
|
value = o -1
|
|
if key == 'n' and n:
|
|
value = n
|
|
if key not in ['length']:
|
|
link += "%s=%s&" %(key, value)
|
|
return link
|
|
|
|
?>
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:py="http://purl.org/kid/ns#" py:extends="sitetemplate">
|
|
|
|
<head py:match="item.tag=='{http://www.w3.org/1999/xhtml}head'" py:attrs="item.items()">
|
|
<meta content="text/html; charset=UTF-8" http-equiv="content-type" py:replace="''"/>
|
|
<title py:replace="''">Your title goes here</title>
|
|
<style type="text/css">
|
|
#pageLogin
|
|
{
|
|
font-size: 10px;
|
|
font-family: verdana;
|
|
text-align: right;
|
|
}
|
|
</style>
|
|
<style type="text/css" media="screen">
|
|
@import "/static/css/style.css";
|
|
@import "/static/css/archive.css";
|
|
</style>
|
|
<script src="/static/js/archive.js" />
|
|
<meta py:replace="item[:]"/>
|
|
</head>
|
|
|
|
<body py:match="item.tag=='{http://www.w3.org/1999/xhtml}body'" py:attrs="item.items()">
|
|
<div py:if="tg.config('identity.on',False) and not 'logging_in' in locals()"
|
|
id="pageLogin">
|
|
<span py:if="tg.identity.anonymous">
|
|
<a href="/login">Login</a>
|
|
</span>
|
|
<span py:if="not tg.identity.anonymous">
|
|
Welcome ${tg.identity.user.display_name}.
|
|
<a href="/logout">Logout</a>
|
|
</span>
|
|
</div>
|
|
<div id="head">
|
|
<div id="headList">
|
|
<div class="headTop">
|
|
</div>
|
|
<div class="headTop" style="left: 136px">
|
|
<select id="selectList" onChange="changeList()">
|
|
<option py:for="value, content in selectList"
|
|
py:content="content"
|
|
py:attrs="dict(value=value, selected=(value==search['l'] and 'selected' or None))" />
|
|
</select>
|
|
</div>
|
|
<div class="headTop" style="left: 272px">
|
|
<select id="selectView" onChange="changeView()">
|
|
<option py:for="value, content in selectView"
|
|
py:content="content"
|
|
py:attrs="dict(value=value, selected=(value==search['v'] and 'selected' or None))" />
|
|
</select>
|
|
</div>
|
|
<div class="headTop" style="left: 408px">
|
|
<select id="selectSort" onChange="changeSort()">
|
|
<option py:for="value, content in selectSort"
|
|
py:content="content"
|
|
py:attrs="dict(value=value, selected=(value==search['s'] and 'selected' or None))" />
|
|
</select>
|
|
</div>
|
|
<div class="headTop" style="left: 544px">
|
|
<select id="selectFind" onChange="changeFind()">
|
|
<option py:for="value, content in selectFind"
|
|
py:content="content"
|
|
py:attrs="dict(value=value, selected=(value==search['f'] and 'selected' or None))" />
|
|
</select>
|
|
</div>
|
|
<div class="headTop" style="left: 680px">
|
|
<input id="inputFind" type="search" placeholder="Find" autosave="find" results="10" onBlur="submitFind()" value="${search['q']}"/>
|
|
</div>
|
|
<div py:if="search['length'] > 30" id="numberDiv" class="headBottom textSmall">
|
|
Items per Page<br/> <span py:for="n in [30, 60, 90, 120]">
|
|
<a py:if="n != search['n']" href="${search_link(search, n=n)}">${n}</a>
|
|
<span py:if="n == search['n']" py:replace="n" />
|
|
</span>
|
|
</div>
|
|
<?python
|
|
number_pages = search['length'] / search['n']
|
|
if search['length'] % search['n']:
|
|
number_pages += 1
|
|
current_page = search['o'] / search['n'] + 1
|
|
current_page_start = search['o'] + 1
|
|
current_page_end = min(search['o']+search['n'], search['length'])
|
|
previous_page = current_page - 1
|
|
previous_page_start = None
|
|
if current_page > 1:
|
|
previous_page_end = current_page_start - 1
|
|
previous_page_start = current_page_start - search['n']
|
|
next_page = current_page + 1
|
|
next_page_start = None
|
|
if current_page < number_pages:
|
|
next_page_start = current_page_end + 1
|
|
next_page_end = min(next_page_start + search['n'] -1, search['length'])
|
|
last_page = number_pages
|
|
last_page_start = None
|
|
if search['length'] > search['o'] + search['n']:
|
|
last_page_start = search['n'] * (number_pages -1) + 1
|
|
last_page_end = search['length']
|
|
?>
|
|
<div py:if="search['length'] > search['n'] and current_page > 1" id="firstDiv" class="headBottom textSmall" style="left: 136px">
|
|
<a href="${search_link(search, o=1)}">First Page<br/>1 (1-${search['n']})</a>
|
|
</div>
|
|
<div py:if="previous_page_start" id="previousDiv" class="headBottom textSmall" style="left: 272px">
|
|
<a href="${search_link(search, o= previous_page_start)}">Previous Page<br/>${previous_page} (${previous_page_start}-${previous_page_end})</a>
|
|
</div>
|
|
<div id="currentDiv" class="headBottom textSmall" style="left: 408px">
|
|
Current Page<br/>${current_page} (${current_page_start}-${current_page_end})
|
|
</div>
|
|
<div py:if="next_page_start" id="nextDiv" class="headBottom textSmall" style="left: 544px">
|
|
<a href="${search_link(search, o= next_page_start)}">Next Page<br/>${next_page} (${next_page_start}-${next_page_end})</a>
|
|
</div>
|
|
<div py:if="last_page_start" id="lastDiv" class="headBottom textSmall" style="left: 680px">
|
|
<a href="${search_link(search, o= last_page_start)}">Last Page<br/>${last_page} (${last_page_start}-${last_page_end})</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="shadowTop"></div>
|
|
<div id="main_content">
|
|
<div py:if="tg_flash" class="flash" py:content="tg_flash"></div>
|
|
|
|
<div py:replace="[item.text]+item[:]"/>
|
|
</div>
|
|
</body>
|
|
|
|
</html>
|