Commit e02f268a authored by Ali Hallaji's avatar Ali Hallaji

Add RTL feature to ERP5 | Add Farsi lang to ERP5

parent 52e8b364
def LanguageHandler(self, username, lang):
if not getattr(self, 'lang_slot', None):
self.lang_slot = {}
# name of all rtl languages
rtl_lang = ['fa']
if lang in rtl_lang:
self.lang_slot[username] = 'rtl'
else:
self.lang_slot[username] = 'ltr'
# This script returns an iterable of the paths to standard CSS objects.
# If you want to customize your own site, please override this script
# in your own skin folder. Note that the returned items must be
# relative URLs instead of absolute URLs, i.e. they must be traversable
# from the portal object. This is required for further processing of CSS
# data, e.g. compression.
#
# BBB: For the history, erp5.css is included by css_list_template.
# So this script has nothing to do in reality.
result = context.switch_style(context.Base_getUserCaption())
css_list = ('{}erp5_knowledge_box.css'.format(result),)
return css_list
#gadget_area_wrapper {
margin-top: 0.5em;
}
#page_wrapper {
text-align: right;
margin: 0em;
padding: 0em;
padding-top: 0em;
background-color: inherit;
min-height: 500px;
width: 100%;
float:left;
margin-top: 0.5em;
}
#loading-wrapper{
position:absolute;
width:250px;
top:80px;
left:50%;
margin-left:-150px;
text-align:center;
padding:7px 0 0 0;
background-color: #FFF;
z-index:1000;
}
#loading-wrapper p{
font-weight: bold;
font-size: 90%;
}
.invisible-gadget{
display:none;
}
/* 3 columng gadget layout */
div.portal-column {
float: left;
width:32.9%;
margin-right:3px;
min-height: 200px;
}
/* Boxes */
div.block {
margin:1px 1px 3px;
padding: 0px;
width: 100%;
}
div.pad-actions{
float:left;
}
h3.handle {
margin: 0;
padding: 0 0 0 9px;
font-size: 14px;
color: #fff;
border-radius: 10px 10px 0 0;
-moz-border-radius: 10px 10px 0 0;
-webkit-border-top-left-radius: 10px;
-webkit-border-top-right-radius: 10px;
border: 1px solid #3D6474;
}
h3.handle span.handle {
display: block;
min-height:20px;
padding: 4px 4px 0 0;
}
div.block h3 span.gadget_title{
min-width: 100px;
}
/* Minimize, Edit, Remove images */
span.clickable_image{
cursor: pointer;
margin-top: 5px;
display: block;
float: left;
}
#tabs li span.rename_tab_dialog_image{
background: url("icon_edit.gif") no-repeat;
padding-right: 6px;
}
#tabs li span.remove_tab_dialog_image{
background: url("icon_remove.gif") no-repeat;
padding-right: 6px;
}
a.clickable-block{
display: block;
float: right;
width: 15px;
height: 15px;
background-repeat: no-repeat;
background-position: center;
cursor: pointer;
padding: 0em;
margin: 0;
}
a.block-remove {
background-image: url(icon_remove.gif);
}
a.block-minimize {
background-image: url(icon_minimize.gif);
}
a.block-edit-form {
background-image: url(icon_edit.gif);
}
.block-hover {
border: 2px dashed #f00;
}
span.handle,
h3.handle {
cursor: move;
}
/* In edit form disable border */
div.edit-form fieldset{
border: 0px solid black;
}
div.edit-form button{
margin-top: 0.5em;
}
div.edit-form {
padding-top: 0.5em;
padding-left: 1em;
padding-bottom: 0.5em;
border: solid black;
border-width: 0 1px 1px 1px;
background-color: #BDD0F0;
overflow: auto;
width:auto;
}
/* Tabs for Knowledge Pads */
#pad-navigation-wrapper{
margin-top:10px;
border-bottom:1px solid #3D6474;
height:25px;
width:100%;
}
#tabs {
padding-left: 0em;
float: right;
width:78%;
}
#tabs ul {
margin : 0em;
padding: 0em;
width: 100%;
list-style-image: none;
list-style-position: outside;
list-style-type: none;
}
li.tab {
display: block;
font-size: 12px;
float: right;
height: 24px;
padding-right: 5px;
background-color: #BDD0F0;
cursor: pointer;
border: 1px solid #3D6474;
margin-right: 1px;
}
#tabs li span{
padding: 0px 10px;
display: block;
float: left;
height: 19px;
padding-top: 5px;
}
/* Selected tabs should be 1px higher in order to hide border at bottom */
li.tab_selected {
font-weight: bold;
background-color: #DAE6F6;
border-bottom: 1px solid #DAE6F6;
}
/* without this declaration IE will hide draggable elements!*/
.content .field{
position: static;
clear:both;
}
/* Dialogs */
div.toggable_dialog{
display: none;
left: 400px;
position: absolute;
top: 75px;
z-index: 10000;
border: 5px solid #BDD0F0;
background-color: #97B0D1;
padding: 0em 1em 0.5em 1em;
}
#add-gadgets{
cursor: pointer;
}
#add_new_tab_dialog_link{
cursor: pointer;
font-weight: bold;
background: transparent;
display: block;
float: right;
font-weight: bold;
height: 19px;
padding-top: 5px;
padding-left: 5px;
margin-left: 5px;
border-style: none;
}
#create_own_pad_dialog_link{
cursor: pointer;
background: url("images/configure.png") no-repeat !important;
display: block;
float: left;
height: 22px!important;
width:22px!important;
padding-top: 5px;
padding-left: 5px;
margin-left: 5px;
border-style: none;
}
#tabs_switcher{
cursor: pointer;
font-weight: bold;
background: transparent;
padding-top: 5px;
border-style: none;
margin: 0em;
width: 10%;
float:left
}
#add_new_gadget_link{
font-weight: bold;
height: 20px;
text-align:right;
padding-top:5px;
float:right;
width:12%;
}
/* Draggable Area */
div.draggable_wrapper{
background-color: #FFFFFF;
}
div.wait_block {
text-align: center;
padding: 2em;
}
div.box_inner_content {
background-color:#FFFFFF;
padding: 0.1em;
clear:left;
overflow: visible;
}
div.box_inner_content ol{
margin-top: 0em;
}
/* seperate gadget tables from rest of ERP5*/
div.block div.content{
padding: 0px;
}
div.block table,
div.block table tr,
div.block table tr td{
border: none;
}
/* lisbox style should be square for gadgets */
div.block ul{
list-style-type: square;
}
/*
Gadget listbox CSS
*/
div.block table.listbox .right{
float:right;
}
div.block table.listbox .left{
float:left;
}
div.block .listbox-head{
margin-left:0;
}
div.block div.listbox-head-spacer{
display:none;
}
div.block div.listbox-head-content {
/* background: none;*/
background-color: #E3EAFA;
border: none;
margin-left:0;
padding-left: 10px;
border-top-left-radius: 0;
-moz-border-top-left-radius: 0;
-webkit-border-top-left-radius: 0;
}
div.block table.listbox tr{
margin-top:2px;
}
div.block table.listbox tr.DataB {
background-color:#FFF;
}
div.block div.input{
margin-left:0em;
}
#add-stick-gadget-tool-section{
margin-bottom: 1.5em;
}
/* labels in forms inserted into a gadget should be visible
indedepndantly from fact that master form may use hiddenLabel */
div.block div.hidden_label label,
div.block div.hiddenLabel label{
display: none;
}
/*
Gadgets CSS - use to define gadget specific CSS.
*/
div.block .right{
float:right;
margin-left:5px;
}
div.block div.box_inner_content div.worklist_list ul {
list-style-image:url(bullet.png);
margin:0;
padding-bottom:0.5em;
padding-left:2em;
padding-top:0.5em;
}
div.block div.worklist_list ul li{
overflow: visible;
margin-bottom:5px;
background-color:white;
}
div.block div.worklist_list a{
color:black;
text-decoration:none;
cursor:pointer;
}
div.block div.worklist_list ul li a:hover{
text-decoration:none;
}
/* Some gadgets share same Document_getSummaryAsHTML or RssFeed_getSummaryAsHTML */
div.document-gadget-quick-preview div.teaser{
cursor: pointer;
margin-bottom: 3px;
}
div.document-gadget-quick-preview div.teaser img{
vertical-align:top;
max-width: 150px;
}
div.document-gadget-quick-preview span.document-title,
div.document-gadget-quick-preview span.modification-date{
font-size:1em;
color: #000;
}
/* Some items can be marked as read and we need a way to visualize it */
div.document-gadget-quick-preview div.read span.document-title,
div.document-gadget-quick-preview div.read span.modification-date{
color: #969696;
}
div.document-gadget-quick-preview a.document-link{
color:#000;
font-weight:bold;
}
/* Rss Feed reader gadget needs no listbox headers or
show number of records or show 'No results' as listbox title is used for this */
div.gadget-rss-reader table.listbox thead,
div.gadget-rss-reader div.listbox-number-of-records,
div.gadget-rss-reader table.listbox td.listbox-table-no-result-row,
div.gadget-rss-reader div.listbox-title{
display: none;
}
div.gadget-rss-reader-message{
font-weight:bold;
}
div.gadget-rss-reader .listbox-head-content{
height:auto;
}
div.gadget-rss-reader .listbox-body,
div.gadget-rss-reader .listbox-head{
margin-left:4px;
width:auto;
}
div.gadget-rss-reader div.read{
background-color:#ececec;
}
div.gadget-rss-reader span.modification-date{
color: #969696;
}
div.gadget-rss-reader a.document-link {
color:#000;
}
div.gadget-rss-reader a.listbox_title {
text-decoration: underline;
font-weight:bold;
}
div.rss-description{
margin-top:4px;
}
div.teaser .thumbnail-image{
margin-top:0px;
margin-right:4px;
margin-bottom:4px;
float:left;
}
div.teaser .icon {
vertical-align:middle;
}
/* RSS logo */
div.gadget-rss-reader-logo img{
float:right;
margin:4px;
width:auto;
}
div.gadget-rss-reader div.listbox-head-content {
background-color: transparent;
padding-left:0px;
}
div.gadget-rss-reader .body {
float:left;
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>rtl_erp5_knowledge_box.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RTL ERP5 knowledge box</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
import re
try:
website = context.getWebSiteValue()
except AttributeError:
website = None
if website is not None and website.isStaticLanguageSelection():
# Web Mode
root_website = website.getOriginalDocument()
default_language = root_website.getDefaultAvailableLanguage()
root_website_url = root_website.absolute_url()
website_url_pattern = r'^%s(?:%s)*(/|$)' % (
re.escape(root_website_url),
'|'.join('/' + re.escape(x) for x in root_website.getAvailableLanguageList()))
referer_url = context.REQUEST.HTTP_REFERER
if referer_url:
if select_language == default_language:
redirect_url = re.sub(website_url_pattern, root_website_url + r'\1', referer_url)
else:
redirect_url = re.sub(website_url_pattern, root_website_url + '/' + select_language + r'\1',
referer_url)
else:
if select_language == default_language:
redirect_url = root_website_url
else:
redirect_url = root_website_url + '/' + select_language
return context.REQUEST.RESPONSE.redirect(redirect_url)
else:
# ERP5 Mode
# XXX Localizer-dependent
portal = context.getPortalObject()
if select_language is None:
select_language = context.REQUEST.form["Base_doLanguage"]
if not select_language:
select_language = portal.Localizer.get_selected_language()
#context.test(select_language)
context.langauge_handler(context.Base_getUserCaption(), select_language)
portal.Localizer.changeLanguage(select_language)
<tal:block tal:replace="nothing"
xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal"
xmlns:i18n="http://xml.zope.org/namespaces/i18n">
<tal:block metal:define-macro="header_definitions">
<tal:block tal:define="
global portal here/portal_url/getPortalObject;
global portal_path portal_path | portal/absolute_url;
local_parameter_list local_parameter_list | python: {};
action_context python: portal.restrictedTraverse(request.get('object_path', '?'), here);
global actions python: here.Base_filterDuplicateActions(portal.portal_actions.listFilteredActionsFor(action_context));
global url here/absolute_url;
global current_form_id python: local_parameter_list.get('dialog_id', local_parameter_list.get('form_id', 'view'));
dummy python: request.set('current_form_id', current_form_id);
global current_url python: '%s/%s' % (url, current_form_id);
global current_action python: portal.ERP5Site_getCurrentAction(current_url, actions);
cancel_url request/cancel_url | current_url;
dummy python: local_parameter_list.update({'cancel_url': cancel_url});
dummy python: request.RESPONSE.setHeader('Content-Type', 'text/html;; charset=utf-8');
dummy python: request.set('here', here);
global css_list css_list | python:[];
dummy python:css_list.extend(['%s/%s' % (portal_path, x) for x in portal.ERP5Site_getCssRelativeUrlList()]);
css_list_template css_list_template | python:['%s/%serp5.css' % (portal_path, here.switch_style(here.Base_getUserCaption())),
'%s/%serp5_listbox.css' % (portal_path, here.switch_style(here.Base_getUserCaption())),];
dummy python:css_list.extend(css_list_template);
global js_list js_list | python:['%s/erp5_xhtml_appearance.js' % portal_path];
global js_list python: ['%s/%s' % (portal_path, x) for x in portal.ERP5Site_getJavaScriptRelativeUrlList()] + js_list;
global http_parameter_list python: portal.ERP5Site_filterParameterList(request.form);
dummy python: http_parameter_list.update(local_parameter_list);
global http_parameters python: portal.ERP5Site_renderHTTPParameterList(http_parameter_list);
global form nocall:form | nothing;
portal_preferences python: portal.portal_preferences;
global preferred_html_style_developper_mode portal_preferences/getPreferredHtmlStyleDevelopperMode;
global preferred_html_style_translator_mode portal_preferences/getPreferredHtmlStyleTranslatorMode;
global preferred_html_style_contextual_help portal_preferences/getPreferredHtmlStyleContextualHelp;
global preferred_html_style_acknowledgeable_message portal_preferences/getPreferredHtmlStyleAcknowledgeableMessage;
global developper_shortcut_render python: (preferred_html_style_developper_mode or preferred_html_style_translator_mode) and portal.developper_shortcut_render;
global selected_language portal/Localizer/get_selected_language;
" />
</tal:block>
<tal:block metal:define-macro="header_boilerplate">
<base tal:attributes="href string:${url}/" />
<meta name="description" tal:attributes="content description | title | string:ERP5 Free Open Source ERP and CRM" />
<meta name="keywords" tal:attributes="content python:', '.join(subject_list)" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<meta http-equiv="Content-Style-Type" content="text/css" />
<title
tal:define="
title title | string:ERP5;
header_title header_title | nothing;
"
tal:content="python: header_title or '%s | %s' % (title, here.getPortalObject().title_or_id())"
></title>
<link rel="icon" tal:attributes="href python: portal_path + '/favicon.ico'" type="image/x-icon" />
<link rel="shortcut icon" tal:attributes="href python: portal_path + '/favicon.ico'" type="image/x-icon" />
</tal:block>
<tal:block metal:define-macro="render_css_js">
<link
tal:repeat="css python: css_list"
tal:attributes="href python: css"
type="text/css"
rel="stylesheet"
/>
<tal:block
tal:condition="python: form is not None"
tal:repeat="field python: [field for group in form.get_groups(include_empty=0) for field in form.get_fields_in_group(group)]"
>
<style
tal:define="css python: field.render_css(REQUEST=request)"
tal:condition="python: css"
tal:content="python: css"
type="text/css"></style>
<tal:block tal:define="dummy python: js_list.extend(field.get_javascript_list(REQUEST=request))" />
</tal:block>
<tal:block
tal:define="known python: set()"
tal:repeat="js python: js_list"
><tal:block
tal:condition="python: js not in known"
><script
tal:define="dummy python: known.add(js)"
tal:attributes="src js"
type="text/javascript"
></script></tal:block></tal:block>
</tal:block>
<tal:block metal:define-macro="http_definitions">
<tal:block tal:replace="structure python: modules['ZTUtils'].make_hidden_input(**http_parameter_list)" />
</tal:block>
</tal:block>
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_function</string> </key>
<value> <string>LanguageHandler</string> </value>
</item>
<item>
<key> <string>_module</string> </key>
<value> <string>language_handler</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>langauge_handler</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Language Handler</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/*
Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.
Vincent Pelletier <vincent@nexedi.com>
Christophe Dumez <christophe@nexedi.com>
Kazuhiko <kazuhiko@nexedi.com>
This program is Free Software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
html { direction: rtl; }
input, textarea, select, button, body, div, span, fieldset {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
margin: 0;
padding: 0;
}
iframe {
width: 100%;
height: 50vh;
}
div.input > select, div.input > input, div.listbox select {
max-width:320px;
}
div.page > div.input {
width:100%;
}
option {
white-space: pre;
}
div.pre div {
background: #FFF;
}
span.pre_wrap {
white-space: pre-wrap;
}
div.pre, span.pre {
font-family: monospace;
color: black;
white-space: pre-wrap;
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
button, select, input {
vertical-align: middle;
}
button span {
background-color: transparent;
color: #000;
}
button.sort_button {
background-color: inherit;
color: inherit;
border-width: 0;
cursor: pointer;
}
button.sort_button span {
color: inherit;
text-decoration: underline;
}
img {
border: 0;
}
body, div, span, fieldset {
color: #001730;
}
div, span, fieldset {
background-color: inherit;
}
body {
background-color: #DAE6F6;
}
#main_form, /* BBB */
.main_form {
color: inherit;
}
input#hidden_button, /* BBB */
input.hidden_button {
width: 0;
height: 0;
display: inline;
border-width: 0;
float: left;
}
.hidden {
display: none;
}
textarea[readonly] {
background-color: inherit;
border: inherit;
}
a, a:visited, a:focus {
background-color: inherit;
color: #002e3f;
text-decoration: none;
}
.relationfieldlink {
text-decoration: underline;
}
a:hover {
background-color: inherit;
color: #3D6474;
text-decoration: underline;
}
p.clear,
div.clear {
height: 0;
margin: 0;
padding: 0;
clear: both;
}
div.index_html {
text-align: center;
}
div.index_html {
text-align: right !important;
}
div.index_html table {
margin: 0 auto;
text-align: right;
}
.ModuleShortcut div {
margin-left: 0.5em;
text-indent: -0.5em;
line-height: 1.1em;
margin-bottom: 0.5em;
}
#main_bar button .description, /* BBB */
.main_bar button .description,
#context_bar button .description, /* BBB */
.context_bar button .description,
.content .field .description,
.document .actions button.save .description,
#context_bar .tool_buttons a .description, /* BBB */
.context_bar .tool_buttons a .description {
display: none;
}
/* The fields set for generated hidden fields */
#hidden_fieldset, /* BBB */
.hidden_fieldset {
visibility: hidden;
border: 0;
}
/* Main bar */
#main_bar, /* BBB */
.main_bar {
color: inherit;
background-color: #97B0D1;
padding-top: 2px;
padding-bottom: 2px;
vertical-align: middle;
}
#main_bar .first, /* BBB */
.main_bar .first,
#context_bar .first, /* BBB */
.context_bar .first {
float: right;
vertical-align: middle;
}
#context_bar #jump, /* BBB */
.context_bar .jump,
#main_bar .jump, /* BBB */
.main_bar .jump {
margin-left: 10px;
}
.listbox_title_line select,
#context_bar select, /* BBB */
.context_bar select,
#main_bar select, /* BBB */
.main_bar select {
color: #596dab;
}
#main_bar .second, /* BBB */
.main_bar .second,
#context_bar .second, /* BBB */
.context_bar .second {
float: left;
vertical-align: middle;
}
#main_bar button, /* BBB */
.main_bar button,
#context_bar button, /* BBB */
.context_bar button,
.dialog_selector button,
.document .actions button.save {
border: 0;
margin-top: 1px;
margin-left: 0;
margin-right: 2px;
padding: 0;
position: relative;
cursor: pointer;
background-color: inherit;
color: inherit;
}
#context_bar .tool_buttons, /* BBB */
.context_bar .tool_buttons {
vertical-align: middle;
}
#context_bar .tool_buttons a, /* BBB */
.context_bar .tool_buttons a {
margin-top: 2px;
margin-left: 2px;
margin-right: 2px;
padding: 0;
position: relative;
}
#context_bar .tool_buttons button, /* BBB */
.context_bar .tool_buttons button {
float: right;
}
#main_bar button .image, /* BBB */
.main_bar button .image,
#context_bar button .image, /* BBB */
.context_bar button .image,
.dialog_selector button .image,
.document .actions button.save .image {
display: block;
width: 22px;
height: 22px;
background-repeat: no-repeat;
}
/* XXX: Bug fix when not logged */
.document .actions {
min-height: 2.5em;
}
.pageNavigation button {
display: inline;
border: 0 none;
background-color: inherit;
vertical-align: middle;
}
table.fake {
width: 100%;
}
table.fake tr td {
vertical-align: top;
width: 50%;
}
.content .field {
position: relative;
clear: left;
font-style: italic;
width: 100%;
}
.content .field .input {
font-style: normal;
}
.content .input .figure {
text-align: right;
}
.group_title {
display: none;
}
table.fake,
fieldset.left,
fieldset.center,
fieldset.bottom {
clear: both;
}
table.fake,
fieldset.left,
fieldset.right,
fieldset.center,
fieldset.bottom {
margin-bottom: 5px;
}
table.fake,
fieldset.left,
fieldset.right,
fieldset.center {
border-style: solid;
border-width: 1px;
border-color: #97B0D1;
padding-top: 5px;
padding-left: 5px;
padding-right: 5px;
}
fieldset.center {
padding-bottom: 5px;
}
.login fieldset {
width: 50%;
float: left;
}
fieldset.left {
width: 50%;
float: left;
margin-right: -12px; /* 5px margin *2 + 2px for left & right border width */
}
fieldset.right {
width: 50%;
float: left;
margin-left: -12px; /* 5px margin *2 + 2px for left & right border width */
}
/* BBB: don't display borders on left-group fieldsets in a formbox in any
* bordered fieldset (ie left, right or center). */
fieldset.left fieldset.left,
fieldset.right fieldset.left,
fieldset.center fieldset.left,
table.fake > tbody > tr > td > fieldset {
border-width: 0;
padding: 0;
margin: 0;
width: 100%;
float: none;
}
fieldset.center,
fieldset.bottom {
clear: both;
}
fieldset.bottom {
border-width: 0;
}
fieldset.bottom > .field > label {
display: none;
}
.login fieldset,
.dialog_box table.fake,
.dialog_box .left,
.dialog_box .right,
.dialog_box .center {
border-width: 0;
}
.content .field {
padding-bottom: 3px;
}
.content .field label {
width: 30%;
}
.content .field label,
.content .field .input {
float: right;
}
/* Exception case of the previous generic rule
The CSS statement below fix bug #517: it doesn't make sense to have
floating div in bottom field since label are hidden. */
fieldset.bottom .field .input {
float: inherit;
}
.content .field .input a img {
vertical-align: middle;
}
.content .required label {
font-weight: bold;
}
.content .field .error {
background-color: inherit;
color: #f40;
}
.content .error .input {
border: 1px solid #f40;
}
.listbox-body .error {
background-color: inherit;
color: #f40;
}
.content .invisible > label {
display: None;
}
.content .invisible > .input {
float: None;
}
a.tree_open {
background: url('images/tree_open.png') left no-repeat;
padding-left:15px;
}
a.tree_closed {
background: url('images/tree_closed.png') left no-repeat;
padding-left:15px;
}
.login .submit {
margin-left: 15%;
}
#jump, /* BBB */
span.jump,
#action, /* BBB */
span.action,
#favourites, /* BBB */
span.favourites,
#modules, /* BBB */
span.modules,
#language, /* BBB */
span.language,
#search, /* BBB */
span.search {
float: right;
}
#favourites button .image, /* BBB */
span.favourites button .image {
background-image: url('images/favourite.png');
}
#modules button .image, /* BBB */
span.modules button .image {
background-image: url('images/appearance.png');
}
#language button .image, /* BBB */
span.language button .image {
background-image: url('images/language.png');
}
.quick_search_field { color: #777777; }
.quick_search_field:focus { color: #000000; }
#search button .image, /* BBB */
span.search button .image {
background-image: url('images/search.png');
}
#status, /* BBB */
.status,
#master, /* BBB */
.master {
padding-left: .5em;
padding-right: .5em;
}
#status, /* BBB */
.status {
padding-top: .3em;
padding-bottom: .4em;
direction: rtl;
}
/* Context bar */
#context_bar, /* BBB */
.context_bar {
padding-top: 2px;
padding-bottom: 2px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #97B0D1;
background-color: #BDD0F0;
color: inherit;
vertical-align: middle;
}
#context_bar .tool_buttons a, /* BBB */
.context_bar .tool_buttons a {
float: right;
margin-left: 2px;
margin-right: 2px;
}
.separator {
height: 24px;
width: 2px;
margin-left: 6px;
margin-right: 6px;
display: block;
float: right;
}
#main_bar .separator, /* BBB */
.main_bar .separator {
background-image: url('images/sepafon.png');
}
#context_bar .separator, /* BBB */
.context_bar .separator {
background-image: url('images/sepacla.png');
}
#context_bar .tool_buttons a .image, /* BBB */
.context_bar .tool_buttons a .image,
#context_bar .tool_buttons button .image, /* BBB */
.context_bar .tool_buttons button .image,
#context_bar .tool_buttons a img, /* BBB */
.context_bar .tool_buttons a img {
width: 22px;
height: 22px;
margin: 0;
padding: 0;
display: block;
background-repeat: no-repeat;
}
#context_bar #jump button .image, /* BBB */
.context_bar .jump button .image {
background-image: url('images/jump22.png');
}
#context_bar #action button .image, /* BBB */
.context_bar .action button .image {
background-image: url('images/exec.png');
}
#context_bar .tool_buttons .list_mode .image, /* BBB */
.context_bar .tool_buttons .list_mode .image {
background-image: url('images/text_block.png');
}
#context_bar .tool_buttons .new .image, /* BBB */
.context_bar .tool_buttons .new .image {
background-image: url('images/filenew.png');
}
#context_bar .tool_buttons .clone .image, /* BBB */
.context_bar .tool_buttons .clone .image {
background-image: url('images/fileclone.png');
}
#context_bar .tool_buttons .jump_first .image, /* BBB */
.context_bar .tool_buttons .jump_first .image {
background-image: url('images/2leftarrowb.png');
}
#context_bar .tool_buttons .jump_previous .image, /* BBB */
.context_bar .tool_buttons .jump_previous .image {
background-image: url('images/1leftarrowb.png');
}
#context_bar .tool_buttons .jump_next .image, /* BBB */
.context_bar .tool_buttons .jump_next .image {
background-image: url('images/1rightarrowb.png');
}
#context_bar .tool_buttons .jump_last .image, /* BBB */
.context_bar .tool_buttons .jump_last .image {
background-image: url('images/2rightarrowb.png');
}
#context_bar .tool_buttons .import_export .image, /* BBB */
.context_bar .tool_buttons .import_export .image {
background-image: url('images/imp-exp.png');
}
#context_bar .tool_buttons .jump_help .image, /* BBB */
.context_bar .tool_buttons .jump_help .image {
background-image: url('images/userhelp.png');
}
#context_bar .tool_buttons .find .image, /* BBB */
.context_bar .tool_buttons .find .image {
background-image: url('images/find.png');
}
#context_bar .tool_buttons .print .image, /* BBB */
.context_bar .tool_buttons .print .image {
background-image: url('images/print.png');
}
#context_bar .tool_buttons .report .image, /* BBB */
.context_bar .tool_buttons .report .image {
background-image: url('images/report.png');
}
#context_bar .tool_buttons .fast_input .image, /* BBB */
.context_bar .tool_buttons .fast_input .image {
background-image: url('images/fast_input.png');
}
#context_bar .tool_buttons .cut .image, /* BBB */
.context_bar .tool_buttons .cut .image {
background-image: url('images/editcut.png');
}
#context_bar .tool_buttons .copy .image, /* BBB */
.context_bar .tool_buttons .copy .image {
background-image: url('images/editcopy.png');
}
#context_bar .tool_buttons .paste .image, /* BBB */
.context_bar .tool_buttons .paste .image {
background-image: url('images/editpaste.png');
}
#context_bar .tool_buttons .delete .image, /* BBB */
.context_bar .tool_buttons .delete .image {
background-image: url('images/editdelete.png');
}
#context_bar .tool_buttons .show_all .image, /* BBB */
.context_bar .tool_buttons .show_all .image {
background-image: url('images/showall.png');
}
#context_bar .tool_buttons .filter .image, /* BBB */
.context_bar .tool_buttons .filter .image {
background-image: url('images/filter.png');
}
#context_bar .tool_buttons .filter_on .image, /* BBB */
.context_bar .tool_buttons .filter_on .image {
background-image: url('images/filter_on.png');
}
#context_bar .tool_buttons .sort .image, /* BBB */
.context_bar .tool_buttons .sort .image {
background-image: url('images/sort.png');
}
#context_bar .tool_buttons .configure .image, /* BBB */
.context_bar .tool_buttons .configure .image {
background-image: url('images/configure.png');
}
#context_bar .tool_buttons .activity_pending .image, /* BBB */
.context_bar .tool_buttons .activity_pending .image {
width: 26px;
background-image: url('images/activity_busy.png');
}
#context_bar .tool_buttons .inspect_object .image, /* BBB */
.context_bar .tool_buttons .inspect_object .image {
background-image: url('images/inspect.png');
}
/* Status */
#breadcrumb, /* BBB */
.breadcrumb {
float: right;
/* font-size: 90%; */
margin-bottom: 5px;
}
#breadcrumb a, /* BBB */
.breadcrumb a {
color: #002e3f;
}
#logged_in_as, /* BBB */
.logged_in_as {
float: left;
}
#logged_in_as .logged_txt, /* BBB */
.logged_in_as .logged_txt{
color: #002e3f;
/* font-size: 90%; */
}
#transition_message, /* BBB */
.transition_message {
margin-left: 1em;
color: #f40;
background-color: inherit;
font-weight: bold;
}
#information_area, /* BBB */
.information_area {
margin-top: 1em;
padding:0.5em 1em 0.5em 1em;
border-width: 1px;
border-style: solid;
border-color: #3D5474;
color: orange;
background-color: #E3EAFA;
font-weight: bold;
}
/* Content */
.dialog_box {
color: inherit;
background-color: #BDD0F0;
border-width: 1px;
border-style: solid;
border-color: #3D5474;
padding: .5em;
margin-bottom: 1em;
}
.list_dialog {
margin-bottom: .5em;
}
.dialog_selector button .description {
display: none;
}
.dialog_selector button .image {
background-image: url('images/exec16.png');
}
.document .actions {
position: relative;
float: left;
width: 100%;
margin: 0;
padding: 0;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #3D6474;
color: #002e3f;
}
.document .actions button.save {
float: left;
}
.document .actions button.save span.image {
width: 48px;
height: 50px;
background-image: url('images/save2.png');
}
.document .actions ul {
float: right;
list-style: none;
padding: 0;
margin: 0;
margin-left: 50px;
position: absolute;
bottom: -1px;
}
.document .actions li {
float: right;
border: 1px solid #3D6474;
border-bottom-color: transparent;
border-radius: 10px 10px 0 0;
-moz-border-radius: 10px 10px 0 0;
-webkit-border-top-left-radius: 10px;
-webkit-border-top-right-radius: 10px;
}
.document .actions li.selected {
border-bottom-color: #DAE6F6;
}
.document .actions li a {
display: block;
color: inherit;
margin: 0;
padding: 0 0 0 9px;
line-height: 1.2em;
}
.document .actions li a span {
display: block;
padding: 4px 9px 4px 0;
color: inherit;
background-color: inherit;
/* font-size: 90%; */
}
.document .actions li.selected a span {
font-weight: bold;
padding-bottom: 4px;
}
.document .actions li a:hover {
text-decoration: none;
}
.document .content {
clear: both;
border-width: 1px;
border-style: solid;
border-color: #3D6474;
border-top: 0 none;
color: inherit;
background-color: #E3EAFA;
padding: 5px;
}
/* Search results list
------------------------------------------------*/
div#main_content.list_mode, /* BBB */
div.main_content.list_mode {
font-size:0.7em;
line-height:1.5em;
}
div.search.result .resultList .listbox tr.DataA,
div.search.result .resultList .listbox tr.DataB {
background-color: white;
}
div.search.result .resultList .listbox td {
padding: 0.5em 0;
}
div.search.result .resultList p {margin-bottom: 0}
div.search.result .resultList h3 {
font-size: 120%;
font-weight: normal;
margin-bottom: 1em;
}
div.search.result .resultList ul.pages li a {
padding: .1em .3em;
border: 1px solid transparent;
}
div.search.result .resultList ul.pages li a:hover {
border: 1px solid #dedade;
background: #eee;
}
div.search.result .resultList a .search_result_title {
font-weight: bold;
font-size: 120%;
}
div.search.result .resultList .search_result_portal_type:before {
content: "[";
}
div.search.result .resultList .search_result_portal_type:after {
content: "]";
}
div.search.result .resultList table.listbox caption {
font-weight: bold;
text-align: left;
}
div.search.result .resultList table.listbox td {
vertical-align: middle;
border: transparent;
margin:0;
}
div.search.result .resultList table.listbox td ul {list-style: none}
div.search.result .resultList table.listbox td ul li {margin: 0}
div.search.result .resultList table.listbox td blockquote {
border: 1px solid #e6e2e6;
border-top-color: #000;
margin: .5em 0 2em;
padding: 1em;
background: #eee;
}
div.search.result .resultList {
padding: 1em;
padding-top: 0em;
padding-bottom: 1em;
padding-left: 0em;
padding-right: 0em;
}
div.search.result div.searchBar {
margin-bottom: 2em;
}
div.searchResultHeader #style_toggle_icon,
table.listbox.table #style_toggle_icon {
padding:0;
border: 0px;
border-color:red;
margin:0;
vertical-align:bottom;
}
div.search .centeredInner {
text-align: center;
}
.searchDetails em {
font-style:normal;
font-weight:bold;
}
div.search .searchPages a{
text-decoration: underline;
}
div.search .searchPages .selected{
color: #CB0D00;
font-weight:bold;
text-decoration: none;
}
/* MatrixBox */
.MatrixContent {
color: #000;
background-color: #E3EAFA;
padding-left: 1px;
}
.MatrixContent table {
width: 100%;
border-collapse: collapse;
border-color: #3D6474;
border-style: solid;
border-top-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-right-width: 1px;
}
.MatrixContent tr.matrixbox_label_line {
vertical-align: middle;
border-color: #3D6474;
border-style: solid;
border-bottom-width: 1px;
border-top-width: 0;
border-left-width: 0;
border-right-width: 0;
}
.MatrixContent td.matrixbox_label_column {
white-space: nowrap;
}
.MatrixContent tr.DataA {
color: inherit;
background-color: #FFF;
}
.MatrixContent tr.DataB {
color: inherit;
background-color: #DAE6F6;
}
.MatrixContent tr.DataA:hover,
.MatrixContent tr.DataB:hover {
color: inherit;
background-color: #BDD0F0;
}
.MatrixContent td {
border-color: #3D6474;
border-style: solid;
border-top-width: 0;
border-bottom-width: 0;
border-left-width: 1px;
border-right-width: 1px;
padding-left: 1px;
padding-right: 1px;
}
.MatrixContent .error {
color: #F00;
}
.MatrixContent td.footer {
width: 100pt;
}
/* Web Page White Background */
.document div.page {
background-color: white;
}
.document div.page div {
color: black;
}
/* Listbox missing search criterion table row*/
.listbox_missing_search_criterion {
background-color: white;
}
.listbox_missing_search_criterion td{
text-align: center!important;
}
.hidden_label > label {
display:none;
}
/* DMS PDF navigation
XXX: probably part of erp5_dms.bt5 */
div.pdf-preview-navigation img{
width: 22px;
height: 22px;
margin-right: 1px;
background-repeat: no-repeat;
vertical-align: middle;
}
div.pdf-preview-navigation img.shaded{
opacity: 0.2;
}
div.pdf-preview-navigation img.first{
background-image:url("images/2leftarrowb.png");
}
div.pdf-preview-navigation img.previous{
background-image:url("images/1leftarrowb.png");
}
div.pdf-preview-navigation img.next{
background-image:url("images/1rightarrowb.png");
}
div.pdf-preview-navigation img.last{
background-image:url("images/2rightarrowb.png");
}
.horizontal_align_form_box > div.input {
float: right;
width: 70%; /* because label width is 30%*/
}
.horizontal_align_form_box > div.input > fieldset > div.field {
clear: none;
float: right;
width: auto;
}
.horizontal_align_form_box > div.input > fieldset > div.field > label {
width: auto;
padding-top: 2px;
}
.captchas_dot_net {
border: none;
vertical-align: bottom
}
@media print {
.bars {
display: none;
}
.status {
display: none;
}
.actions {
display: none;
}
}
fieldset > div.large-gadget {
height: 85vh;
}
a.zocial {
margin-top: 10px;
}
.access_tab_table td > div {
float: right !important;
}
.access_tab_table td > div > ul {
padding-right: 10px !important;
padding-left: 0 !important;
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>rtl_erp5.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RTL Style</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/*
Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.
Ivan Tyagov <ivan@nexedi.com>
This program is Free Software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
/* Search popup fix*/
div.search_popup{
left:200px;
position:absolute;
top:-120px;
width:250px;
}
div.listbox-container{
width: 100%;
height: auto;
float:left;
margin-bottom:5px;
}
div.listbox-body{
float:left;
width: 100%;
}
div.listbox-tree{
margin-right: 0.1%;
max-width: 10%;
float: left;
}
div.listbox-content{
float:left;
width:100%;
}
div.maximal-width{
width:100%;
}
div.float-right{
float:right;
}
div.listbox-content-fixed-width{
width:89%;
}
table.listbox td.listbox-table-no-result-row{
background-color:#DAE6F6;
color:#001730;
border: 1px solid #3D6474;
text-align:center;
}
table.listbox tr.listbox-stat-line{
background-color:#C1DAEB;
color:#001730;
border-top: 1px solid #3D6474;
}
table.listbox tr.listbox-search-line {
background-color: #DAE6F6;
}
div.listbox-head{
color:#9D968D;
}
div.listbox-head-spacer{
display: none;
}
div.listbox-head-content{
border-right:1px solid #3D6474;
border-top:1px solid #3D6474;
border-left:1px solid #3D6474;
border-top-left-radius: 10px;
-moz-border-top-left-radius: 10px;
-webkit-border-top-left-radius: 10px;
height:25px;
padding-left:10px;
padding-top:10px;
padding-right: 5px;
width:auto;
background-color: #e3eafa;
}
div.listbox-head div.listbox-head-title{
float: right;
width:auto;
}
div.listbox-head div.listbox-head-navigation{
float: left;
width:auto;
}
div.listbox-head div.listbox-head-results{
float: right;
width: auto;
clear: right;
text-align:right;
}
div.listbox-tree-mode-selection{
height: 22px;
width: auto;
float: left;
}
div.listbox-tree-mode-selection input{
width: auto;
}
th.listbox-table-report-tree-selection-cell{
width: 50px;
}
/* Listbox header */
div.listbox-header-box{
width: auto;
float: right;
padding-left: 5px;
}
table.listbox tr.listbox-label-line th.listbox-table-header-cell span.listbox-table-header-column-title{
float: right;
}
/* Listbox Footer */
div.listbox-footer{
float:left;
width:100%;
text-align: center;
background-color: #BDD0F0;
margin-left:-1px;
}
div.listbox-footer-box{
margin-top:3px;
margin-bottom:3px;
}
/* Listbox Footer in gadget mode */
div.block div.listbox-footer{
background-color: transparent;
}
div.block div.listbox-head-content{
font-size: 90%;
}
div.listbox-title,
div.listbox-number-of-records{
padding-top: 5px;
}
/* List style selection */
div.listbox-list-style-selection {
padding-top:1px;
padding-left: 5px;
}
div.listbox-list-style-selection span{
vertical-align:-4px;
}
div.block div.listbox-list-style-selection span{
padding-left: 0px;
}
div.listbox-list-style-selection ul{
display:inline;
padding-left:0;
margin: 0;
vertical-align: -4px;
}
div.listbox-list-style-selection li{
display: inline;
margin-left: 0.1em;
}
div.listbox-list-style-selection li a{
cursor: pointer;
}
div.listbox-list-style-selection li a.selected,
.listbox-table-report-tree-selection-cell a.selected,
.listbox-table-domain-tree-cell a.selected,
.listbox-page-navigation-text a.selected,
table.listbox td.listbox-table-summary-cell {
font-weight: bold;
}
/* Domain / Report tree buttons */
button.tree-open,
button.tree-closed{
background: none;
border: none;
cursor: pointer;
padding-left: 15px;
text-align: left;
}
button.tree-open{
background: url("./images/tree_open.png") no-repeat scroll left 4px transparent;
font-weight: bold;
}
button.tree-closed{
background: url("./images/tree_closed.png") no-repeat scroll left 4px transparent;
}
/* Listbox full text search bar */
div.listbox-full-text-search {
}
div.listbox-full-text-search input{
width: 250px;
}
div.listbox-full-text-search input.button{
background-color: #97B0D1;
border: 0 none;
color:#000;
width: auto;
padding-left: 10px;
padding-right: 10px;
cursor: pointer;
}
/* Listbox Navigation */
div.listbox-page-navigation input.listbox_set_page,
div.listbox-page-navigation button.listbox_next_page,
div.listbox-page-navigation button.listbox_last_page,
div.listbox-page-navigation button.listbox_first_page,
div.listbox-page-navigation button.listbox_previous_page{
margin: 0em;
padding: 0em;
}
div.listbox-page-navigation button{
background-color:transparent;
border: none;
cursor: pointer;
}
div.listbox-page-navigation button span.image{
display:block;
height:22px;
width:22px;
background-repeat:no-repeat;
}
div.listbox-page-navigation button.listbox_first_page span.image {
background-image:url("images/2leftarrowv.png");
}
div.listbox-page-navigation button.listbox_previous_page span.image {
background-image:url("images/1leftarrowv.png");
}
div.listbox-page-navigation button.listbox_next_page span.image {
background-image:url("images/1rightarrowv.png");
}
div.listbox-page-navigation button.listbox_last_page span.image {
background-image:url("images/2rightarrowv.png");
}
div.listbox-page-navigation-slider{
min-width: 200px;
margin:auto;
padding-right: 0.5em;
float:right;
}
div.listbox-page-navigation-slider input{
max-width: 30px;
}
div.listbox-page-navigation-text{
width:100%;
float:left;
text-align:center;
}
div.listbox-page-navigation-text a{
padding-right: 1px;
color: #000;
cursor: pointer;
}
/* Report tree */
a.tree-closed {
background:transparent url('./images/tree_closed.png') no-repeat scroll left center;
padding-left:15px;
}
a.tree-open {
background:transparent url('./images/tree_open.png') no-repeat scroll left center;
padding-left:15px;
font-weight: bold;
}
div.listbox-tree select{
/* max-width:120px; */
}
/* Table Listbox elements */
table.listbox{
border-collapse:collapse;
width:100%;
border-color:#3D6474;
border-style:solid;
border-width:0 1px 1px;
margin-bottom: 0em;
}
table.listbox th,
table.listbox td {
text-align:right;
vertical-align: top;
border-color:#3D6474;
border-style:solid;
border-width:0 1px;
padding: 0em;
padding-left:1px;
padding-right:1px;
font-weight: normal;
}
table.listbox tr.listbox-label-line{
background-color:#C1DAEB;
color:#001730;
border-top: 1px solid #3D6474;
}
table.listbox tr.listbox-search-line th{
margin: 0em;
padding: 0em;
padding-left:5px;
padding-right:1px;
}
/* Select columns */
table.listbox tr.listbox-label-line th.listbox-table-select-cell,
table.listbox tr.listbox-search-line th.listbox-table-select-cell,
table.listbox tr td.listbox-table-select-cell{
width: 50px;
text-align: center;
vertical-align: middle;
padding:0;
margin:0;
}
table.listbox tr.DataA {
color: inherit;
background-color: #FFF;
}
table.listbox tr.DataB {
color: inherit;
background-color: #DAE6F6;
}
table.listbox tr.DataA:hover,
table.listbox tr.DataB:hover,
table.listbox.table tr.tbody:hover{
color: inherit;
background-color: #BDD0F0;
}
table.listbox tr.listbox-search-line th.listbox-table-filter-cell input{
width: 100%;
vertical-align:middle;
}
table.listbox input{
float:none;
}
table.listbox button.listbox-check-all,
table.listbox button.listbox-uncheck-all,
table.listbox input.listbox-select-action{
width:auto;
padding:0;
float:none;
}
.listbox-table-data-cell > .figure{
float:right;
display:block;
}
.listbox-table-data-cell > a > .figure{
float:right;
display:block;
}
.listbox-table-summary-cell > .figure{
float:right;
display:block;
}
table.listbox th button{
border-width:0;
cursor:pointer;
float: right;
padding:0 6px 0 0;
background: transparent;
}
table.listbox th button.sort-button {
text-decoration: underline;
padding: 0px;
}
table.listbox th button.sort-button:hover{
color: #FFF;
}
/* in ERP5 mode no need to have a switch for not clicked sort button */
table.listbox th button.sort-button-asc,
table.listbox th button.sort-button-desc{
background: none;
}
table.listbox th img.sort-button-desc,
table.listbox th img.sort-button-asc{
width: 13px;
height: 13px;
margin:0;
padding:0;
}
table.listbox th img.sort-button-arrow{
width: 13px;
height: 13px;
margin:0;
padding:0;
}
table.listbox th img.sort-button-desc{
background: url('images/1toparrow.png') no-repeat scroll 100% 100%;
}
table.listbox th img.sort-button-asc{
background: url('images/1bottomarrow.png') no-repeat scroll 100% 100%;
}
table.listbox th img.sort-button-asc-not-selected{
background: url('images/1toparrow.png') no-repeat scroll 100% 100%;
}
table.listbox th img.sort-button-desc-not-selected{
background: url('images/1bottomarrow.png') no-repeat scroll 100% 100%;
}
table.listbox th img.sort-button-asc-selected{
background: url('images/1toparrow_red.png') no-repeat scroll 100% 100%;
}
table.listbox th img.sort-button-desc-selected{
background: url('images/1bottomarrow_red.png') no-repeat scroll 100% 100%;
}
/* listbox table in thumbnail style
In thumbnail style we usually have only one thumbnail colum which through CSS
we show as floating box table row.
*/
table.listbox-thumbnail tbody tr{
display:block;
min-width: 128px; /* nano image width. XXX: dynamically generate. */
min-height:128px; /* nano image height. XXX: dynamically generate. */
float:left;
margin: 10px;
}
table.listbox-thumbnail tr.DataA, table.listbox-thumbnail tr.DataB,
table.listbox-thumbnail tr.DataA:hover, table.listbox-thumbnail tr.DataB:hover{
background-color: transparent; /* in thumbnail mode we don't care for hoover */
}
table.listbox-thumbnail td{
border:none;
}
/* in search mode listbox may contain top/bottom quick search inputs */
div.search-text-listbox{
text-align: center;
float:left;
height:auto;
margin-bottom:0.5em;
margin-top:0.5em;
}
div.search-text-listbox input{
width: auto;
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>rtl_erp5_listbox.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>RTL ERP5 ListBox</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
if username in context.lang_slot:
if context.lang_slot[username] == 'rtl':
return (context.lang_slot[username] + '_')
return ''
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string>username</string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>switch_style</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Switch style language</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
erp5_l10n_fa
\ No newline at end of file
language_handler
\ No newline at end of file
erp5_knowledge_pad
erp5_xhtml_style
\ No newline at end of file
erp5_rtl_support
\ No newline at end of file
1
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment