154 lines
6.2 KiB
XML
154 lines
6.2 KiB
XML
<html metal:define-macro="main"
|
|
tal:define="user tool/getUser;
|
|
isAnon tool/userIsAnon;
|
|
app tool/getApp;
|
|
appUrl app/absolute_url;
|
|
appFolder app/data;
|
|
appName tool/getAppName;
|
|
_ python: tool.translate;
|
|
req python: request;
|
|
resp req/RESPONSE;
|
|
x python: resp.setHeader('Content-Type', 'text/html;;charset=utf-8');
|
|
x python: resp.setHeader('Expires', 'Thu, 11 Dec 1975 12:05:00 GMT+2');
|
|
x python: resp.setHeader('Content-Language', req.get('language', 'en'))">
|
|
|
|
<head>
|
|
<title tal:content="tool/getAppName"></title>
|
|
<link rel="stylesheet" type="text/css" tal:attributes="href string:$appUrl/ui/appy.css"/>
|
|
<script type="text/javascript" tal:attributes="src string:$appUrl/ui/appy.js"></script>
|
|
</head>
|
|
|
|
<body>
|
|
<table class="main" align="center" cellpadding="0">
|
|
<tal:comment replace="nothing">Top banner</tal:comment>
|
|
<tr class="top" metal:define-slot="top">
|
|
<td>
|
|
<table width="100%">
|
|
<tr valign="top">
|
|
<tal:comment replace="nothing">Logo</tal:comment>
|
|
<td><a tal:attributes="href appUrl"><img tal:attributes="src string: $appUrl/ui/logo.jpg"/></a></td>
|
|
<tal:comment replace="nothing">Language selector (links or listbox)</tal:comment>
|
|
<td align="right"
|
|
tal:define="languages tool/getLanguages;
|
|
defaultLanguage python: languages[0];
|
|
suffix python: req.get('ACTUAL_URL').split('/')[-1];
|
|
asLinks python: len(languages) <= 5"
|
|
tal:condition="python: len(languages) >= 2 and (suffix not in ('edit', 'query', 'search'))">
|
|
<table tal:condition="asLinks">
|
|
<tr>
|
|
<td tal:repeat="lang languages">
|
|
<a class="lang"
|
|
tal:attributes="href python: req.get('ACTUAL_URL')+'/switchLanguage?set_language=%s' % lang;
|
|
title python: tool.getLanguageName(lang)"
|
|
tal:content="python: lang"></a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<select tal:condition="not: asLinks"
|
|
tal:attributes="onchange string:window.location='${context/absolute_url}/switchLanguage?set_language=' + this.options[this.selectedIndex].value">
|
|
<option tal:repeat="lang languages"
|
|
tal:content="python: tool.getLanguageName(lang)"
|
|
tal:attributes="selected python:defaultLanguage == lang; value lang">
|
|
</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tal:comment replace="nothing">The message strip</tal:comment>
|
|
<tr>
|
|
<td>
|
|
<div style="position: relative" align="right">
|
|
<metal:msg use-macro="app/ui/page/macros/message"/>
|
|
</div>
|
|
<tal:comment replace="nothing">Grey background shown when popups are shown</tal:comment>
|
|
<div id="grey" class="grey"></div>
|
|
|
|
<tal:comment replace="nothing">Popup for confirming an action</tal:comment>
|
|
<div id="confirmActionPopup" class="popup">
|
|
<form id="confirmActionForm" method="post">
|
|
<div align="center">
|
|
<p id="appyConfirmText"></p>
|
|
<input type="hidden" name="actionType"/>
|
|
<input type="hidden" name="action"/>
|
|
<input type="button" onClick="doConfirm()"
|
|
tal:attributes="value python:_('yes')"/>
|
|
<input type="button" value="No" onClick="closePopup('confirmActionPopup')"
|
|
tal:attributes="value python:_('no')"/>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tal:comment replace="nothing">The user data strip</tal:comment>
|
|
<tr>
|
|
<td>
|
|
<table class="userStrip" width="100%">
|
|
<tr>
|
|
<td>
|
|
<tal:comment replace="nothing">The user login form for anonymous users</tal:comment>
|
|
<table align="center" tal:condition="isAnon" class="login">
|
|
<tr><td>
|
|
<form name="loginform" method="post"
|
|
tal:attributes="action python: tool.absolute_url() + '/performLogin'">
|
|
|
|
<input type="hidden" name="js_enabled" id="js_enabled" value="0"/>
|
|
<input type="hidden" name="cookies_enabled" id="cookies_enabled" value=""/>
|
|
<input type="hidden" name="login_name" id="login_name" value=""/>
|
|
<input type="hidden" name="pwd_empty" id="pwd_empty" value="0"/>
|
|
|
|
<span>Login</span>
|
|
<input type="text" size="15" name="__ac_name" id="__ac_name" value=""/>
|
|
<span>Password</span>
|
|
<input type="password" size="15" name="__ac_password" id="__ac_password"/>
|
|
<input type="submit" name="submit" onclick="setLoginVars()"
|
|
tal:define="label python: _('Login');" tal:attributes="value label; alt label;"/>
|
|
</form>
|
|
</td></tr>
|
|
</table>
|
|
<tal:comment replace="nothing">User info and controls for authenticated users</tal:comment>
|
|
<table tal:condition="not: isAnon" class="buttons" width="99%">
|
|
<tr>
|
|
<td>
|
|
<!-- Go home -->
|
|
<a tal:attributes="href appUrl; title python: _('home')">
|
|
<img tal:attributes="src string: $appUrl/ui/home.gif"/>
|
|
</a>
|
|
<!-- Config -->
|
|
<img style="cursor:pointer" tal:condition="python: user.has_role('Manager')"
|
|
tal:attributes="onClick python: 'href: window.location=\'%s\'' % tool.getUrl(page='main', nav='');
|
|
title python: _('%sTool' % appName);
|
|
src string:$appUrl/ui/appyConfig.gif"/>
|
|
<!-- Logout -->
|
|
<a tal:attributes="href python: tool.absolute_url() + '/performLogout';
|
|
title python: _('logout')">
|
|
<img tal:attributes="src string: $appUrl/ui/logout.gif"/>
|
|
</a>
|
|
</td>
|
|
<td align="right" tal:content="python: tool.getUserLine(user)"></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<table width="99%">
|
|
<tr valign="top">
|
|
<tal:comment replace="nothing">Portlet</tal:comment>
|
|
<td tal:condition="python: tool.showPortlet(context)" class="portlet">
|
|
<metal:portlet use-macro="app/ui/portlet/macros/portlet"/>
|
|
</td>
|
|
<tal:comment replace="nothing">Page content</tal:comment>
|
|
<td class="content"><span metal:define-slot="content"></span></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|