Commit 8eaf4969 authored by Julien Muchembled's avatar Julien Muchembled

BT: dummy copy to preserve history before reexporting objects in 2 files

parent eaf027b2
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>cloudooo.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
$.extend({\n
getUrlVars: function(){\n
var vars = [], hash;\n
var hashes = window.location.href.slice(window.location.href.indexOf(\'?\') + 1).split(\'&\');\n
for(var i = 0; i < hashes.length; i++)\n
{\n
hash = hashes[i].split(\'=\');\n
vars.push(hash[0]);\n
vars[hash[0]] = hash[1];\n
}\n
return vars;\n
},\n
getUrlVar: function(name){\n
return $.getUrlVars()[name];\n
}\n
});\n
\n
var checkState_call_count = 0\n
function checkState(message){\n
checkState_call_count += 1\n
var checkState_call_str = ["",".","..","..."]\n
$("#transition-message").html(message+checkState_call_str[checkState_call_count%4])\n
$.get("Document_getPropertiesAsJSON", {}, function(data, textStatus, XMLHttpRequest){\n
if (textStatus == "timeout" || textStatus == "error" || textStatus == "parsererror"){\n
$("title").html("Error during conversion");\n
$("#transition-message").html("An error occurs during the process. Please resend your file");\n
}\n
else {\n
//TextStatus is "notmodified","success"\n
json = jQuery.parseJSON( data );\n
if ((json.processing == "converted") || (json.processing == "conversion_failed") || (json.processing == "empty")){\n
$("title").html("Finish");\n
$("#transition-message").html("The conversion process is finish. You will be redirect in 3 seconds.");\n
setTimeout("$(location).attr(\'href\',\'"+json.permanent_url+"\')", 3000);\n
}\n
else {\n
if (json.processing == "process_error") {\n
$("title").html("Error during conversion");\n
$("#transition-message").html("An error occurs during the process. Please resend your file");\n
}\n
else {\n
setTimeout("checkState(\'"+message+"\')", 500);\n
}\n
}\n
}\n
});\n
}\n
\n
function createBookmark(title,url) {\n
if ($.browser.mozilla == true) {\n
window.sidebar.addPanel(title, url, "");\n
} \n
else {\n
if($.browser.msie == true) {\n
window.external.AddFavorite( url, title);\n
}\n
else {\n
alert(\'Please use CTRL + D to bookmark this website.\'); \n
}\n
}\n
}\n
\n
function generateLink(id, title, url){\n
var link_title ;\n
if ($.browser.msie == true) {\n
link_title = "Add to Favorites";\n
} else if ($.browser.mozilla == true) {\n
link_title = "Bookmark Page";\n
} else if ($.browser.opera== true) { \n
link_title = "Add Bookmark" ;\n
} else {\n
link_title = "Add to favorites";\n
}\n
\n
var link = $(id);\n
link.attr("title",link_title);\n
link.html(link_title);\n
link.attr("href","javascript:createBookmark(\\""+title+"\\",\\""+url+"\\");");\n
}\n
\n
function contentMaximise(){\n
$("#content").removeClass("twocolumns");\n
$("#sidebar").hide();\n
}\n
\n
function contentMinimise(){\n
$("#content").addClass("twocolumns");\n
$("#sidebar").show();\n
}
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>cloudooo_checkdownload.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>$(document).ready(function() {\n
checkState($("#transition-message").html());\n
});</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>cloudooo_content.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>$(document).ready(function() {\n
generateLink("a.document_bookmark",$("title").html(), $("a.document_link").attr("href"));\n
\n
$("span.headline").click(function(){\n
if ($("#content").hasClass("twocolumns"))\n
contentMaximise();\n
else\n
contentMinimise();\n
});\n
\n
$("span.headline").css("cursor","pointer");\n
\n
});</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>theme.less</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>/* ***** BEGIN LICENSE BLOCK *****\n
* Version: MPL 1.1/GPL 2.0/LGPL 2.1\n
*\n
* The contents of this file are subject to the Mozilla Public License Version\n
* 1.1 (the "License"); you may not use this file except in compliance with\n
* the License. You may obtain a copy of the License at\n
* http://www.mozilla.org/MPL/\n
*\n
* Software distributed under the License is distributed on an "AS IS" basis,\n
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\n
* for the specific language governing rights and limitations under the\n
* License.\n
*\n
* The Original Code is Bespin.\n
*\n
* The Initial Developer of the Original Code is\n
* Mozilla.\n
* Portions created by the Initial Developer are Copyright (C) 2009\n
* the Initial Developer. All Rights Reserved.\n
*\n
* Contributor(s):\n
* Bespin Team (bespin@mozilla.com)\n
*\n
* Alternatively, the contents of this file may be used under the terms of\n
* either the GNU General Public License Version 2 or later (the "GPL"), or\n
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),\n
* in which case the provisions of the GPL or the LGPL are applicable instead\n
* of those above. If you wish to allow use of your version of this file only\n
* under the terms of either the GPL or the LGPL, and not to allow others to\n
* use your version of this file under the terms of the MPL, indicate your\n
* decision by deleting the provisions above and replace them with the notice\n
* and other provisions required by the GPL or the LGPL. If you do not delete\n
* the provisions above, a recipient may use your version of this file under\n
* the terms of any one of the MPL, the GPL or the LGPL.\n
*\n
* ***** END LICENSE BLOCK ***** */\n
\n
.bespin {\n
.container {\n
font-family: @container_font;\n
font-size: @container_font_size;\n
\n
color: @container_color;\n
background: @container_bg;\n
line-height: @container_line_height;\n
\n
display: -moz-box;\n
-moz-box-orient: vertical;\n
display: -webkit-box;\n
-webkit-box-orient: vertical;\n
width: 100%;\n
height: 100%;\n
margin: 0;\n
}\n
\n
.container .north {\n
-moz-box-ordinal-group: 1;\n
-webkit-box-ordinal-group: 1;\n
}\n
\n
.container .center-container {\n
display: -moz-box;\n
-moz-box-orient: horizontal;\n
-moz-box-ordinal-group: 2;\n
-moz-box-flex: 1;\n
display: -webkit-box;\n
-webkit-box-orient: horizontal;\n
-webkit-box-ordinal-group: 2;\n
-webkit-box-flex: 1;\n
}\n
\n
.container .south {\n
-moz-box-ordinal-group: 3;\n
-webkit-box-ordinal-group: 3;\n
}\n
\n
.container .center-container .west {\n
-moz-box-ordinal-group: 1;\n
-webkit-box-ordinal-group: 1;\n
}\n
\n
.container .center-container .center {\n
-moz-box-flex: 1;\n
-moz-box-ordinal-group: 2;\n
-webkit-box-flex: 1;\n
-webkit-box-ordinal-group: 2;\n
}\n
\n
.container .center-container .east {\n
-moz-box-ordinal-group: 3;\n
-webkit-box-ordinal-group: 3;\n
}\n
\n
input, textarea {\n
display: block;\n
border: 0px;\n
width: 200px;\n
padding: 4px;\n
color: @control_color;\n
background: @control_bg;\n
border: @control_border;\n
font-size: 8pt;\n
-moz-border-radius: @control_border_radius;\n
-webkit-border-radius: @control_border_radius;\n
box-shadow:\n
rgba(255,255,255,0.3) 0px 0px 2px,\n
inset rgba(0,0,0,0.3) 0px 0px 4px;\n
-moz-box-shadow:\n
rgba(255,255,255,0.3) 0px 0px 2px,\n
inset rgba(0,0,0,0.3) 0px 0px 4px;\n
-webkit-box-shadow:\n
rgba(255,255,255,0.3) 0px 0px 2px,\n
inset rgba(0,0,0,0.3) 0px 0px 4px;\n
}\n
\n
input:focus, textarea:focus {\n
color: @control_active_color;\n
border: @control_active_border;\n
background: @control_active_bg;\n
outline: none;\n
box-shadow: opacity(@control_active_inset_color, 0.6) 0px 0px 2px,\n
inset opacity(@control_active_inset_color, 0.3) 0px 0px 6px;\n
-moz-box-shadow: opacity(@control_active_inset_color, 0.6) 0px 0px 2px,\n
inset opacity(@control_active_inset_color, 0.3) 0px 0px 6px;\n
-webkit-box-shadow: opacity(@control_active_inset_color, 0.6) 0px 0px 2px,\n
inset opacity(@control_active_inset_color, 0.3) 0px 0px 6px;\n
}\n
\n
input[type=submit], input[type=button] {\n
font-family: @button_font;\n
font-size: @button_font_size;\n
text-shadow: 1px 1px rgba(0, 0, 0, 0.4);\n
\n
padding: 8px 12px;\n
margin-left: 8px;\n
color: @button_color;\n
background: transparent -moz-linear-gradient(top, @button_bg, @button_bg2);\n
background: transparent -webkit-gradient(linear, 50% 0%, 50% 100%, from(@button_bg), to(@button_bg2));\n
\n
border: 1px solid @button_border;\n
-moz-border-radius: @control_border_radius;\n
-webkit-border-radius: @control_border_radius;\n
-moz-box-shadow:\n
inset rgba(255, 255, 255, 0.2) 0 1px 0px,\n
inset rgba(0, 0, 0, 0.2) 0 -1px 0px,\n
rgba(0, 0, 0, 0.1) 0px 1px 2px;\n
-webkit-box-shadow:\n
inset rgba(255, 255, 255, 0.2) 0 1px 0px,\n
inset rgba(0, 0, 0, 0.2) 0 -1px 0px,\n
rgba(0, 0, 0, 0.1) 0px 1px 2px;\n
box-shadow:\n
inset rgba(255, 255, 255, 0.2) 0 1px 0px,\n
inset rgba(0, 0, 0, 0.2) 0 -1px 0px,\n
rgba(0, 0, 0, 0.1) 0px 1px 2px;\n
}\n
\n
.pane {\n
font-size: @pane_font_size;\n
font-family: @pane_font;\n
border-top: 1px solid rgba(255,255,255,0.1);\n
border-left: 1px solid rgba(0, 0, 0, 0.1);\n
border-right: 1px solid rgba(0, 0, 0, 0.1);\n
border-bottom: 2px solid rgba(0, 0, 0, 0.1);\n
background-color: @pane_bg;\n
overflow: visible;\n
padding: 15px;\n
\n
color: @pane_color;\n
line-height: @pane_line_height;\n
\n
margin-bottom: 6px;\n
margin-top: 6px;\n
text-shadow: @pane_text_shadow;\n
\n
-moz-border-radius: @pane_border_radius;\n
-webkit-border-radius: @pane_border_radius;\n
-moz-box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 2px;\n
-webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 1px 2px;\n
\n
a {\n
color: @pane_a_color;\n
}\n
\n
h1 {\n
font-family: @pane_h1_font;\n
font-size: @pane_h1_font_size;\n
color: @pane_h1_color;\n
\n
letter-spacing: -1.25px;\n
line-height: 1.0;\n
margin-top: 0px;\n
margin-left: 10px;\n
margin-bottom: 25px;\n
margin-top: 10px;\n
text-shadow: @pane_text_shadow;\n
}\n
\n
p {\n
margin-left: 10px;\n
}\n
}\n
\n
\n
.form {\n
font-family: @form_font;\n
font-size: @form_font_size;\n
line-height: @form_line_height;\n
color: @form_color;\n
text-shadow: @form_text_shadow;\n
\n
fieldset, p {\n
color: @form_color;\n
margin-bottom: 6px;\n
margin-top: 6px;\n
text-shadow: form_text_shadow;\n
}\n
}\n
\n
/*\n
* The state classes are a little bit complex, because of the doubble class bug in IE6\n
* The state class looks like this:\n
*\n
* .ui-radio-state[-checked][-disabled][-hover] or .ui-checkbox-state[-checked][-disabled][-hover]\n
*\n
* Examples:\n
*\n
* .ui-radio-state-checked (simply checked)\n
* .ui-radio-state-checked-hover (checked and hovered/focused)\n
* .ui-radio-state-hover (unchecked and hovered/focused)\n
*\n
* If you don´t have to deal with the doubble class bug of IE6 you can also use the simple ui-checkbox-checked, ui-checkbox-disabled, ui-checkbox-hover state-classnames (or: ui-radio-checked...)\n
* and the ui-radio/ui-checkbox role-classnames.\n
*\n
*/\n
\n
span.ui-checkbox,\n
span.ui-radio {\n
display: block;\n
float: left;\n
width: 24px;\n
height: 24px;\n
background: url(images/radio-unselected.png) no-repeat;\n
}\n
\n
span.ui-checkbox {\n
background: url(images/check-unselected.png) no-repeat;\n
}\n
\n
span.ui-helper-hidden {\n
display: none;\n
}\n
\n
span.ui-checkbox-state-checked,\n
span.ui-checkbox-state-checked-hover {\n
background: url(images/check-selected.png) no-repeat;\n
}\n
\n
span.ui-radio-state-checked,\n
span.ui-radio-state-checked-hover {\n
background: url(images/radio-selected.png) no-repeat;\n
}\n
\n
.ui-helper-hidden-accessible {\n
position: absolute;\n
left: -999em;\n
}\n
}\n
\n
</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>code_mirror_support</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<script type="text/javascript" src="&dtml-portal_url;/codemirror/lib/codemirror.js"></script>\n
<link rel="stylesheet" href="&dtml-portal_url;/codemirror/lib/codemirror.css">\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/mode/&dtml-mode;/&dtml-mode;.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/cm_edit/matchbrackets.js"></script>\n
\n
<!-- Trailing spaces -->\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/cm_edit/trailingspace.js"></script>\n
<style type="text/css">\n
.cm-trailingspace {\n
background-color: gray;\n
}\n
</style>\n
\n
<!-- Search addons -->\n
<link rel="stylesheet" href="&dtml-portal_url;/codemirror/addon/dialog/dialog.css">\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/dialog/dialog.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/search/searchcursor.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/search/search.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/search/jump-to-line.js"></script>\n
\n
<!-- Python autocomplete (Ctrl-Space, see below)\n
TODO-arnau: Add ERP5 autocompletion?\n
-->\n
<link rel="stylesheet" href="&dtml-portal_url;/codemirror/addon/hint/show-hint.css">\n
<script src="&dtml-portal_url;/codemirror/addon/hint/show-hint.js"></script>\n
<script src="&dtml-portal_url;/codemirror/addon/hint/anyword-hint.js"></script>\n
\n
<!-- Code folding -->\n
<link rel="stylesheet" href="&dtml-portal_url;/codemirror/addon/fold/foldgutter.css">\n
<script src="&dtml-portal_url;/codemirror/addon/fold/foldcode.js"></script>\n
<script src="&dtml-portal_url;/codemirror/addon/fold/foldgutter.js"></script>\n
<script src="&dtml-portal_url;/codemirror/addon/fold/indent-fold.js"></script>\n
<script src="&dtml-portal_url;/codemirror/addon/fold/comment-fold.js"></script>\n
\n
<!-- Merge -->\n
<link rel="stylesheet" href="&dtml-portal_url;/codemirror/addon/merge/merge.css">\n
<script type="text/javascript" src="&dtml-portal_url;/diff_match_patch/javascript/diff_match_patch_uncompressed.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/merge/merge.js"></script>\n
\n
<!-- Linter -->\n
<link rel="stylesheet" href="&dtml-portal_url;/codemirror/addon/lint/lint.css">\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/lint/lint.js"></script>\n
\n
<dtml-if expr="mode == \'javascript\'">\n
<script type="text/javascript" src="&dtml-portal_url;/jshint.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/lint/javascript-lint.js"></script>\n
<dtml-elif expr="mode == \'css\'">\n
<script type="text/javascript" src="&dtml-portal_url;/csslint.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/addon/lint/css-lint.js"></script>\n
<dtml-elif expr="mode == \'htmlmixed\'">\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/mode/xml/xml.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/mode/javascript/javascript.js"></script>\n
<script type="text/javascript" src="&dtml-portal_url;/codemirror/mode/css/css.js"></script>\n
</dtml-if>\n
\n
<style type="text/css">\n
.maximize_fullscreen_message {\n
display: table;\n
position: absolute;\n
bottom: 0;\n
right: 20px;\n
max-width: 40%;\n
z-index: 424242;\n
padding: 10px;\n
background-color: #DAE6F6;\n
border: 1px solid #97B0D1;\n
opacity: 0.3;\n
cursor: pointer;\n
font-weight: bold;\n
}\n
\n
.maximize_fullscreen_error_message {\n
background-color: red;\n
}\n
\n
.maximize_fullscreen_message > div {\n
font-size: 14px;\n
display: table-cell;\n
vertical-align: middle;\n
}\n
\n
#maximize_message {\n
display: block !important;\n
position: absolute !important;\n
bottom: 0 !important;\n
right: 0px !important;\n
z-index: 4243 !important;\n
padding: 10px;\n
font-size: 16px;\n
font-weight: bold;\n
background-color: black;\n
color: white;\n
}\n
\n
.maximize {\n
position: fixed;\n
right: 0;\n
bottom: 0;\n
top: 0 !important;\n
left: 0 !important;\n
z-index: 2 !important;\n
overflow: hidden !important;\n
}\n
\n
.CodeMirror pre, .CodeMirror span {\n
font-family: monospace !important;\n
}\n
\n
/* Workaround for lint icons "multiple" icons hiding "warning/errors" icons\n
because of "background-color: inherit" defined by erp5, and also to fix\n
background color of the gutter (cosmetic) */\n
.CodeMirror-lint-marker-multiple,\n
.CodeMirror-lint-marker-error,\n
.CodeMirror-lint-marker-warning,\n
.CodeMirror-gutters,\n
.CodeMirror-gutter-elt,\n
.CodeMirror-sizer {\n
background-color: transparent !important;\n
}\n
</style>\n
\n
<!-- TODO: Only supported for ZODB Components -->\n
<dtml-unless bound_names>\n
<input type="button" value="Maximize" onclick="maximize()"\n
class="editor_action_button" />\n
<input type="button" value="Fullscreen" onclick="switchToFullScreen(cm)"\n
class="editor_action_button" />\n
\n
<div id="merge" style="height: 100%; width: 100%">\n
<div id="view" style="display: none;"></div>\n
\n
<dtml-if field_id>\n
<textarea id="&dtml-field_id;" name="&dtml-field_id;" style="display: none;"><dtml-var content html_quote></textarea>\n
</dtml-if>\n
\n
</div>\n
</dtml-unless>\n
\n
<script type="text/javascript">\n
error_element = $(\'div.input > .error\');\n
error_arr = [];\n
warning_element = $(\'div.input > .warning\');\n
warning_arr = [];\n
merge_mode_elem = null;\n
\n
maximize_mode_message = $(\'<span id="maximize_message">Press ESC to leave maximize mode</span>\');\n
\n
function getTextareaField() {\n
// When the textarea does not exist yet (eg ERP5Form EditorField)\n
<dtml-if field_id>\n
textarea = $(\'#&dtml-field_id;\');\n
<dtml-elif textarea_selector>\n
textarea = $(\'<dtml-var name="textarea_selector">\');\n
<dtml-else>\n
<dtml-raise NameError>\n
Either \'textarea_selector\' or \'field_id\' (ID of the textarea field to be\n
created) must be passed.\n
</dtml-raise>\n
</dtml-if>\n
return textarea;\n
}\n
\n
function maximizeFullscreenRemoveSaveMessage() {\n
$(\'.maximize_fullscreen_message\').remove();\n
}\n
\n
function updateErrorWarningMessageDivWithJump() {\n
if(!error_element.length && !warning_element.length)\n
return;\n
\n
function getErrorWarningMessageDictHandler(data) {\n
error_warning_dict = $.parseJSON(data);\n
\n
function fillMessageElementAndArray(list, elem, arr) {\n
$.each(list, function(i, dict) {\n
line = dict[\'line\'];\n
column = dict[\'column\'];\n
if(line != null && column != null)\n
arr.push(\'<a href="#" \' +\n
\' onclick="cm.setCursor(\' + (line - 1) + \', \' + column + \');\' +\n
\'cm.focus(); event.stopPropagation(); event.preventDefault();">\' +\n
dict[\'message\'] +\n
\'</a>\');\n
else\n
arr.push(dict[\'message\']);\n
});\n
\n
elem.html(arr.join(\'<br />\'));\n
}\n
\n
if(error_element.length) {\n
error_arr.length = 0;\n
fillMessageElementAndArray(error_warning_dict[\'error_list\'],\n
error_element, error_arr);\n
}\n
\n
if(warning_element.length) {\n
warning_arr.length = 0;\n
fillMessageElementAndArray(error_warning_dict[\'warning_list\'],\n
warning_element, warning_arr);\n
}\n
}\n
\n
$.ajax({type: \'GET\',\n
async: false,\n
url: \'Component_getErrorWarningMessageDictAsJson\',\n
success: getErrorWarningMessageDictHandler});\n
}\n
\n
// Save source code only through an AJAX request\n
function saveComponentDocument(cm, event) {\n
event.stopPropagation();\n
event.preventDefault();\n
\n
clickSaveButton(\'Base_edit\');\n
\n
/* If the save is successful, then update validation state field (requires\n
* validation_state CSS class to be set on the field) and error\n
* message (requires error CSS class to be set on the field) on the main\n
* page. If inside maximize/fullscreen mode, display an box with the\n
* result as well\n
*/\n
function successHandler(data) {\n
generateHistorySelectElement();\n
\n
transition_message = $(\'#transition_message\');\n
transition_message.css(\'opacity\', 0.0);\n
transition_message.html(data);\n
transition_message.animate({opacity: 1.0},\n
{duration: 3000, queue: false});\n
\n
var maximize_fullscreen_message = data;\n
\n
var validation_state_span = $(\'div.input > .editor_validation_state\');\n
if(validation_state_span.length) {\n
// Animate field to emphasize the change\n
function getTranslatedValidationStateTitleHandler(data) {\n
validation_state_span.css(\'opacity\', 0.0);\n
validation_state_span.html(data);\n
validation_state_span.animate({opacity: 1.0},\n
{duration: 3000, queue: false});\n
}\n
\n
$.ajax({type: \'GET\',\n
url: \'getTranslatedValidationStateTitle\',\n
success: getTranslatedValidationStateTitleHandler});\n
}\n
\n
updateErrorWarningMessageDivWithJump();\n
\n
// Animate fields to emphasize the change\n
if(error_element.length) {\n
error_element.css(\'opacity\', 0.0);\n
error_element.animate({opacity: 1.0}, {duration: 3000, queue: false});\n
}\n
\n
if(warning_element.length) {\n
warning_element.css(\'opacity\', 0.0);\n
warning_element.animate({opacity: 1.0}, {duration: 3000, queue: false});\n
}\n
\n
if(is_maximized ||\n
cm.getOption("fullScreen") ||\n
(document.fullScreenElement && document.fullScreenElement !== null) ||\n
document.mozFullScreen || document.webkitIsFullScreen) {\n
var msg_elem_classes = \'maximize_fullscreen_message\';\n
if(error_arr.length || warning_arr.length) {\n
maximize_fullscreen_message = (error_arr.join(\'<br />\') + \'<br />\' +\n
warning_arr.join(\'<br />\'));\n
\n
msg_elem_classes += \' maximize_fullscreen_error_message\';\n
}\n
\n
// Clear previous saving message if any\n
maximizeFullscreenRemoveSaveMessage();\n
\n
msg_elem = $(\'<div class="\' + msg_elem_classes + \'"\' +\n
\'<div>\' + maximize_fullscreen_message + \'</div></div>\');\n
\n
$(\'body\').prepend(msg_elem);\n
\n
function animateMessageComplete() {\n
if(!error_arr.length && !warning_arr.length)\n
$(this).remove();\n
else\n
$(this).bind(\'click\', function() { $(this).remove() });\n
}\n
msg_elem.animate({opacity: 1.0}, 3000, animateMessageComplete);\n
}\n
}\n
\n
function errorHandler(data, textStatus) {\n
alert(\'Saving failed: \' + textStatus);\n
}\n
\n
if(merge_mode_elem)\n
// TODO: Hack, \'cm\' should work!\n
getTextareaField().val(merge_mode_elem.edit.getValue());\n
else\n
cm.save();\n
\n
var edit_data = $(\'form#main_form\').serialize();\n
edit_data += \'&message_only:int=1\';\n
$.ajax({type: \'POST\',\n
url: \'Base_edit\',\n
data: edit_data,\n
success: successHandler,\n
error: errorHandler});\n
\n
return false;\n
}\n
\n
function saveZMIDocument(cm, event) {\n
$(\'input[value="Save Changes"]\').click();\n
return false;\n
}\n
\n
if($(\'input[value="Save Changes"]\').length)\n
saveDocument = saveZMIDocument;\n
else\n
saveDocument = saveComponentDocument;\n
\n
function switchToFullScreen(cm) {\n
element = $(\'#merge\')[0];\n
$(cm.getWrapperElement()).css(\'height\', \'100%\');\n
if((document.fullScreenElement &&\n
document.fullScreenElement !== null) ||\n
(!document.mozFullScreen && !document.webkitIsFullScreen)) {\n
if (element.requestFullScreen) {\n
element.requestFullScreen();\n
}\n
else if(element.mozRequestFullScreen) {\n
element.mozRequestFullScreen();\n
}\n
else if(element.webkitRequestFullScreen) {\n
element.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT);\n
}\n
\n
cm.refresh();\n
}\n
}\n
\n
is_maximized = false;\n
function maximize() {\n
document.documentElement.style.overflow = "hidden";\n
$("#merge").addClass(\'maximize\');\n
\n
if(merge_mode_elem) {\n
$("#view").height("100%");\n
\n
cm_merge_height = $(\'.CodeMirror-merge\').height();\n
$(\'.CodeMirror-merge\').height("100%");\n
\n
cm_merge_pane_height = $(\'.CodeMirror-merge-pane\').height();\n
$(\'.CodeMirror-merge-pane\').height("100%");\n
\n
cm_height = merge_mode_elem.edit.getWrapperElement().style.height;\n
merge_mode_elem.edit.getWrapperElement().style.height = "100%";\n
merge_mode_elem.right.orig.getWrapperElement().style.height = "100%";\n
\n
// $("#view").height("100%")\n
\n
merge_mode_elem.edit.refresh();\n
merge_mode_elem.right.orig.refresh();\n
merge_mode_elem.edit.focus();\n
}\n
else {\n
wrap = cm.getWrapperElement();\n
cm_height = wrap.style.height;\n
wrap.style.height = "100%";\n
cm.refresh();\n
cm.focus();\n
}\n
\n
$("body").keyup(\n
function(event) {\n
if(is_maximized && event.keyCode == 27) {\n
event.stopPropagation();\n
event.preventDefault();\n
\n
document.documentElement.style.overflow = "";\n
$("#merge").removeClass(\'maximize\');\n
\n
if(merge_mode_elem) {\n
$(\'.CodeMirror-merge\').height(cm_merge_height);\n
$(\'.CodeMirror-merge-pane\').height(cm_merge_pane_height);\n
$("#view").height("auto");\n
\n
merge_mode_elem.edit.getWrapperElement().style.height = cm_height;\n
merge_mode_elem.right.orig.getWrapperElement().style.height = cm_height;\n
\n
merge_mode_elem.edit.refresh();\n
merge_mode_elem.right.orig.refresh();\n
\n
merge_mode_elem.edit.focus();\n
}\n
else {\n
cm.getWrapperElement().style.height = cm_height;\n
cm.refresh();\n
cm.focus();\n
}\n
\n
is_maximized = false;\n
maximizeFullscreenRemoveSaveMessage();\n
return false;\n
}\n
});\n
\n
$(\'body\').prepend(maximize_mode_message);\n
maximize_mode_message.css(\'opacity\', 1.0);\n
maximize_mode_message.animate({opacity: 0.25}, 1500,\n
function() { $(this).remove(); });\n
\n
is_maximized = true;\n
}\n
\n
var update_check_text = undefined,\n
update_check_running = false;\n
function checkPythonSourceCode(text, updateLinting, options, cm) {\n
update_check_text = text;\n
checker_parameters = {code: text};\n
<dtml-if bound_names>\n
checker_parameters[\'bound_names\'] = <dtml-var name="bound_names">;\n
checker_parameters[\'params\'] = $(\'input[name="params"]\').val();\n
</dtml-if>\n
if (update_check_running === false) {\n
update_check_running = true;\n
$.post(\n
\'&dtml-portal_url;/ERP5Site_checkPythonSourceCodeAsJSON\',\n
{\'data\': JSON.stringify(checker_parameters)},\n
function(data){\n
var messages = data.annotations;\n
var found = [];\n
update_check_running = false;\n
for(var i = 0; i < messages.length; i++) {\n
message = messages[i];\n
found.push({\n
from: CodeMirror.Pos(message.row, message.column - 1),\n
to: CodeMirror.Pos(message.row, message.column),\n
message: message.text,\n
severity: message.type\n
});\n
}\n
\n
updateLinting(cm, found);\n
if (update_check_text !== text) {\n
checkPythonSourceCode(update_check_text, updateLinting, options, cm);\n
}\n
});\n
}\n
}\n
\n
var mode = "&dtml-mode;";\n
if ( mode === "sql" ) {\n
mode = "text/x-mariadb";\n
}\n
\n
<dtml-if expr="mode == \'python\'">\n
lint_option = {"getAnnotations": checkPythonSourceCode,\n
"async": true};\n
<dtml-elif expr="mode in (\'css\', \'javascript\')">\n
lint_option = true;\n
<dtml-else>\n
lint_option = false;\n
</dtml-if>\n
\n
// CodeMirror expects a DOM element, not a JQuery Object\n
var cm = CodeMirror.fromTextArea(\n
getTextareaField()[0],\n
{mode: mode,\n
lineNumbers: true,\n
showTrailingSpace: true,\n
tabSize: 2,\n
indentWithTabs: false,\n
matchBrackets: true,\n
extraKeys: {"Ctrl-Space": "autocomplete",\n
"Ctrl-Q": function(cm){cm.foldCode(cm.getCursor());},\n
"Tab": function(cm) {\n
// We want to insert spaces, not tab, and we also want to keep the behaviour of indenting selection.\n
if (cm.getSelection()) {\n
return cm.execCommand("defaultTab");\n
}\n
var spaces = Array(cm.getOption("indentUnit") + 1).join(" ");\n
cm.replaceSelection(spaces);\n
},\n
"Ctrl-S": function(cm){saveDocument(cm, $.Event(\'click\'))}},\n
foldGutter: true,\n
lineWrapping: true,\n
gutters: ["CodeMirror-lint-markers",\n
"CodeMirror-linenumbers",\n
"CodeMirror-foldgutter"],\n
lint: lint_option\n
});\n
//cm.foldCode(CodeMirror.Pos(8, 0));\n
var parent_height = getTextareaField()[0].parentNode.clientHeight\n
if(parent_height !== undefined && parent_height > (300 * 0.8)) {\n
cm.setSize(undefined, parent_height);\n
}\n
\n
updateErrorWarningMessageDivWithJump();\n
\n
// When hovering editor element with the mouse, seeing the title of the field is annoying...\n
$(cm.getWrapperElement()).parents(\'.field\').removeAttr(\'title\');\n
\n
if(typeof document.cancelFullScreen != \'undefined\' ||\n
(typeof document.mozFullScreenEnabled != \'undefined\' &&\n
document.mozFullScreenEnabled) ||\n
typeof document.webkitCancelFullScreen != \'undefined\') {\n
$(document).bind(\'webkitfullscreenchange mozfullscreenchange fullscreenchange\',\n
maximizeFullscreenRemoveSaveMessage);\n
}\n
\n
function displayLoadSourceCodeMessage() {\n
// TODO: Improve message\n
message = $(\'<span id="maximize_message">Loaded source code</span>\');\n
$(\'body\').prepend(message);\n
message.css(\'opacity\', 1.0);\n
message.animate({opacity: 0.25}, 1500,\n
function() { $(this).remove(); });\n
}\n
\n
function enterMerge(data) {\n
$("#view").show();\n
target = $("#view")[0];\n
target.innerHTML = "";\n
merge_mode_elem = CodeMirror.MergeView(\n
target,\n
{value: cm.getValue(),\n
orig: data,\n
highlightDifferences: true,\n
mode: mode,\n
lineNumbers: true,\n
showTrailingSpace: true,\n
matchBrackets: true,\n
extraKeys: {"Ctrl-Space": "autocomplete",\n
"Ctrl-Q": function(cm){cm.foldCode(cm.getCursor());},\n
"Ctrl-S": function(cm){saveDocument(merge_mode_elem.edit, $.Event(\'click\'))}},\n
foldGutter: true,\n
lineWrapping: true,\n
gutters: ["CodeMirror-lint-markers",\n
"CodeMirror-linenumbers",\n
"CodeMirror-foldgutter"],\n
lint: lint_option});\n
\n
$("#merge").keyup(\n
function(event) {\n
if(!is_maximized && event.keyCode == 27) {\n
event.stopPropagation();\n
event.preventDefault();\n
\n
$(\'#history_select_right\').find(\'option[value=""]\').attr("selected", true);\n
leaveMerge();\n
}\n
});\n
\n
$(cm.getWrapperElement()).hide();\n
if(is_maximized)\n
maximize();\n
}\n
\n
function leaveMerge() {\n
$("#view").hide();\n
$(cm.getWrapperElement()).show();\n
cm.refresh();\n
cm.setValue(merge_mode_elem.edit.getValue());\n
cm.save();\n
cm.focus();\n
\n
target = $("#view")[0];\n
target.innerHTML = "";\n
\n
merge_mode_elem = null;\n
\n
if(is_maximized)\n
maximize();\n
}\n
\n
function generateHistorySelectElement() {\n
function successHandler(data) {\n
container_elem = $(\'#history_select_container\');\n
if(container_elem.length == 0)\n
{\n
right_selected_value = null;\n
container_elem = $(\'<p style="margin: 0; padding: 0;" id="history_select_container"></p>\');\n
}\n
else\n
{\n
right_selected_value = $(\'#history_select_right\').val();\n
container_elem.empty();\n
}\n
\n
for(var i = 0; i < 2; i++)\n
{\n
var is_right = (i == 1);\n
if(is_right)\n
attrs = \'id="history_select_right" style="float: right"\'\n
else\n
attrs = \'id="history_select_left" style="float: left"\'\n
\n
select_revision_element = $(\n
"<select class=\'editor_action_button\' " + attrs + "></select>");\n
\n
if(is_right)\n
select_revision_element.append($("<option value=\'\'></option>"));\n
\n
$.each(\n
data,\n
function(j, d) {\n
select_revision_element.append(\n
$("<option value=\'" + d[\'key\'] + "\' " +\n
(is_right && d[\'key\'] == right_selected_value ? "selected=\'selected\'" : "")\n
+ ">" + j + ": " +\n
new Date(d[\'time\'] * 1000).toString() + " (" + d[\'user_name\'] + ")" +\n
"</option>"));\n
});\n
\n
function selectHistoryTextContent(event) {\n
function loadTextContent(data) {\n
cm.setValue(data);\n
cm.save();\n
\n
if(merge_mode_elem) {\n
merge_mode_elem.edit.setValue(data);\n
merge_mode_elem.edit.refresh();\n
merge_mode_elem.right.orig.refresh();\n
}\n
\n
displayLoadSourceCodeMessage();\n
}\n
\n
// TODO: failure\n
$.ajax({type: \'GET\',\n
async: true,\n
dataType: \'text\',\n
data: {key: this.value},\n
url: \'getTextContentHistory\',\n
success: loadTextContent});\n
}\n
\n
function selectHistoryTextContentMerge(event) {\n
function loadTextContent(data) {\n
if(merge_mode_elem) {\n
merge_mode_elem.right.orig.setValue(data);\n
merge_mode_elem.edit.refresh();\n
merge_mode_elem.right.orig.refresh();\n
}\n
else\n
enterMerge(data);\n
\n
displayLoadSourceCodeMessage();\n
}\n
\n
if(!this.value)\n
leaveMerge();\n
else\n
// TODO: failure\n
$.ajax({type: \'GET\',\n
async: true,\n
dataType: \'text\',\n
data: {key: this.value},\n
url: \'getTextContentHistory\',\n
success: loadTextContent});\n
}\n
\n
if(!is_right)\n
select_revision_element.bind(\'change\', selectHistoryTextContent);\n
else\n
select_revision_element.bind(\'change\', selectHistoryTextContentMerge);\n
\n
select_revision_element.appendTo(container_elem);\n
}\n
\n
container_elem.append($(\'<div style="clear: both;"></div>\'));\n
container_elem.prependTo($(\'#merge\'));\n
}\n
\n
$.ajax({type: \'GET\',\n
async: true,\n
dataType: \'json\',\n
url: \'Component_getTextContentHistoryRevisionDictListAsJSON\',\n
success: successHandler});\n
}\n
\n
<dtml-unless bound_names>\n
<!-- TODO: Not supported for Python Scripts yet -->\n
generateHistorySelectElement();\n
</dtml-unless>\n
</script>\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>root_http_skin_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>tabber-cookie.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/* Optional: Temporarily hide the "tabber" class so it does not "flash"\n
on the page as plain HTML. After tabber runs, the class is changed\n
to "tabberlive" and it will appear. */\n
\n
document.write(\'<style type="text/css">.tabber{display:none;}<\\/style>\');\n
\n
/*==================================================\n
Set the tabber options (must do this before including tabber.js)\n
==================================================*/\n
var tabberOptions = {\n
\n
\'cookie\':"tabber", /* Name to use for the cookie */\n
\n
\'onLoad\': function(argsObj)\n
{\n
var t = argsObj.tabber;\n
var i;\n
\n
/* Optional: Add the id of the tabber to the cookie name to allow\n
for multiple tabber interfaces on the site. If you have\n
multiple tabber interfaces (even on different pages) I suggest\n
setting a unique id on each one, to avoid having the cookie set\n
the wrong tab.\n
*/\n
if (t.id) {\n
t.cookie = t.id + t.cookie;\n
}\n
\n
/* If a cookie was previously set, restore the active tab */\n
i = parseInt(getCookie(t.cookie));\n
if (isNaN(i)) { return; }\n
t.tabShow(i);\n
},\n
\n
\'onClick\':function(argsObj)\n
{\n
var c = argsObj.tabber.cookie;\n
var i = argsObj.index;\n
setCookie(c, i);\n
}\n
};\n
\n
/*==================================================\n
Cookie functions\n
==================================================*/\n
function setCookie(name, value, expires, path, domain, secure) {\n
document.cookie= name + "=" + escape(value) +\n
((expires) ? "; expires=" + expires.toGMTString() : "") +\n
((path) ? "; path=" + path : "") +\n
((domain) ? "; domain=" + domain : "") +\n
((secure) ? "; secure" : "");\n
}\n
\n
function getCookie(name) {\n
var dc = document.cookie;\n
var prefix = name + "=";\n
var begin = dc.indexOf("; " + prefix);\n
if (begin == -1) {\n
begin = dc.indexOf(prefix);\n
if (begin != 0) return null;\n
} else {\n
begin += 2;\n
}\n
var end = document.cookie.indexOf(";", begin);\n
if (end == -1) {\n
end = dc.length;\n
}\n
return unescape(dc.substring(begin + prefix.length, end));\n
}\n
function deleteCookie(name, path, domain) {\n
if (getCookie(name)) {\n
document.cookie = name + "=" +\n
((path) ? "; path=" + path : "") +\n
((domain) ? "; domain=" + domain : "") +\n
"; expires=Thu, 01-Jan-70 00:00:01 GMT";\n
}\n
}
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>root_http_skin_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>tabber.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*==================================================\n
$Id: tabber.js,v 1.9 2006/04/27 20:51:51 pat Exp $\n
tabber.js by Patrick Fitzgerald pat@barelyfitz.com\n
\n
Documentation can be found at the following URL:\n
http://www.barelyfitz.com/projects/tabber/\n
\n
License (http://www.opensource.org/licenses/mit-license.php)\n
\n
Copyright (c) 2006 Patrick Fitzgerald\n
\n
Permission is hereby granted, free of charge, to any person\n
obtaining a copy of this software and associated documentation files\n
(the "Software"), to deal in the Software without restriction,\n
including without limitation the rights to use, copy, modify, merge,\n
publish, distribute, sublicense, and/or sell copies of the Software,\n
and to permit persons to whom the Software is furnished to do so,\n
subject to the following conditions:\n
\n
The above copyright notice and this permission notice shall be\n
included in all copies or substantial portions of the Software.\n
\n
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\n
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n
SOFTWARE.\n
==================================================*/\n
\n
function tabberObj(argsObj)\n
{\n
var arg; /* name of an argument to override */\n
\n
/* Element for the main tabber div. If you supply this in argsObj,\n
then the init() method will be called.\n
*/\n
this.div = null;\n
\n
/* Class of the main tabber div */\n
this.classMain = "tabber";\n
\n
/* Rename classMain to classMainLive after tabifying\n
(so a different style can be applied)\n
*/\n
this.classMainLive = "tabberlive";\n
\n
/* Class of each DIV that contains a tab */\n
this.classTab = "tabbertab";\n
\n
/* Class to indicate which tab should be active on startup */\n
this.classTabDefault = "tabbertabdefault";\n
\n
/* Class for the navigation UL */\n
this.classNav = "tabbernav";\n
\n
/* When a tab is to be hidden, instead of setting display=\'none\', we\n
set the class of the div to classTabHide. In your screen\n
stylesheet you should set classTabHide to display:none. In your\n
print stylesheet you should set display:block to ensure that all\n
the information is printed.\n
*/\n
this.classTabHide = "tabbertabhide";\n
\n
/* Class to set the navigation LI when the tab is active, so you can\n
use a different style on the active tab.\n
*/\n
this.classNavActive = "tabberactive";\n
\n
/* Elements that might contain the title for the tab, only used if a\n
title is not specified in the TITLE attribute of DIV classTab.\n
*/\n
this.titleElements = [\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'];\n
\n
/* Should we strip out the HTML from the innerHTML of the title elements?\n
This should usually be true.\n
*/\n
this.titleElementsStripHTML = true;\n
\n
/* If the user specified the tab names using a TITLE attribute on\n
the DIV, then the browser will display a tooltip whenever the\n
mouse is over the DIV. To prevent this tooltip, we can remove the\n
TITLE attribute after getting the tab name.\n
*/\n
this.removeTitle = true;\n
\n
/* If you want to add an id to each link set this to true */\n
this.addLinkId = false;\n
\n
/* If addIds==true, then you can set a format for the ids.\n
<tabberid> will be replaced with the id of the main tabber div.\n
<tabnumberzero> will be replaced with the tab number\n
(tab numbers starting at zero)\n
<tabnumberone> will be replaced with the tab number\n
(tab numbers starting at one)\n
<tabtitle> will be replaced by the tab title\n
(with all non-alphanumeric characters removed)\n
*/\n
this.linkIdFormat = \'<tabberid>nav<tabnumberone>\';\n
\n
/* You can override the defaults listed above by passing in an object:\n
var mytab = new tabber({property:value,property:value});\n
*/\n
for (arg in argsObj) { this[arg] = argsObj[arg]; }\n
\n
/* Create regular expressions for the class names; Note: if you\n
change the class names after a new object is created you must\n
also change these regular expressions.\n
*/\n
this.REclassMain = new RegExp(\'\\\\b\' + this.classMain + \'\\\\b\', \'gi\');\n
this.REclassMainLive = new RegExp(\'\\\\b\' + this.classMainLive + \'\\\\b\', \'gi\');\n
this.REclassTab = new RegExp(\'\\\\b\' + this.classTab + \'\\\\b\', \'gi\');\n
this.REclassTabDefault = new RegExp(\'\\\\b\' + this.classTabDefault + \'\\\\b\', \'gi\');\n
this.REclassTabHide = new RegExp(\'\\\\b\' + this.classTabHide + \'\\\\b\', \'gi\');\n
\n
/* Array of objects holding info about each tab */\n
this.tabs = new Array();\n
\n
/* If the main tabber div was specified, call init() now */\n
if (this.div) {\n
\n
this.init(this.div);\n
\n
/* We don\'t need the main div anymore, and to prevent a memory leak\n
in IE, we must remove the circular reference between the div\n
and the tabber object. */\n
this.div = null;\n
}\n
}\n
\n
\n
/*--------------------------------------------------\n
Methods for tabberObj\n
--------------------------------------------------*/\n
\n
\n
tabberObj.prototype.init = function(e)\n
{\n
/* Set up the tabber interface.\n
\n
e = element (the main containing div)\n
\n
Example:\n
init(document.getElementById(\'mytabberdiv\'))\n
*/\n
\n
var\n
childNodes, /* child nodes of the tabber div */\n
i, i2, /* loop indices */\n
t, /* object to store info about a single tab */\n
defaultTab=0, /* which tab to select by default */\n
DOM_ul, /* tabbernav list */\n
DOM_li, /* tabbernav list item */\n
DOM_a, /* tabbernav link */\n
aId, /* A unique id for DOM_a */\n
headingElement; /* searching for text to use in the tab */\n
\n
/* Verify that the browser supports DOM scripting */\n
if (!document.getElementsByTagName) { return false; }\n
\n
/* If the main DIV has an ID then save it. */\n
if (e.id) {\n
this.id = e.id;\n
}\n
\n
/* Clear the tabs array (but it should normally be empty) */\n
this.tabs.length = 0;\n
\n
/* Loop through an array of all the child nodes within our tabber element. */\n
childNodes = e.childNodes;\n
for(i=0; i < childNodes.length; i++) {\n
\n
/* Find the nodes where class="tabbertab" */\n
if(childNodes[i].className &&\n
childNodes[i].className.match(this.REclassTab)) {\n
\n
/* Create a new object to save info about this tab */\n
t = new Object();\n
\n
/* Save a pointer to the div for this tab */\n
t.div = childNodes[i];\n
\n
/* Add the new object to the array of tabs */\n
this.tabs[this.tabs.length] = t;\n
\n
/* If the class name contains classTabDefault,\n
then select this tab by default.\n
*/\n
if (childNodes[i].className.match(this.REclassTabDefault)) {\n
defaultTab = this.tabs.length-1;\n
}\n
}\n
}\n
\n
/* Create a new UL list to hold the tab headings */\n
DOM_ul = document.createElement("ul");\n
DOM_ul.className = this.classNav;\n
\n
/* Loop through each tab we found */\n
for (i=0; i < this.tabs.length; i++) {\n
\n
t = this.tabs[i];\n
\n
/* Get the label to use for this tab:\n
From the title attribute on the DIV,\n
Or from one of the this.titleElements[] elements,\n
Or use an automatically generated number.\n
*/\n
t.headingText = t.div.title;\n
\n
/* Remove the title attribute to prevent a tooltip from appearing */\n
if (this.removeTitle) { t.div.title = \'\'; }\n
\n
if (!t.headingText) {\n
\n
/* Title was not defined in the title of the DIV,\n
So try to get the title from an element within the DIV.\n
Go through the list of elements in this.titleElements\n
(typically heading elements [\'h2\',\'h3\',\'h4\'])\n
*/\n
for (i2=0; i2<this.titleElements.length; i2++) {\n
headingElement = t.div.getElementsByTagName(this.titleElements[i2])[0];\n
if (headingElement) {\n
t.headingText = headingElement.innerHTML;\n
if (this.titleElementsStripHTML) {\n
t.headingText.replace(/<br>/gi," ");\n
t.headingText = t.headingText.replace(/<[^>]+>/g,"");\n
}\n
break;\n
}\n
}\n
}\n
\n
if (!t.headingText) {\n
/* Title was not found (or is blank) so automatically generate a\n
number for the tab.\n
*/\n
t.headingText = i + 1;\n
}\n
\n
/* Create a list element for the tab */\n
DOM_li = document.createElement("li");\n
\n
/* Save a reference to this list item so we can later change it to\n
the "active" class */\n
t.li = DOM_li;\n
\n
/* Create a link to activate the tab */\n
DOM_a = document.createElement("a");\n
DOM_a.appendChild(document.createTextNode(t.headingText));\n
DOM_a.href = "javascript:void(null);";\n
DOM_a.title = t.headingText;\n
DOM_a.onclick = this.navClick;\n
\n
/* Add some properties to the link so we can identify which tab\n
was clicked. Later the navClick method will need this.\n
*/\n
DOM_a.tabber = this;\n
DOM_a.tabberIndex = i;\n
\n
/* Do we need to add an id to DOM_a? */\n
if (this.addLinkId && this.linkIdFormat) {\n
\n
/* Determine the id name */\n
aId = this.linkIdFormat;\n
aId = aId.replace(/<tabberid>/gi, this.id);\n
aId = aId.replace(/<tabnumberzero>/gi, i);\n
aId = aId.replace(/<tabnumberone>/gi, i+1);\n
aId = aId.replace(/<tabtitle>/gi, t.headingText.replace(/[^a-zA-Z0-9\\-]/gi, \'\'));\n
\n
DOM_a.id = aId;\n
}\n
\n
/* Add the link to the list element */\n
DOM_li.appendChild(DOM_a);\n
\n
/* Add the list element to the list */\n
DOM_ul.appendChild(DOM_li);\n
}\n
\n
/* Add the UL list to the beginning of the tabber div */\n
e.insertBefore(DOM_ul, e.firstChild);\n
\n
/* Make the tabber div "live" so different CSS can be applied */\n
e.className = e.className.replace(this.REclassMain, this.classMainLive);\n
\n
/* Activate the default tab, and do not call the onclick handler */\n
this.tabShow(defaultTab);\n
\n
/* If the user specified an onLoad function, call it now. */\n
if (typeof this.onLoad == \'function\') {\n
this.onLoad({tabber:this});\n
}\n
\n
return this;\n
};\n
\n
\n
tabberObj.prototype.navClick = function(event)\n
{\n
/* This method should only be called by the onClick event of an <A>\n
element, in which case we will determine which tab was clicked by\n
examining a property that we previously attached to the <A>\n
element.\n
\n
Since this was triggered from an onClick event, the variable\n
"this" refers to the <A> element that triggered the onClick\n
event (and not to the tabberObj).\n
\n
When tabberObj was initialized, we added some extra properties\n
to the <A> element, for the purpose of retrieving them now. Get\n
the tabberObj object, plus the tab number that was clicked.\n
*/\n
\n
var\n
rVal, /* Return value from the user onclick function */\n
a, /* element that triggered the onclick event */\n
self, /* the tabber object */\n
tabberIndex, /* index of the tab that triggered the event */\n
onClickArgs; /* args to send the onclick function */\n
\n
a = this;\n
if (!a.tabber) { return false; }\n
\n
self = a.tabber;\n
tabberIndex = a.tabberIndex;\n
\n
/* Remove focus from the link because it looks ugly.\n
I don\'t know if this is a good idea...\n
*/\n
a.blur();\n
\n
/* If the user specified an onClick function, call it now.\n
If the function returns false then do not continue.\n
*/\n
if (typeof self.onClick == \'function\') {\n
\n
onClickArgs = {\'tabber\':self, \'index\':tabberIndex, \'event\':event};\n
\n
/* IE uses a different way to access the event object */\n
if (!event) { onClickArgs.event = window.event; }\n
\n
rVal = self.onClick(onClickArgs);\n
if (rVal === false) { return false; }\n
}\n
\n
self.tabShow(tabberIndex);\n
\n
return false;\n
};\n
\n
\n
tabberObj.prototype.tabHideAll = function()\n
{\n
var i; /* counter */\n
\n
/* Hide all tabs and make all navigation links inactive */\n
for (i = 0; i < this.tabs.length; i++) {\n
this.tabHide(i);\n
}\n
};\n
\n
\n
tabberObj.prototype.tabHide = function(tabberIndex)\n
{\n
var div;\n
\n
if (!this.tabs[tabberIndex]) { return false; }\n
\n
/* Hide a single tab and make its navigation link inactive */\n
div = this.tabs[tabberIndex].div;\n
\n
/* Hide the tab contents by adding classTabHide to the div */\n
if (!div.className.match(this.REclassTabHide)) {\n
div.className += \' \' + this.classTabHide;\n
}\n
this.navClearActive(tabberIndex);\n
\n
return this;\n
};\n
\n
\n
tabberObj.prototype.tabShow = function(tabberIndex)\n
{\n
/* Show the tabberIndex tab and hide all the other tabs */\n
\n
var div;\n
\n
if (!this.tabs[tabberIndex]) { return false; }\n
\n
/* Hide all the tabs first */\n
this.tabHideAll();\n
\n
/* Get the div that holds this tab */\n
div = this.tabs[tabberIndex].div;\n
\n
/* Remove classTabHide from the div */\n
div.className = div.className.replace(this.REclassTabHide, \'\');\n
\n
/* Mark this tab navigation link as "active" */\n
this.navSetActive(tabberIndex);\n
\n
/* If the user specified an onTabDisplay function, call it now. */\n
if (typeof this.onTabDisplay == \'function\') {\n
this.onTabDisplay({\'tabber\':this, \'index\':tabberIndex});\n
}\n
\n
return this;\n
};\n
\n
tabberObj.prototype.navSetActive = function(tabberIndex)\n
{\n
/* Note: this method does *not* enforce the rule\n
that only one nav item can be active at a time.\n
*/\n
\n
/* Set classNavActive for the navigation list item */\n
this.tabs[tabberIndex].li.className = this.classNavActive;\n
\n
return this;\n
};\n
\n
\n
tabberObj.prototype.navClearActive = function(tabberIndex)\n
{\n
/* Note: this method does *not* enforce the rule\n
that one nav should always be active.\n
*/\n
\n
/* Remove classNavActive from the navigation list item */\n
this.tabs[tabberIndex].li.className = \'\';\n
\n
return this;\n
};\n
\n
\n
/*==================================================*/\n
\n
\n
function tabberAutomatic(tabberArgs)\n
{\n
/* This function finds all DIV elements in the document where\n
class=tabber.classMain, then converts them to use the tabber\n
interface.\n
\n
tabberArgs = an object to send to "new tabber()"\n
*/\n
var\n
tempObj, /* Temporary tabber object */\n
divs, /* Array of all divs on the page */\n
i; /* Loop index */\n
\n
if (!tabberArgs) { tabberArgs = {}; }\n
\n
/* Create a tabber object so we can get the value of classMain */\n
tempObj = new tabberObj(tabberArgs);\n
\n
/* Find all DIV elements in the document that have class=tabber */\n
\n
/* First get an array of all DIV elements and loop through them */\n
divs = document.getElementsByTagName("div");\n
for (i=0; i < divs.length; i++) {\n
/* Is this DIV the correct class? */\n
if (divs[i].className &&\n
divs[i].className.match(tempObj.REclassMain)) {\n
\n
/* Now tabify the DIV */\n
tabberArgs.div = divs[i];\n
divs[i].tabber = new tabberObj(tabberArgs);\n
}\n
}\n
\n
return this;\n
}\n
\n
\n
/*==================================================*/\n
\n
\n
function tabberAutomaticOnLoad(tabberArgs)\n
{\n
/* This function adds tabberAutomatic to the window.onload event,\n
so it will run after the document has finished loading.\n
*/\n
var oldOnLoad;\n
\n
if (!tabberArgs) { tabberArgs = {}; }\n
\n
/* Taken from: http://simon.incutio.com/archive/2004/05/26/addLoadEvent */\n
oldOnLoad = window.onload;\n
if (typeof window.onload != \'function\') {\n
window.onload = function() {\n
tabberAutomatic(tabberArgs);\n
};\n
} else {\n
window.onload = function() {\n
oldOnLoad();\n
tabberAutomatic(tabberArgs);\n
};\n
}\n
}\n
\n
\n
/*==================================================*/\n
\n
\n
/* Run tabberAutomaticOnload() unless the "manualStartup" option was specified */\n
\n
if (typeof tabberOptions == \'undefined\') {\n
\n
tabberAutomaticOnLoad();\n
\n
} else {\n
\n
if (!tabberOptions[\'manualStartup\']) {\n
tabberAutomaticOnLoad(tabberOptions);\n
}\n
\n
}\n
\n
\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>TODO</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>Change type of xml / svg stuff</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>TODO</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>Change type of xml / svg stuff</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>erp5.css</string> </value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>main_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>context_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>navigation_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_family</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_size</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_hover_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>button_description_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_label_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_odd_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_even_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_hover_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_stat_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>alternate_font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>alternate_font_color</string> </key>
<value> <string>#596dab</string> </value>
</item>
<item>
<key> <string>background_color</string> </key>
<value> <string>#DAE6F6</string> </value>
</item>
<item>
<key> <string>button_description_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>context_bar_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>dialog_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>dialog_border_color</string> </key>
<value> <string>#3D5474</string> </value>
</item>
<item>
<key> <string>document_background_color</string> </key>
<value> <string>#E3EAFA</string> </value>
</item>
<item>
<key> <string>document_border_color</string> </key>
<value> <string>#3D6474</string> </value>
</item>
<item>
<key> <string>font_color</string> </key>
<value> <string>#001730</string> </value>
</item>
<item>
<key> <string>font_family</string> </key>
<value> <string>Arial, Helvetica, sans-serif</string> </value>
</item>
<item>
<key> <string>font_size</string> </key>
<value> <string>13px</string> </value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>link_color</string> </key>
<value> <string>#002e3f</string> </value>
</item>
<item>
<key> <string>link_hover_color</string> </key>
<value> <string>#3D6474</string> </value>
</item>
<item>
<key> <string>listbox_even_background_color</string> </key>
<value> <string>#DAE6F6</string> </value>
</item>
<item>
<key> <string>listbox_hover_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>listbox_label_background_color</string> </key>
<value> <string>#C1DAEB</string> </value>
</item>
<item>
<key> <string>listbox_odd_background_color</string> </key>
<value> <string>#FFF</string> </value>
</item>
<item>
<key> <string>listbox_stat_background_color</string> </key>
<value> <string>#C1DAEB</string> </value>
</item>
<item>
<key> <string>main_border_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>navigation_bar_background_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<dtml-let hwidth="310" mwidth="43" scwidth="58" optwidth="260" affwidth="65">\n
\n
ul li:before{\n
content: "\\00BB \\0020";\n
}\n
\n
.list_dialog {\n
background-color: <dtml-var document_background_color>;\n
margin: 0px;\n
width: <dtml-var "hwidth">px;\n
}\n
\n
.options_list {\n
border-right: solid 1px;\n
border-bottom: solid 1px;\n
border-left: solid 1px;\n
border-color: #3D7474;\n
background-color: #C1DAD2;\n
padding: 0px;\n
width: <dtml-var "optwidth">px;\n
margin-left: <dtml-var "(hwidth / 2)- (optwidth / 2)">px;\n
display: none;\n
}\n
\n
.aff_options {\n
border-right: solid 1px;\n
border-top: solid 1px;\n
border-left: solid 1px;\n
border-color: #3D7474;\n
background-color: #D3E6DE;\n
padding: 0px;\n
width: <dtml-var "affwidth">px;\n
margin-left: <dtml-var "(hwidth / 2)- (affwidth / 2)">px;\n
text-align: center;\n
padding-bottom: 2px;\n
margin-top: 3px;\n
margin-bottom: 2px;\n
}\n
\n
.info {\n
color: #3D7474;\n
font-size: 13px;\n
}\n
\n
.text_div {\n
padding: 18px;\n
}\n
\n
.fieldset_login {\n
border-color: #3D7474;\n
margin: 15px;\n
}\n
\n
.login_div {\n
border-top: solid 1px;\n
border-bottom: solid 1px;\n
border-bottom-color: #3D7474;\n
border-top-color: #3D7474;\n
background-color: #C1DAD2;\n
margin-bottom: 3px;\n
}\n
\n
.login {\n
width: <dtml-var "hwidth">px;\n
background-color: #DAE6E6;\n
border: solid 1px;\n
border-color: #FFFFFF;\n
position: absolute;\n
left: 0px;\n
top: 0px;\n
}\n
\n
.window {\n
margin: 15px;\n
}\n
\n
.AnchorColumn {\n
!important\n
border-style:none;\n
border-color:<dtml-var document_border_color>;\n
background-color:<dtml-var document_background_color>;\n
border-width:0;\n
}\n
\n
.button {\n
border-Top-Width: thin;\n
border-Top-Color: #3D6464;\n
border-Right-Width: thin;\n
border-Right-Color: #3D6464;\n
border-Bottom-Width: thin;\n
border-Bottom-Color: #3D7474;\n
border-Left-Width: thin;\n
border-Left-Color: #3D7474;\n
background-Color: #C1DAD2;\n
margin: 2px;\n
color: #3D6464;\n
text-decoration: none;\n
}\n
\n
.button_save {\n
border-Top-Width: thin;\n
border-Top-Color: #3D6464;\n
border-Right-Width: thin;\n
border-Right-Color: #3D6464;\n
border-Bottom-Width: thin;\n
border-Bottom-Color: #3D7474;\n
border-Left-Width: thin;\n
border-Left-Color: #3D7474;\n
background-Color: #C1DAD2;\n
margin: 2px;\n
color: #3D6464;\n
text-decoration: none;\n
width: 100px;\n
}\n
\n
\n
.shortcuts {\n
border-top: solid 1px;\n
border-bottom: solid 1px;\n
border-color: #3D7474;\n
background-color: #C1DAD2;\n
margin-bottom: 5px;\n
/*padding-top: 10px;*/\n
}\n
\n
.div_navigation {\n
border-top: solid 1px;\n
/*border-bottom: solid 1px;*/\n
border-color: #3D7474;\n
background-color: #C1DAD2;\n
margin-bottom: 5px;\n
position: absolute;\n
right: 10px;\n
}\n
\n
.List_top {\n
padding-left: 5px;\n
padding-right: 5px;\n
border-left: solid 0px;\n
border-right: solid 0px;\n
border-color: #3D7474;\n
}\n
\n
.top_list {\n
border-left: solid 1px;\n
border-right: solid 1px;\n
border-top: solid 1px;\n
border-color: #3D7474;\n
}\n
\n
.main_div_list {\n
padding: 5px;\n
margin-top: 0px;\n
border-left: solid 1px;\n
border-right: solid 1px;\n
border-bottom: solid 1px;\n
border-color: #3D7474;\n
}\n
\n
.top1 {\n
margin-top: 5px;\n
margin-left: 10px;\n
border-top: solid 1px;\n
border-color: #3D7474;\n
width: 45px;\n
}\n
\n
.bottom1 {\n
margin-right: 10px;\n
border-bottom: solid 1px;\n
border-color: #3D7474;\n
width: 45px;\n
position: absolute;\n
right: 0px;\n
margin-bottom: 7px;\n
}\n
\n
.breadcrumb {\n
border-top: solid 1px;\n
border-bottom: solid 1px;\n
border-bottom-color: #3D7474;\n
border-top-color: #3D7474;\n
background-color: #C1DAD2;\n
}\n
\n
.erp {\n
font-size: 18px;\n
color: #3D7474;\n
text-decoration: none;\n
}\n
\n
.link_white {\n
font-size: 14px;\n
color: #FFFFFF;\n
}\n
\n
.modu {\n
font-size: 14px;\n
color: #3D7474;\n
font-style: bold;\n
text-decoration: none;\n
padding-right: 5px;\n
}\n
\n
.mobil {\n
font-size: 10px;\n
font-style: italic;\n
color: #3D7474;\n
text-decoration: none;\n
}\n
\n
.delimit_haut {\n
height: 25px;\n
border-right: solid 5px;\n
border-color: #3D7474;\n
background-color: #D3E6DE;\n
}\n
\n
.delimit_bas {\n
height: 25px;\n
border-left: solid 5px;\n
border-color: #3D7474;\n
background-color: #D3E6DE;\n
}\n
\n
.mod_badg {\n
background-color: #D3E6DE;\n
border-left: solid 1px;\n
border-right: solid 1px;\n
border-color: #3D7474;\n
padding-top: 0.5em;\n
padding-left: 10px;\n
}\n
\n
.list {\n
list-style: none;\n
}\n
\n
.option {\n
border-bottom: solid 1px;\n
border-bottom-color: #3D7474;\n
border-left: solid 1px;\n
border-left-color: #3D7474;\n
border-right: solid 1px;\n
border-right-color: #3D7474;\n
background-color: #D3E6DE;\n
padding-top: 0.5em;\n
padding-bottom: 0.5em;\n
padding-left: 10px;\n
}\n
\n
.modules {\n
border-top: solid 1px;\n
border-top-color: #3D7474;\n
border-right: solid 1px;\n
border-right-color: #3D7474;\n
border-left: solid 1px;\n
border-left-color: #3D7474;\n
padding-left: 10px;\n
background-color: #D3E6DE;\n
}\n
\n
input#hidden_button {\n
width: 0;\n
height: 0;\n
display: inline;\n
border-width: 0;\n
float: left;\n
}\n
\n
img {\n
border: transparent;\n
}\n
\n
.small {\n
font-size: 11pt;\n
}\n
\n
.infield {\n
overflow : auto;\n
}\n
\n
textarea {\n
width:100%;\n
}\n
\n
.title {\n
border-top: solid 1px;\n
border-top-color: #3D7474;\n
border-left: solid 5px;\n
border-left-color: #3D7474;\n
background-color: #D3E6DE;\n
}\n
\n
.title_list {\n
margin-left: 10px;\n
margin-right: 10px;\n
border-left: solid 5px;\n
border-left-color: #3D7474;\n
border-right: solid 5px;\n
border-right-color: #3D7474;\n
background-color: #D3E6DE;\n
margin-bottom: 5px;\n
}\n
\n
.title_index {\n
border-bottom: solid 1px;\n
border-bottom-color: #3D7474;\n
border-left: solid 1px;\n
border-right: solid 1px;\n
border-left-color: #3D7474;\n
margin-bottom: 8px;\n
border-top: solid 1px;\n
border-bottom: solid 1px;\n
border-top-color: #3D7474;\n
background-color: #C1DAD2;\n
}\n
\n
.delimitation {\n
border-top: solid 1px;\n
border-top-color: #4e9fa0;\n
}\n
\n
.group {\n
border-right: solid 5px;\n
border-right-color: #3D7474;\n
border-bottom: solid 1px;\n
border-bottom-color: #3D7474;\n
position:absolute;\n
background-color: #D3E6DE;\n
right: 0px;\n
}\n
\n
\n
.div1 {\n
background-color: #DAE6E6;\n
position:absolute;\n
left: 0px;\n
top: 0px;\n
width: <dtml-var "hwidth">px;\n
}\n
\n
.master {\n
width: <dtml-var "hwidth">px;\n
background-color: #DAE6E6;\n
position: absolute;\n
left: 0px;\n
}\n
\n
.big {\n
font-size: 13pt;\n
}\n
\n
.div2 {\n
border-top: solid 1px;\n
border-bottom: solid 1px;\n
border-bottom-color: #3D7474;\n
margin: 3px;\n
border-top-color: #3D7474;\n
background-color: #b7e8e8;\n
}\n
\n
.div4 {\n
border-top: solid 1px;\n
border-top-color: #3D7474;\n
border-bottom: solid 1px;\n
border-bottom-color: #3D7474;\n
padding-top: 2px;\n
padding-bottom: 2px;\n
background-color: #C1DAD2;\n
margin-bottom: 5px;\n
width:100%;\n
}\n
\n
.link {\n
color: #3D7474;\n
font-size: 8pt;\n
text-decoration: none;\n
}\n
\n
.link_selected {\n
color: #3C6464;\n
font-weight: bold;\n
font-size: 8pt;\n
text-decoration: underline;\n
}\n
\n
.div_short_mode, .div_normal_mode {\n
color: #3D7474;\n
font-weight: bold;\n
font-size: 8pt;\n
text-decoration: underline;\n
cursor: pointer;\n
}\n
\n
.link2 {\n
color: #3D7474;\n
font-size: 12pt;\n
text-decoration: none;\n
font-weight: bold;\n
}\n
\n
.link3 {\n
color: #3D7474;\n
font-size: 10pt;\n
text-decoration: none;\n
padding-left: 15px;\n
}\n
\n
fieldset {\n
border-color: #3D7474;\n
overflow : auto;\n
}\n
\n
.border {\n
border-color: #3D7474;\n
}\n
\n
.nomarg {\n
line-height:90%;\n
}\n
\n
.div_prev {\n
margin-top: 5px;\n
width: 95%;\n
text-align:left;\n
padding-left:5px;\n
line-height:85%;\n
margin-bottom: 10px;\n
}\n
\n
.div_next {\n
border-top: solid 1px;\n
border-top-color: #3D7474;\n
border-left: solid 1px;\n
border-left-color: #3D7474;\n
border-bottom: solid 1px;\n
border-bottom-color: #3D7474;\n
border-right: solid 1px;\n
border-right-color: #3D7474;\n
width: 70px;\n
text-align:center;\n
position: absolute;\n
padding-right: 3px;\n
padding-bottom: 3px;\n
right: 0px;\n
/*line-height: 85%;*/\n
top: 100px;\n
}\n
\n
.div_sc {\n
border: solid 1px;\n
border-color: #3D7474;\n
border-bottom: transparent;\n
background-color: #D3E6DE;\n
width:<dtml-var "scwidth">px;\n
text-align: center;\n
position: absolute;\n
top: 50px;\n
left: <dtml-var "(hwidth / 2)- (scwidth / 2)">px;\n
padding: 0px;\n
line-height:70%;\n
}\n
\n
.div_gtt {\n
border-top: solid 0px;\n
border-bottom: solid 0px;\n
border-top-color: #3D7474;\n
border-bottom-color: #3D7474;\n
border-left: solid 0px;\n
border-left-color: #3D7474;\n
border-right: solid 0px;\n
border-right-color: #3D7474;\n
background-color: #D3E6DE;\n
margin: 0px;\n
}\n
\n
.div1_list {\n
width:<dtml-var "hwidth">px;\n
background-color: #DAE6E6;\n
border-color: #FFFFFF;\n
position: absolute;\n
left: 0px;\n
top: 0px;\n
}\n
\n
/* listbox */\n
\n
.ListSummary {\n
background: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/tab_left.png\') top left no-repeat;\n
color: #000;\n
background-color: <dtml-var document_background_color>;\n
padding-left: 10px;\n
}\n
\n
.ListSummary table {\n
width: 100%;\n
padding-right: 5px;\n
padding-bottom: 2px;\n
}\n
\n
.ListSummary img {\n
display: none;\n
}\n
\n
.ListSummary #listbox_next_page,\n
.ListSummary #listbox_previous_page {\n
display: block;\n
font-size: 0;\n
width: 22px;\n
height: 22px;\n
}\n
\n
.ListContent {\n
color: #000;\n
background-color: <dtml-var document_background_color>;\n
padding-left: 1px;\n
}\n
\n
.ListContent table {\n
width: 100%;\n
}\n
\n
.ListContent #listbox_label_line {\n
color: <dtml-var font_color>;\n
background-color: <dtml-var listbox_label_background_color>;\n
}\n
\n
.ListContent #listbox_stat_line {\n
background-color: <dtml-var listbox_stat_background_color>;\n
}\n
\n
.DataA {\n
background-color: #DAE6E6 ;\n
border-top: solid 1px;\n
border-color: #3D7474;\n
}\n
\n
.DataB {\n
background-color: #FFFFFF;\n
border-top: solid 1px;\n
border-color: #3D7474;\n
}\n
\n
.ListSummary #listbox_title_line #listbox_title,\n
.ListSummary #listbox_title_line #listbox_item_number,\n
.ListSummary #listbox_title_line #listbox_record_number {\n
vertical-align: middle;\n
}\n
\n
.ListContent tr.DataA:hover,\n
.ListContent tr.DataB:hover {\n
background-color: <dtml-var listbox_hover_background_color>;\n
}\n
\n
.ListContent td {\n
border-color: <dtml-var document_border_color>;\n
}\n
\n
.right_title {\n
background-color: #C1DAD2;\n
padding-left: 5px;\n
font-size: 16px;\n
font-style: italic;\n
color: #0000FF;\n
}\n
\n
.left_data {\n
text-decoration: none;\n
padding-left: 30px;\n
color: #000000;\n
font-size: 12px;\n
}\n
\n
.data {\n
font-size: 10px;\n
}\n
\n
.dialog_selector button .description {\n
display: none;\n
}\n
\n
.ListSummary img {\n
display: none;\n
}\n
\n
#favourites button .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/favourite.png\');\n
}\n
\n
#modules button .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/appearance.png\');\n
}\n
\n
#language button .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/language.png\');\n
}\n
\n
#search button .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/search.png\');\n
}\n
\n
#actions button .image{\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/exec16.png\');\n
position: relative;\n
background-repeat: no-repeat;\n
}\n
#jump button .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/jump.png\');\n
position: relative;\n
background-repeat: no-repeat;\n
}\n
\n
.separator {\n
height: 24px;\n
width: 2px;\n
margin-left: 6px;\n
margin-right: 6px;\n
display: block;\n
float: left;\n
}\n
\n
#context_bar {\n
padding-top: 2px;\n
padding-bottom: 2px;\n
/* border-bottom-width: 1px;\n
border-bottom-style: solid; */\n
color: inherit;\n
vertical-align: middle;\n
}\n
\n
#context_bar .separator {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/sepacla.png\');\n
height: 16px;\n
}\n
\n
#context_bar .tool_buttons .jump_first .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/2leftarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_previous .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/1leftarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_next .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/1rightarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_last .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/2rightarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .list_mode .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/text_block.png\');\n
}\n
\n
#context_bar .tool_buttons .new .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/filenew.png\');\n
}\n
\n
#context_bar .tool_buttons .clone .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/fileclone.png\');\n
}\n
\n
#context_bar .tool_buttons .cut .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/editcut.png\');\n
}\n
\n
#context_bar .tool_buttons .copy .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/editcopy.png\');\n
}\n
\n
#context_bar .tool_buttons .paste .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/editpaste.png\');\n
}\n
\n
#context_bar .tool_buttons .delete .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/editdelete.png\');\n
}\n
\n
#context_bar .tool_buttons .find .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/find.png\');\n
}\n
\n
#context_bar .tool_buttons .show_all .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/showall.png\');\n
}\n
\n
#context_bar .tool_buttons .filter .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/filter.png\');\n
}\n
\n
#context_bar .tool_buttons .filter_on .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/filter_on.png\');\n
}\n
\n
#context_bar .tool_buttons .sort .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/sort.png\');\n
}\n
\n
#context_bar .tool_buttons .configure .image {\n
background-image: url(\'<dtml-var expr="portal_url.getPortalObject().absolute_url()">/images/configure.png\');\n
}\n
\n
#navigation_buttons {\n
text-align: right;\n
float: right\n
}\n
\n
#navigation_bar button .image,\n
#context_bar button .image,\n
.dialog_selector button .image,\n
.document .actions button.save .image {\n
display: block;\n
width: 16px;\n
height: 16px;\n
}\n
\n
#navigation_bar button .description,\n
#context_bar button .description,\n
.content .field .description,\n
.document .actions button.save .description,\n
#context_bar .tool_buttons a .description {\n
display: none;\n
}\n
\n
#navigation_bar button,\n
#context_bar button,\n
.dialog_selector button,\n
.document .actions button.save {\n
border: 0;\n
margin-top: 1px;\n
margin-left: 2px;\n
margin-right: 2px;\n
padding: 0;\n
position: relative;\n
cursor: pointer;\n
background-color: inherit;\n
color: inherit;\n
}\n
\n
#main_bar button .description,\n
#context_bar button .description,\n
.content .field .description,\n
.document .actions button.save .description,\n
#context_bar .tool_buttons a .description {\n
display: none;\n
}\n
\n
#context_bar .tool_buttons {\n
vertical-align: middle;\n
}\n
\n
#context_bar .tool_buttons a {\n
margin-top: 2px;\n
margin-left: 2px;\n
margin-right: 2px;\n
padding: 0;\n
position: relative;\n
}\n
\n
#context_bar .tool_buttons button,\n
#context_bar .tool_buttons a {\n
float: left;\n
}\n
\n
#context_bar .tool_buttons a .image,\n
#context_bar .tool_buttons button .image,\n
#context_bar .tool_buttons a img {\n
width: 16px;\n
height: 16px;\n
margin: 0;\n
padding: 0;\n
display: block;\n
background-repeat: no-repeat;\n
}\n
\n
p.clear {\n
height: 0;\n
margin: 0;\n
padding: 0;\n
clear: both;\n
}\n
\n
.field label {\n
width: 30%;\n
font-size: 14px;\n
color: #3D7474;\n
font-style: italic;\n
}\n
\n
.required label {\n
font-weight: bold;\n
}\n
\n
body {\n
background-color: <dtml-var background_color>;\n
}\n
\n
#transition_message {\n
margin-left: 1em;\n
color: #f00;\n
background-color: inherit;\n
font-weight: bold;\n
}\n
\n
.field .error {\n
background-color: inherit;\n
color: #f00;\n
font-weight: bold;\n
}\n
\n
#listbox_title_line {\n
position: relative;\n
}\n
\n
#listbox_page_selection {\n
position: absolute;\n
right: 5px;\n
top: 3px;\n
}\n
\n
#listbox_record_number {\n
font-weight: bold;\n
}\n
\n
fieldset.left,\n
fieldset.right,\n
fieldset.center,\n
fieldset.bottom {\n
border-width: 1px;\n
border-style: solid;\n
}\n
\n
fieldset.left legend,\n
fieldset.right legend,\n
fieldset.center legend,\n
fieldset.bottom legend {\n
display: none;\n
}\n
\n
</dtml-let>\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>tooltip_background_color</string> </key>
<value> <string>#FFD</string> </value>
</item>
<item>
<key> <string>tooltip_border_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>tooltip_color</string> </key>
<value> <string>#000</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>preview.html</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<script>\r\n
\r\n
// Prevent from DOM clobbering.\r\n
if ( typeof window.opener._cke_htmlToLoad == \'string\' ) {\r\n
\tvar doc = document;\r\n
\tdoc.open();\r\n
\tdoc.write( window.opener._cke_htmlToLoad );\r\n
\tdoc.close();\r\n
\r\n
\tdelete window.opener._cke_htmlToLoad;\r\n
}\r\n
\r\n
</script>\r\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>ciframe.html</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">\r\n
<!--\r\n
Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.\r\n
For licensing, see LICENSE.html or http://ckeditor.com/license\r\n
-->\r\n
<html>\r\n
<head>\r\n
\t<title></title>\r\n
\t<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r\n
\t<script type="text/javascript">\r\n
\r\n
function gup( name )\r\n
{\r\n
\tname = name.replace( /[\\[]/, \'\\\\\\[\' ).replace( /[\\]]/, \'\\\\\\]\' ) ;\r\n
\tvar regexS = \'[\\\\?&]\' + name + \'=([^&#]*)\' ;\r\n
\tvar regex = new RegExp( regexS ) ;\r\n
\tvar results = regex.exec( window.location.href ) ;\r\n
\r\n
\tif ( results )\r\n
\t\treturn results[ 1 ] ;\r\n
\telse\r\n
\t\treturn \'\' ;\r\n
}\r\n
\r\n
var interval;\r\n
\r\n
function sendData2Master()\r\n
{\r\n
\tvar destination = window.parent.parent ;\r\n
\ttry\r\n
\t{\r\n
\t\tif ( destination.XDTMaster )\r\n
\t\t{\r\n
\t\t\tvar t = destination.XDTMaster.read( [ gup( \'cmd\' ), gup( \'data\' ) ] ) ;\r\n
\t\t\twindow.clearInterval( interval ) ;\r\n
\t\t}\r\n
\t}\r\n
\tcatch (e) {}\r\n
}\r\n
\r\n
function OnMessage (event) {\r\n
\t var message = event.data;\r\n
\t var destination = window.parent.parent;\r\n
\t destination.XDTMaster.read( [ \'end\', message, \'fpm\' ] ) ;\r\n
}\r\n
\r\n
function listenPostMessage() {\r\n
if (window.addEventListener) { // all browsers except IE before version 9\r\n
window.addEventListener ("message", OnMessage, false);\r\n
}else {\r\n
if (window.attachEvent) { // IE before version 9\r\n
window.attachEvent("onmessage", OnMessage);\r\n
}\r\n
}\r\n
}\r\n
\r\n
function onLoad()\r\n
{\r\n
\tinterval = window.setInterval( sendData2Master, 100 );\r\n
\tlistenPostMessage();\r\n
}\r\n
\r\n
</script>\r\n
</head>\r\n
<body onload="onLoad()"><p></p></body>\r\n
</html>\r\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>tmpFrameset.html</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">\r\n
<!--\r\n
Copyright (c) 2003-2015, CKSource - Frederico Knabben. All rights reserved.\r\n
For licensing, see LICENSE.html or http://ckeditor.com/license\r\n
-->\r\n
<html>\r\n
<head>\r\n
\t<title></title>\r\n
\t<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\r\n
\t<script type="text/javascript">\r\n
\r\n
function doLoadScript( url )\r\n
{\r\n
\tif ( !url )\r\n
\t\treturn false ;\r\n
\r\n
\tvar s = document.createElement( "script" ) ;\r\n
\ts.type = "text/javascript" ;\r\n
\ts.src = url ;\r\n
\tdocument.getElementsByTagName( "head" )[ 0 ].appendChild( s ) ;\r\n
\r\n
\treturn true ;\r\n
}\r\n
\r\n
var opener;\r\n
function tryLoad()\r\n
{\r\n
\topener = window.parent;\r\n
\r\n
\t// get access to global parameters\r\n
\tvar oParams = window.opener.oldFramesetPageParams;\r\n
\r\n
\t// make frameset rows string prepare\r\n
\tvar sFramesetRows = ( parseInt( oParams.firstframeh, 10 ) || \'30\') + ",*," + ( parseInt( oParams.thirdframeh, 10 ) || \'150\' ) + \',0\' ;\r\n
\tdocument.getElementById( \'itFrameset\' ).rows = sFramesetRows ;\r\n
\r\n
\t// dynamic including init frames and crossdomain transport code\r\n
\t// from config sproxy_js_frameset url\r\n
\tvar addScriptUrl = oParams.sproxy_js_frameset ;\r\n
\tdoLoadScript( addScriptUrl ) ;\r\n
}\r\n
\r\n
\t</script>\r\n
</head>\r\n
\r\n
<frameset id="itFrameset" onload="tryLoad();" border="0" rows="30,*,*,0">\r\n
<frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="2" src="" name="navbar"></frame>\r\n
<frame scrolling="auto" framespacing="0" frameborder="0" noresize="noresize" marginheight="0" marginwidth="0" src="" name="mid"></frame>\r\n
<frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="bot"></frame>\r\n
<frame scrolling="no" framespacing="0" frameborder="0" noresize="noresize" marginheight="1" marginwidth="1" src="" name="spellsuggestall"></frame>\r\n
</frameset>\r\n
</html>\r\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>browser-not-supported.html</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />\n
<meta http-equiv="X-UA-Compatible" content="chrome=1"/>\n
<link rel="icon" type="image/png" href="images/logo.png"/>\n
<link rel="stylesheet" href="svg-editor.css" type="text/css"/>\n
<script src="jquery.js"></script>\n
<title>Browser does not support SVG | SVG-edit</title>\n
</head>\n
<body>\n
\n
<div id="browser-not-supported">\n
<img style="float:left;padding:10px;" src="images/logo.png" width="48" height="48" alt="SVG-edit logo" /><br />\n
<p>Sorry, but your browser does not support SVG. Below is a list of alternate browsers and versions that support SVG and SVG-edit (from <a href="http://caniuse.com/#cats=SVG">caniuse.com</a>).</p>\n
<p>Try the latest version of <a href="http://www.getfirefox.com">Firefox</a>, <a href="http://www.google.com/chrome/">Google Chrome</a>, <a href="http://www.apple.com/safari/download/">Safari</a>, <a href="http://www.opera.com/download/">Opera</a> or <a href="http://windows.microsoft.com/ie9">Internet Explorer</a>.</p>\n
<p>If you are unable to install one of these and must use an old version of Internet Explorer, you can install the <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame plugin</a>.</p>\n
\n
</div>\n
\n
<script>\n
/*globals $*/\n
var viewportHeight = window.innerHeight || ($(window).height() - 140);\n
var iframe = document.createElement(\'iframe\');\n
iframe.style.width = \'100%\';\n
iframe.style.height = viewportHeight + \'px\';\n
iframe.src = \'http://caniuse.com/#cats=SVG\';\n
document.body.appendChild(iframe);\n
</script>\n
</body>\n
</html>\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>embedapi.html</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\n
<html xmlns="http://www.w3.org/1999/xhtml">\n
<head>\n
<meta charset="utf-8" />\n
<title>Embed API</title>\n
<script src="jquery.js"></script>\n
<script src="embedapi.js"></script>\n
<script>\n
/*globals $, EmbeddedSVGEdit*/\n
\tvar initEmbed;\n
$(function () {\'use strict\';\n
\n
var svgCanvas = null;\n
\n
initEmbed = function () {\n
var doc, mainButton,\n
frame = document.getElementById(\'svgedit\');\n
svgCanvas = new EmbeddedSVGEdit(frame);\n
// Hide main button, as we will be controlling new, load, save, etc. from the host document\n
doc = frame.contentDocument || frame.contentWindow.document;\n
mainButton = doc.getElementById(\'main_button\');\n
mainButton.style.display = \'none\';\n
};\n
\n
function handleSvgData(data, error) {\n
if (error) {\n
alert(\'error \' + error);\n
} else {\n
alert(\'Congratulations. Your SVG string is back in the host page, do with it what you will\\n\\n\' + data);\n
}\n
}\n
\n
function loadSvg() {\n
var svgexample = \'<svg width="640" height="480" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><g><title>Layer 1<\\/title><rect stroke-width="5" stroke="#000000" fill="#FF0000" id="svg_1" height="35" width="51" y="35" x="32"/><ellipse ry="15" rx="24" stroke-width="5" stroke="#000000" fill="#0000ff" id="svg_2" cy="60" cx="66"/><\\/g><\\/svg>\';\n
svgCanvas.setSvgString(svgexample);\n
}\n
\n
function saveSvg() {\n
svgCanvas.getSvgString()(handleSvgData);\n
}\n
\n
// Add event handlers\n
$(\'#load\').click(loadSvg);\n
$(\'#save\').click(saveSvg);\n
\t\t$(\'body\').append(\n
\t\t\t$(\'<iframe src="svg-editor.html?extensions=ext-xdomain-messaging.js\' +\n
\t\t\t\twindow.location.href.replace(/\\?(.*)$/, \'&$1\') + // Append arguments to this file onto the iframe\n
\t\t\t\t\'" width="900px" height="600px" id="svgedit" onload="initEmbed();"></iframe>\'\n
\t\t\t)\n
\t\t);\n
\t});\n
</script>\n
</head>\n
<body>\n
<button id="load">Load example</button>\n
<button id="save">Save data</button>\n
<br/>\n
</body>\n
</html>\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>form-test.html</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\r\n
<html xmlns="http://www.w3.org/1999/xhtml">\r\n
<head>\r\n
<meta charset="utf-8" />\r\n
<title></title>\r\n
\t\t<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>\r\n
</head>\r\n
<body>\r\n
<form action="filesave.php">\r\n
<input type="hidden" value="" name="output_svg" />\r\n
</form>\r\n
<script>\r\n
/*globals $*/\r\n
function xhtmlEscape(str) {\'use strict\';\r\n
\t\treturn str.replace(/&(?!amp;)/g, \'&amp;\').replace(/"/g, \'&quot;\').replace(/</g, \'&lt;\'); // < is actually disallowed above anyways\r\n
\t}\r\n
$(\'<form>\').attr({\r\n
\t\t\t\t\tmethod: \'post\',\r\n
\t\t\t\t\taction: \'filesave.php\',\r\n
\t\t\t\t\ttarget: \'output_frame\'\r\n
\t\t\t\t}).append(\'<input type="hidden" name="output_svg" value="\' + xhtmlEscape(\'<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"><script>alert(document.cookie);<\\/script><\\/svg>\') + \'">\')\r\n
\t\t\t\t\t.appendTo(\'body\')\r\n
\t\t\t\t\t.submit().remove();\r\n
</script>\r\n
\r\n
</body>\r\n
</html>\r\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>index.html</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\r\n
<html xmlns="http://www.w3.org/1999/xhtml">\r\n
<head>\r\n
<meta charset="utf-8" />\r\n
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>\r\n
</head>\r\n
<body>\r\n
\r\n
<h1>Select an image:</h1>\r\n
<a href="smiley.svg">smiley.svg</a>\r\n
<br>\r\n
<a href="../../images/logo.png">logo.png</a>\r\n
\r\n
<script>\r\n
/*globals $*/\r\n
/*jslint vars: true*/\r\n
$(\'a\').click(function() {\'use strict\';\r\n
\tvar meta_str;\r\n
\tvar href = this.href;\r\n
\tvar target = window.parent;\r\n
\t// Convert Non-SVG images to data URL first \r\n
\t// (this could also have been done server-side by the library)\r\n
\tif (this.href.indexOf(\'.svg\') === -1) {\r\n
\r\n
\t\tmeta_str = JSON.stringify({\r\n
\t\t\tname: $(this).text(),\r\n
\t\t\tid: href\r\n
\t\t});\r\n
\t\ttarget.postMessage(meta_str, \'*\');\r\n
\r\n
\t\tvar img = new Image();\r\n
\t\timg.onload = function() {\r\n
\t\t\tvar canvas = document.createElement(\'canvas\');\r\n
\t\t\tcanvas.width = this.width;\r\n
\t\t\tcanvas.height = this.height;\r\n
\t\t\t// load the raster image into the canvas\r\n
\t\t\tcanvas.getContext(\'2d\').drawImage(this, 0, 0);\r\n
\t\t\t// retrieve the data: URL\r\n
\t\t\tvar dataurl;\r\n
\t\t\ttry {\r\n
\t\t\t\tdataurl = canvas.toDataURL();\r\n
\t\t\t} catch(err) {\r\n
\t\t\t\t// This fails in Firefox with file:// URLs :(\r\n
\t\t\t\talert("Data URL conversion failed: " + err);\r\n
\t\t\t\tdataurl = "";\r\n
\t\t\t}\r\n
\t\t\ttarget.postMessage(\'|\' + href + \'|\' + dataurl, \'*\');\r\n
\t\t};\r\n
\t\timg.src = href;\r\n
\t} else {\r\n
\t\t// Send metadata (also indicates file is about to be sent)\r\n
\t\tmeta_str = JSON.stringify({\r\n
\t\t\tname: $(this).text(),\r\n
\t\t\tid: href\r\n
\t\t});\r\n
\t\ttarget.postMessage(meta_str, \'*\');\r\n
\t\t// Do ajax request for image\'s href value\r\n
\t\t$.get(href, function(data) {\r\n
\t\t\tdata = \'|\' + href + \'|\' + data;\r\n
\t\t\t// This is where the magic happens!\r\n
\t\t\ttarget.postMessage(data, \'*\');\r\n
\t\t\t\r\n
\t\t}, \'html\'); // \'html\' is necessary to keep returned data as a string\r\n
\t}\r\n
\treturn false;\r\n
});\r\n
\r\n
</script>\r\n
</body>\r\n
</html>\r\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>svg-editor.html</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!DOCTYPE html>\r\n
<html>\r\n
<!-- removed for now, causes problems in Firefox: manifest="svg-editor.manifest" -->\r\n
<head>\r\n
<meta charset="utf-8" />\r\n
<meta http-equiv="X-UA-Compatible" content="IE=Edge, chrome=1"/>\r\n
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>\r\n
<meta name="apple-mobile-web-app-capable" content="yes"/>\r\n
<link rel="icon" type="image/png" href="images/logo.png"/>\r\n
<link rel="stylesheet" href="jgraduate/css/jPicker.css" type="text/css"/>\r\n
<link rel="stylesheet" href="jgraduate/css/jgraduate.css" type="text/css"/>\r\n
<link rel="stylesheet" href="svg-editor.css" type="text/css"/>\r\n
<link rel="stylesheet" href="spinbtn/JQuerySpinBtn.css" type="text/css"/>\r\n
\r\n
<!--{if jquery_release}>\r\r\n
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>\r\n
<!{else}-->\r\r\n
<script src="jquery.js"></script>\r\n
<!--{endif}-->\r\r\n
\r\n
<script src="js-hotkeys/jquery.hotkeys.min.js"></script>\r\n
<script src="jquerybbq/jquery.bbq.min.js"></script>\r\n
<script src="svgicons/jquery.svgicons.js"></script>\r\n
<script src="jgraduate/jquery.jgraduate.min.js"></script>\r\n
<script src="spinbtn/JQuerySpinBtn.min.js"></script>\r\n
<script src="touch.js"></script>\r\n
\r\n
<!--{if svg_edit_release}-->\r\r\n
<script src="svgedit.compiled.js"></script>\r\n
<!--{else}>\r\r\n
<script src="svgedit.js"></script>\r\n
<script src="jquery-svg.js"></script>\r\n
<script src="contextmenu/jquery.contextMenu.js"></script>\r\n
<script src="browser.js"></script>\r\n
<script src="svgtransformlist.js"></script>\r\n
<script src="math.js"></script>\r\n
<script src="units.js"></script>\r\n
<script src="svgutils.js"></script>\r\n
<script src="sanitize.js"></script>\r\n
<script src="history.js"></script>\r\n
<script src="coords.js"></script>\r\n
<script src="recalculate.js"></script>\r\n
<script src="select.js"></script>\r\n
<script src="draw.js"></script>\r\n
<script src="path.js"></script>\r\n
<script src="svgcanvas.js"></script>\r\n
<script src="svg-editor.js"></script>\r\n
<script src="locale/locale.js"></script>\r\n
<script src="contextmenu.js"></script>\r\n
<!{endif}-->\r\r\n
\r\n
<!-- If you do not wish to add extensions by URL, you can load them\r\n
by creating the following file and adding by calls to svgEditor.setConfig -->\r\n
<script src="config.js"></script>\r\n
\r\n
<!-- always minified scripts -->\r\n
<script src="jquery-ui/jquery-ui-1.8.17.custom.min.js"></script>\r\n
<script src="jgraduate/jpicker.js"></script>\r\n
\r\n
<!-- feeds -->\r\n
<link rel="alternate" type="application/atom+xml" title="SVG-edit General Discussion" href="http://groups.google.com/group/svg-edit/feed/atom_v1_0_msgs.xml" />\r\n
<link rel="alternate" type="application/atom+xml" title="SVG-edit Updates (Issues/Fixes/Commits)" href="http://code.google.com/feeds/p/svg-edit/updates/basic" />\r\n
\r\n
<!-- Add script with custom handlers here -->\r\n
<title>SVG-edit</title>\r\n
</head>\r\n
<body>\r\n
<div id="svg_editor">\r\n
\r\n
<div id="rulers">\r\n
\t<div id="ruler_corner"></div>\r\n
\t<div id="ruler_x">\r\n
\t\t<div>\r\n
\t\t\t<canvas height="15"></canvas>\r\n
\t\t</div>\r\n
\t</div>\r\n
\t<div id="ruler_y">\r\n
\t\t<div>\r\n
\t\t\t<canvas width="15"></canvas>\r\n
\t\t</div>\r\n
\t</div>\r\n
</div>\r\n
\r\n
<div id="workarea">\r\n
<style id="styleoverrides" type="text/css" media="screen" scoped="scoped"></style>\r\n
<div id="svgcanvas" style="position:relative">\r\n
\r\n
</div>\r\n
</div>\r\n
\r\n
<div id="sidepanels">\r\n
\t<div id="layerpanel">\r\n
\t\t<h3 id="layersLabel">Layers</h3>\r\n
\t\t<fieldset id="layerbuttons">\r\n
\t\t\t<div id="layer_new" class="layer_button" title="New Layer"></div>\r\n
\t\t\t<div id="layer_delete" class="layer_button" title="Delete Layer"></div>\r\n
\t\t\t<div id="layer_rename" class="layer_button" title="Rename Layer"></div>\r\n
\t\t\t<div id="layer_up" class="layer_button" title="Move Layer Up"></div>\r\n
\t\t\t<div id="layer_down" class="layer_button" title="Move Layer Down"></div>\r\n
\t\t\t<div id="layer_moreopts" class="layer_button" title="More Options"></div>\r\n
\t\t</fieldset>\r\n
\t\t\r\n
\t\t<table id="layerlist">\r\n
\t\t\t<tr class="layer">\r\n
\t\t\t\t<td class="layervis"></td>\r\n
\t\t\t\t<td class="layername">Layer 1</td>\r\n
\t\t\t</tr>\r\n
\t\t</table>\r\n
\t\t<span id="selLayerLabel">Move elements to:</span>\r\n
\t\t<select id="selLayerNames" title="Move selected elements to a different layer" disabled="disabled">\r\n
\t\t\t<option selected="selected" value="layer1">Layer 1</option>\r\n
\t\t</select>\r\n
\t</div>\r\n
\t<div id="sidepanel_handle" title="Drag left/right to resize side panel [X]">L a y e r s</div>\r\n
</div>\r\n
\r\n
<div id="main_button">\r\n
\t<div id="main_icon" class="tool_button" title="Main Menu">\r\n
\t\t<span>SVG-Edit</span>\r\n
\t\t<div id="logo"></div>\r\n
\t\t<div class="dropdown"></div>\r\n
\t</div>\r\n
\t\t\r\n
\t<div id="main_menu"> \r\n
\t\r\n
\t\t<!-- File-like buttons: New, Save, Source -->\r\n
\t\t<ul>\r\n
\t\t\t<li id="tool_clear">\r\n
\t\t\t\t<div></div>\r\n
\t\t\t\tNew Image (N)\r\n
\t\t\t</li>\r\n
\t\t\t\r\n
\t\t\t<li id="tool_open" style="display:none;">\r\n
\t\t\t\t<div id="fileinputs">\r\n
\t\t\t\t\t<div></div>\r\n
\t\t\t\t</div>\r\n
\t\t\t\tOpen Image\r\n
\t\t\t</li>\r\n
\t\t\t\r\n
\t\t\t<li id="tool_import" style="display:none;">\r\n
\t\t\t\t<div id="fileinputs_import">\r\n
\t\t\t\t\t<div></div>\r\n
\t\t\t\t</div>\r\n
\t\t\t\tImport Image\r\n
\t\t\t</li>\r\n
\t\t\t\r\n
\t\t\t<li id="tool_save">\r\n
\t\t\t\t<div></div>\r\n
\t\t\t\tSave Image (S)\r\n
\t\t\t</li>\r\n
\t\t\t\r\n
\t\t\t<li id="tool_export">\r\n
\t\t\t\t<div></div>\r\n
\t\t\t\tExport\r\n
\t\t\t</li>\r\n
\t\t\t\r\n
\t\t\t<li id="tool_docprops">\r\n
\t\t\t\t<div></div>\r\n
\t\t\t\tDocument Properties (D)\r\n
\t\t\t</li>\r\n
\t\t</ul>\r\n
\r\n
\t\t<p>\r\n
\t\t\t<a href="http://svg-edit.googlecode.com/" target="_blank">\r\n
\t\t\t\tSVG-edit Home Page\r\n
\t\t\t</a>\r\n
\t\t</p>\r\n
\r\n
\t\t<button id="tool_prefs_option">\r\n
\t\t\tEditor Options\r\n
\t\t</button>\r\n
\r\n
\r\n
\t</div>\r\n
</div>\r\n
\r\n
\r\n
\r\n
<div id="tools_top" class="tools_panel">\r\n
\r\n
\t<div id="editor_panel">\r\n
\t\t<div class="tool_sep"></div>\r\n
\t\t<div class="push_button" id="tool_source" title="Edit Source [U]"></div>\r\n
\t\t<div class="tool_button" id="tool_wireframe" title="Wireframe Mode [F]"></div>\r\n
\t</div>\r\n
\r\n
\t<!-- History buttons -->\r\n
\t<div id="history_panel">\r\n
\t\t<div class="tool_sep"></div>\r\n
\t\t<div class="push_button tool_button_disabled" id="tool_undo" title="Undo [Z]"></div>\r\n
\t\t<div class="push_button tool_button_disabled" id="tool_redo" title="Redo [Y]"></div>\r\n
\t</div>\r\n
\t\r\n
\t<!-- Buttons when a single element is selected -->\r\n
\t<div id="selected_panel">\r\n
\t\t<div class="toolset">\r\n
\t\t\t<div class="tool_sep"></div>\r\n
\t\t\t<div class="push_button" id="tool_clone" title="Duplicate Element [D]"></div>\r\n
\t\t\t<div class="push_button" id="tool_delete" title="Delete Element [Delete/Backspace]"></div>\r\n
\t\t\t<div class="tool_sep"></div>\r\n
\t\t\t<div class="push_button" id="tool_move_top" title="Bring to Front [ Ctrl+Shift+] ]"></div>\r\n
\t\t\t<div class="push_button" id="tool_move_bottom" title="Send to Back [ Ctrl+Shift+[ ]"></div>\r\n
\t\t\t<div class="push_button" id="tool_topath" title="Convert to Path"></div>\r\n
\t\t\t<div class="push_button" id="tool_reorient" title="Reorient path"></div>\r\n
\t\t\t<div class="push_button" id="tool_make_link" title="Make (hyper)link"></div>\r\n
\t\t\t<div class="tool_sep"></div>\r\n
\t\t\t<label id="idLabel" title="Identify the element">\r\n
\t\t\t\t<span>id:</span>\r\n
\t\t\t\t<input id="elem_id" class="attr_changer" data-attr="id" size="10" type="text"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\r\n
\t\t<label id="tool_angle" title="Change rotation angle" class="toolset">\r\n
\t\t\t<span id="angleLabel" class="icon_label"></span>\r\n
\t\t\t<input id="angle" size="2" value="0" type="text"/>\r\n
\t\t</label>\r\n
\t\t\r\n
\t\t<div class="toolset" id="tool_blur" title="Change gaussian blur value">\r\n
\t\t\t<label>\r\n
\t\t\t\t<span id="blurLabel" class="icon_label"></span>\r\n
\t\t\t\t<input id="blur" size="2" value="0" type="text"/>\r\n
\t\t\t</label>\r\n
\t\t\t<div id="blur_dropdown" class="dropdown">\r\n
\t\t\t\t<button></button>\r\n
\t\t\t\t<ul>\r\n
\t\t\t\t\t<li class="special"><div id="blur_slider"></div></li>\r\n
\t\t\t\t</ul>\r\n
\t\t\t</div>\r\n
\t\t</div>\r\n
\t\t\r\n
\t\t<div class="dropdown toolset" id="tool_position" title="Align Element to Page">\r\n
\t\t\t\t<div id="cur_position" class="icon_label"></div>\r\n
\t\t\t\t<button></button>\r\n
\t\t</div>\t\t\r\n
\r\n
\t\t<div id="xy_panel" class="toolset">\r\n
\t\t\t<label>\r\n
\t\t\t\tx: <input id="selected_x" class="attr_changer" title="Change X coordinate" size="3" data-attr="x"/>\r\n
\t\t\t</label>\r\n
\t\t\t<label>\r\n
\t\t\t\ty: <input id="selected_y" class="attr_changer" title="Change Y coordinate" size="3" data-attr="y"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\t</div>\r\n
\t\r\n
\t<!-- Buttons when multiple elements are selected -->\r\n
\t<div id="multiselected_panel">\r\n
\t\t<div class="tool_sep"></div>\r\n
\t\t<div class="push_button" id="tool_clone_multi" title="Clone Elements [C]"></div>\r\n
\t\t<div class="push_button" id="tool_delete_multi" title="Delete Selected Elements [Delete/Backspace]"></div>\r\n
\t\t<div class="tool_sep"></div>\r\n
\t\t<div class="push_button" id="tool_group_elements" title="Group Elements [G]"></div>\r\n
\t\t<div class="push_button" id="tool_make_link_multi" title="Make (hyper)link"></div>\r\n
\t\t<div class="push_button" id="tool_alignleft" title="Align Left"></div>\r\n
\t\t<div class="push_button" id="tool_aligncenter" title="Align Center"></div>\r\n
\t\t<div class="push_button" id="tool_alignright" title="Align Right"></div>\r\n
\t\t<div class="push_button" id="tool_aligntop" title="Align Top"></div>\r\n
\t\t<div class="push_button" id="tool_alignmiddle" title="Align Middle"></div>\r\n
\t\t<div class="push_button" id="tool_alignbottom" title="Align Bottom"></div>\r\n
\t\t<label id="tool_align_relative"> \r\n
\t\t\t<span id="relativeToLabel">relative to:</span>\r\n
\t\t\t<select id="align_relative_to" title="Align relative to ...">\r\n
\t\t\t<option id="selected_objects" value="selected">selected objects</option>\r\n
\t\t\t<option id="largest_object" value="largest">largest object</option>\r\n
\t\t\t<option id="smallest_object" value="smallest">smallest object</option>\r\n
\t\t\t<option id="page" value="page">page</option>\r\n
\t\t\t</select>\r\n
\t\t</label>\r\n
\t\t<div class="tool_sep"></div>\r\n
\r\n
\t</div>\r\n
\r\n
\t<div id="rect_panel">\r\n
\t\t<div class="toolset">\r\n
\t\t\t<label id="rect_width_tool" title="Change rectangle width">\r\n
\t\t\t\t<span id="rwidthLabel" class="icon_label"></span>\r\n
\t\t\t\t<input id="rect_width" class="attr_changer" size="3" data-attr="width"/>\r\n
\t\t\t</label>\r\n
\t\t\t<label id="rect_height_tool" title="Change rectangle height">\r\n
\t\t\t\t<span id="rheightLabel" class="icon_label"></span>\r\n
\t\t\t\t<input id="rect_height" class="attr_changer" size="3" data-attr="height"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\t\t<label id="cornerRadiusLabel" title="Change Rectangle Corner Radius" class="toolset">\r\n
\t\t\t<span class="icon_label"></span>\r\n
\t\t\t<input id="rect_rx" size="3" value="0" type="text" data-attr="Corner Radius"/>\r\n
\t\t</label>\r\n
\t</div>\r\n
\r\n
\t<div id="image_panel">\r\n
\t<div class="toolset">\r\n
\t\t<label><span id="iwidthLabel" class="icon_label"></span>\r\n
\t\t<input id="image_width" class="attr_changer" title="Change image width" size="3" data-attr="width"/>\r\n
\t\t</label>\r\n
\t\t<label><span id="iheightLabel" class="icon_label"></span>\r\n
\t\t<input id="image_height" class="attr_changer" title="Change image height" size="3" data-attr="height"/>\r\n
\t\t</label>\r\n
\t</div>\r\n
\t<div class="toolset">\r\n
\t\t<label id="tool_image_url">url:\r\n
\t\t\t<input id="image_url" type="text" title="Change URL" size="35"/>\r\n
\t\t</label>\r\n
\t\t<label id="tool_change_image">\r\n
\t\t\t<button id="change_image_url" style="display:none;">Change Image</button>\r\n
\t\t\t<span id="url_notice" title="NOTE: This image cannot be embedded. It will depend on this path to be displayed"></span>\r\n
\t\t</label>\r\n
\t</div>\r\n
</div>\r\n
\r\n
\t<div id="circle_panel">\r\n
\t\t<div class="toolset">\r\n
\t\t\t<label id="tool_circle_cx">cx:\r\n
\t\t\t<input id="circle_cx" class="attr_changer" title="Change circle\'s cx coordinate" size="3" data-attr="cx"/>\r\n
\t\t\t</label>\r\n
\t\t\t<label id="tool_circle_cy">cy:\r\n
\t\t\t<input id="circle_cy" class="attr_changer" title="Change circle\'s cy coordinate" size="3" data-attr="cy"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\t\t<div class="toolset">\r\n
\t\t\t<label id="tool_circle_r">r:\r\n
\t\t\t<input id="circle_r" class="attr_changer" title="Change circle\'s radius" size="3" data-attr="r"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\t</div>\r\n
\r\n
\t<div id="ellipse_panel">\r\n
\t\t<div class="toolset">\r\n
\t\t\t<label id="tool_ellipse_cx">cx:\r\n
\t\t\t<input id="ellipse_cx" class="attr_changer" title="Change ellipse\'s cx coordinate" size="3" data-attr="cx"/>\r\n
\t\t\t</label>\r\n
\t\t\t<label id="tool_ellipse_cy">cy:\r\n
\t\t\t<input id="ellipse_cy" class="attr_changer" title="Change ellipse\'s cy coordinate" size="3" data-attr="cy"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\t\t<div class="toolset">\r\n
\t\t\t<label id="tool_ellipse_rx">rx:\r\n
\t\t\t<input id="ellipse_rx" class="attr_changer" title="Change ellipse\'s x radius" size="3" data-attr="rx"/>\r\n
\t\t\t</label>\r\n
\t\t\t<label id="tool_ellipse_ry">ry:\r\n
\t\t\t<input id="ellipse_ry" class="attr_changer" title="Change ellipse\'s y radius" size="3" data-attr="ry"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\t</div>\r\n
\r\n
\t<div id="line_panel">\r\n
\t\t<div class="toolset">\r\n
\t\t\t<label id="tool_line_x1">x1:\r\n
\t\t\t<input id="line_x1" class="attr_changer" title="Change line\'s starting x coordinate" size="3" data-attr="x1"/>\r\n
\t\t\t</label>\r\n
\t\t\t<label id="tool_line_y1">y1:\r\n
\t\t\t<input id="line_y1" class="attr_changer" title="Change line\'s starting y coordinate" size="3" data-attr="y1"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\t\t<div class="toolset">\r\n
\t\t\t<label id="tool_line_x2">x2:\r\n
\t\t\t<input id="line_x2" class="attr_changer" title="Change line\'s ending x coordinate" size="3" data-attr="x2"/>\r\n
\t\t\t</label>\r\n
\t\t\t<label id="tool_line_y2">y2:\r\n
\t\t\t<input id="line_y2" class="attr_changer" title="Change line\'s ending y coordinate" size="3" data-attr="y2"/>\r\n
\t\t\t</label>\r\n
\t\t</div>\r\n
\t</div>\r\n
\r\n
\t<div id="text_panel">\r\n
\t\t<div class="toolset">\r\n
\t\t\t<div class="tool_button" id="tool_bold" title="Bold Text [B]"><span></span>B</div>\r\n
\t\t\t<div class="tool_button" id="tool_italic" title="Italic Text [I]"><span></span>i</div>\r\n
\t\t</div>\r\n
\t\t\r\n
\t\t<div class="toolset" id="tool_font_family">\r\n
\t\t\t<label>\r\n
\t\t\t\t<!-- Font family -->\r\n
\t\t\t\t<input id="font_family" type="text" title="Change Font Family" size="12"/>\r\n
\t\t\t</label>\r\n
\t\t\t<div id="font_family_dropdown" class="dropdown">\r\n
\t\t\t\t<button></button>\r\n
\t\t\t\t<ul>\r\n
\t\t\t\t\t<li style="font-family:serif">Serif</li>\r\n
\t\t\t\t\t<li style="font-family:sans-serif">Sans-serif</li>\r\n
\t\t\t\t\t<li style="font-family:cursive">Cursive</li>\r\n
\t\t\t\t\t<li style="font-family:fantasy">Fantasy</li>\r\n
\t\t\t\t\t<li style="font-family:monospace">Monospace</li>\r\n
\t\t\t\t</ul>\r\n
\t\t\t</div>\r\n
\t\t</div>\r\n
\r\n
\t\t<label id="tool_font_size" title="Change Font Size">\r\n
\t\t\t<span id="font_sizeLabel" class="icon_label"></span>\r\n
\t\t\t<input id="font_size" size="3" value="0" type="text"/>\r\n
\t\t</label>\r\n
\t\t\r\n
\t\t<!-- Not visible, but still used -->\r\n
\t\t<input id="text" type="text" size="35"/>\r\n
\t</div>\r\n
\r\n
\t<!-- formerly gsvg_panel -->\r\n
\t<div id="container_panel">\r\n
\t\t<div class="tool_sep"></div>\r\n
\r\n
\t\t<!-- Add viewBox field here? -->\r\n
\r\n
\t\t<label id="group_title" title="Group identification label">\r\n
\t\t\t<span>label:</span>\r\n
\t\t\t<input id="g_title" data-attr="title" size="10" type="text"/>\r\n
\t\t</label>\r\n
\t</div>\r\n
\t\r\n
\t<div id="use_panel">\r\n
\t\t<div class="push_button" id="tool_unlink_use" title="Break link to reference element (make unique)"></div>\r\n
\t</div>\r\n
\t\r\n
\t<div id="g_panel">\r\n
\t\t<div class="push_button" id="tool_ungroup" title="Ungroup Elements [G]"></div>\r\n
\t</div>\r\n
\r\n
\t<!-- For anchor elements -->\r\n
\t<div id="a_panel">\r\n
\t\t<label id="tool_link_url" title="Set link URL (leave empty to remove)">\r\n
\t\t\t<span id="linkLabel" class="icon_label"></span>\r\n
\t\t\t<input id="link_url" type="text" size="35"/>\r\n
\t\t</label>\t\r\n
\t</div>\r\n
\t\r\n
\t<div id="path_node_panel">\r\n
\t\t<div class="tool_sep"></div>\r\n
\t\t<div class="tool_button push_button_pressed" id="tool_node_link" title="Link Control Points"></div>\r\n
\t\t<div class="tool_sep"></div>\r\n
\t\t<label id="tool_node_x">x:\r\n
\t\t\t<input id="path_node_x" class="attr_changer" title="Change node\'s x coordinate" size="3" data-attr="x"/>\r\n
\t\t</label>\r\n
\t\t<label id="tool_node_y">y:\r\n
\t\t\t<input id="path_node_y" class="attr_changer" title="Change node\'s y coordinate" size="3" data-attr="y"/>\r\n
\t\t</label>\r\n
\t\t\r\n
\t\t<select id="seg_type" title="Change Segment type">\r\n
\t\t\t<option id="straight_segments" selected="selected" value="4">Straight</option>\r\n
\t\t\t<option id="curve_segments" value="6">Curve</option>\r\n
\t\t</select>\r\n
\t\t<div class="tool_button" id="tool_node_clone" title="Clone Node"></div>\r\n
\t\t<div class="tool_button" id="tool_node_delete" title="Delete Node"></div>\r\n
\t\t<div class="tool_button" id="tool_openclose_path" title="Open/close sub-path"></div>\r\n
\t\t<div class="tool_button" id="tool_add_subpath" title="Add sub-path"></div>\r\n
\t</div>\r\n
</div> <!-- tools_top -->\r\n
\t<div id="cur_context_panel">\r\n
\t\t\r\n
\t</div>\r\n
\r\n
\r\n
<div id="tools_left" class="tools_panel">\r\n
\t<div class="tool_button" id="tool_select" title="Select Tool"></div>\r\n
\t<div class="tool_button" id="tool_fhpath" title="Pencil Tool"></div>\r\n
\t<div class="tool_button" id="tool_line" title="Line Tool"></div>\r\n
\t<div class="tool_button flyout_current" id="tools_rect_show" title="Square/Rect Tool">\r\n
\t\t<div class="flyout_arrow_horiz"></div>\r\n
\t</div>\r\n
\t<div class="tool_button flyout_current" id="tools_ellipse_show" title="Ellipse/Circle Tool">\r\n
\t\t<div class="flyout_arrow_horiz"></div>\r\n
\t</div>\r\n
\t<div class="tool_button" id="tool_path" title="Path Tool"></div>\r\n
\t<div class="tool_button" id="tool_text" title="Text Tool"></div>\r\n
\t<div class="tool_button" id="tool_image" title="Image Tool"></div>\r\n
\t<div class="tool_button" id="tool_zoom" title="Zoom Tool [Ctrl+Up/Down]"></div>\r\n
\t\r\n
\t<div style="display: none">\r\n
\t\t<div id="tool_rect" title="Rectangle"></div>\r\n
\t\t<div id="tool_square" title="Square"></div>\r\n
\t\t<div id="tool_fhrect" title="Free-Hand Rectangle"></div>\r\n
\t\t<div id="tool_ellipse" title="Ellipse"></div>\r\n
\t\t<div id="tool_circle" title="Circle"></div>\r\n
\t\t<div id="tool_fhellipse" title="Free-Hand Ellipse"></div>\r\n
\t</div>\r\n
</div> <!-- tools_left -->\r\n
\r\n
<div id="tools_bottom" class="tools_panel">\r\n
\r\n
\t<!-- Zoom buttons -->\r\n
\t<div id="zoom_panel" class="toolset" title="Change zoom level">\r\n
\t\t<label>\r\n
\t\t<span id="zoomLabel" class="zoom_tool icon_label"></span>\r\n
\t\t<input id="zoom" size="3" value="100" type="text" />\r\n
\t\t</label>\r\n
\t\t<div id="zoom_dropdown" class="dropdown">\r\n
\t\t\t<button></button>\r\n
\t\t\t<ul>\r\n
\t\t\t\t<li>1000%</li>\r\n
\t\t\t\t<li>400%</li>\r\n
\t\t\t\t<li>200%</li>\r\n
\t\t\t\t<li>100%</li>\r\n
\t\t\t\t<li>50%</li>\r\n
\t\t\t\t<li>25%</li>\r\n
\t\t\t\t<li id="fit_to_canvas" data-val="canvas">Fit to canvas</li>\r\n
\t\t\t\t<li id="fit_to_sel" data-val="selection">Fit to selection</li>\r\n
\t\t\t\t<li id="fit_to_layer_content" data-val="layer">Fit to layer content</li>\r\n
\t\t\t\t<li id="fit_to_all" data-val="content">Fit to all content</li>\r\n
\t\t\t\t<li>100%</li>\r\n
\t\t\t</ul>\r\n
\t\t</div>\r\n
\t\t<div class="tool_sep"></div>\r\n
\t</div>\r\n
\r\n
\t<div id="tools_bottom_2">\r\n
\t\t<div id="color_tools">\r\n
\t\t\t\r\n
\t\t\t<div class="color_tool" id="tool_fill">\r\n
\t\t\t\t<label class="icon_label" for="fill_color" title="Change fill color"></label>\r\n
\t\t\t\t<div class="color_block">\r\n
\t\t\t\t\t<div id="fill_bg"></div>\r\n
\t\t\t\t\t<div id="fill_color" class="color_block"></div>\r\n
\t\t\t\t</div>\r\n
\t\t\t</div>\r\n
\t\t\r\n
\t\t\t<div class="color_tool" id="tool_stroke">\r\n
\t\t\t\t<label class="icon_label" title="Change stroke color"></label>\r\n
\t\t\t\t<div class="color_block">\r\n
\t\t\t\t\t<div id="stroke_bg"></div>\r\n
\t\t\t\t\t<div id="stroke_color" class="color_block" title="Change stroke color"></div>\r\n
\t\t\t\t</div>\r\n
\t\t\t\t\r\n
\t\t\t\t<label class="stroke_label">\r\n
\t\t\t\t\t<input id="stroke_width" title="Change stroke width by 1, shift-click to change by 0.1" size="2" value="5" type="text" data-attr="Stroke Width"/>\r\n
\t\t\t\t</label>\r\n
\r\n
\t\t\t\t<div id="toggle_stroke_tools" title="Show/hide more stroke tools"></div>\r\n
\t\t\t\t\r\n
\t\t\t\t<label class="stroke_tool">\r\n
\t\t\t\t\t<select id="stroke_style" title="Change stroke dash style">\r\n
\t\t\t\t\t\t<option selected="selected" value="none">&#8212;</option>\r\n
\t\t\t\t\t\t<option value="2,2">...</option>\r\n
\t\t\t\t\t\t<option value="5,5">- -</option>\r\n
\t\t\t\t\t\t<option value="5,2,2,2">- .</option>\r\n
\t\t\t\t\t\t<option value="5,2,2,2,2,2">- ..</option>\r\n
\t\t\t\t\t</select>\r\n
\t\t\t\t</label>\r\n
\r\n
\t\t\t\t<div class="stroke_tool dropdown" id="stroke_linejoin">\r\n
\t\t\t\t\t<div id="cur_linejoin" title="Linejoin: Miter"></div>\r\n
\t\t\t\t\t<button></button>\r\n
\t\t\t\t</div>\r\n
\t\t\t\t\r\n
\t\t\t\t<div class="stroke_tool dropdown" id="stroke_linecap">\r\n
\t\t\t\t\t<div id="cur_linecap" title="Linecap: Butt"></div>\r\n
\t\t\t\t\t<button></button>\r\n
\t\t\t\t</div>\r\n
\r\n
\t\t\t</div>\r\n
\r\n
\t\t\t<div class="color_tool" id="tool_opacity" title="Change selected item opacity">\r\n
\t\t\t\t<label>\r\n
\t\t\t\t\t<span id="group_opacityLabel" class="icon_label"></span>\r\n
\t\t\t\t\t<input id="group_opacity" size="3" value="100" type="text"/>\r\n
\t\t\t\t</label>\r\n
\t\t\t\t<div id="opacity_dropdown" class="dropdown">\r\n
\t\t\t\t\t<button></button>\r\n
\t\t\t\t\t<ul>\r\n
\t\t\t\t\t\t<li>0%</li>\r\n
\t\t\t\t\t\t<li>25%</li>\r\n
\t\t\t\t\t\t<li>50%</li>\r\n
\t\t\t\t\t\t<li>75%</li>\r\n
\t\t\t\t\t\t<li>100%</li>\r\n
\t\t\t\t\t\t<li class="special"><div id="opac_slider"></div></li>\r\n
\t\t\t\t\t</ul>\r\n
\t\t\t\t</div>\r\n
\t\t\t</div>\r\n
\t\t</div>\r\n
\r\n
\t</div>\r\n
\r\n
\t<div id="tools_bottom_3">\r\n
\t\t<div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>\r\n
\t</div>\r\n
\t<!-- <div id="copyright"><span id="copyrightLabel">Powered by</span> <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.6-beta</a></div> -->\r\n
</div>\r\n
\r\n
<div id="option_lists" class="dropdown">\r\n
\t<ul id="linejoin_opts">\r\n
\t\t<li class="tool_button current" id="linejoin_miter" title="Linejoin: Miter"></li>\r\n
\t\t<li class="tool_button" id="linejoin_round" title="Linejoin: Round"></li>\r\n
\t\t<li class="tool_button" id="linejoin_bevel" title="Linejoin: Bevel"></li>\r\n
\t</ul>\r\n
\t\r\n
\t<ul id="linecap_opts">\r\n
\t\t<li class="tool_button current" id="linecap_butt" title="Linecap: Butt"></li>\r\n
\t\t<li class="tool_button" id="linecap_square" title="Linecap: Square"></li>\r\n
\t\t<li class="tool_button" id="linecap_round" title="Linecap: Round"></li>\r\n
\t</ul>\r\n
\t\r\n
\t<ul id="position_opts" class="optcols3">\r\n
\t\t<li class="push_button" id="tool_posleft" title="Align Left"></li>\r\n
\t\t<li class="push_button" id="tool_poscenter" title="Align Center"></li>\r\n
\t\t<li class="push_button" id="tool_posright" title="Align Right"></li>\r\n
\t\t<li class="push_button" id="tool_postop" title="Align Top"></li>\r\n
\t\t<li class="push_button" id="tool_posmiddle" title="Align Middle"></li>\r\n
\t\t<li class="push_button" id="tool_posbottom" title="Align Bottom"></li>\r\n
\t</ul>\r\n
</div>\r\n
\r\n
\r\n
<!-- hidden divs -->\r\n
<div id="color_picker"></div>\r\n
\r\n
</div> <!-- svg_editor -->\r\n
\r\n
<div id="svg_source_editor">\r\n
\t<div class="overlay"></div>\r\n
\t<div id="svg_source_container">\r\n
\t\t<div id="tool_source_back" class="toolbar_button">\r\n
\t\t\t<button id="tool_source_save">Apply Changes</button>\r\n
\t\t\t<button id="tool_source_cancel">Cancel</button>\r\n
\t\t</div>\r\n
\t\t<div id="save_output_btns">\r\n
\t\t\t<p id="copy_save_note">Copy the contents of this box into a text editor, then save the file with a .svg extension.</p>\r\n
\t\t\t<button id="copy_save_done">Done</button>\r\n
\t\t</div>\r\n
\t\t<form>\r\n
\t\t\t<textarea id="svg_source_textarea" spellcheck="false"></textarea>\r\n
\t\t</form>\r\n
\t</div>\r\n
</div>\r\n
\r\n
\r\n
<div id="svg_docprops">\r\n
\t<div class="overlay"></div>\r\n
\t<div id="svg_docprops_container">\r\n
\t\t<div id="tool_docprops_back" class="toolbar_button">\r\n
\t\t\t<button id="tool_docprops_save">OK</button>\r\n
\t\t\t<button id="tool_docprops_cancel">Cancel</button>\r\n
\t\t</div>\r\n
\r\n
\r\n
\t\t<fieldset id="svg_docprops_docprops">\r\n
\t\t\t<legend id="svginfo_image_props">Image Properties</legend>\r\n
\t\t\t<label>\r\n
\t\t\t\t<span id="svginfo_title">Title:</span>\r\n
\t\t\t\t<input type="text" id="canvas_title"/>\r\n
\t\t\t</label>\r\n
\r\n
\t\t\t<fieldset id="change_resolution">\r\n
\t\t\t\t<legend id="svginfo_dim">Canvas Dimensions</legend>\r\n
\r\n
\t\t\t\t<label><span id="svginfo_width">width:</span> <input type="text" id="canvas_width" size="6"/></label>\r\n
\r\n
\t\t\t\t<label><span id="svginfo_height">height:</span> <input type="text" id="canvas_height" size="6"/></label>\r\n
\r\n
\t\t\t\t<label>\r\n
\t\t\t\t\t<select id="resolution">\r\n
\t\t\t\t\t\t<option id="selectedPredefined" selected="selected">Select predefined:</option>\r\n
\t\t\t\t\t\t<option>640x480</option>\r\n
\t\t\t\t\t\t<option>800x600</option>\r\n
\t\t\t\t\t\t<option>1024x768</option>\r\n
\t\t\t\t\t\t<option>1280x960</option>\r\n
\t\t\t\t\t\t<option>1600x1200</option>\r\n
\t\t\t\t\t\t<option id="fitToContent" value="content">Fit to Content</option>\r\n
\t\t\t\t\t</select>\r\n
\t\t\t\t</label>\r\n
\t\t\t</fieldset>\r\n
\r\n
\t\t\t<fieldset id="image_save_opts">\r\n
\t\t\t\t<legend id="includedImages">Included Images</legend>\r\n
\t\t\t\t<label><input type="radio" name="image_opt" value="embed" checked="checked"/> <span id="image_opt_embed">Embed data (local files)</span> </label>\r\n
\t\t\t\t<label><input type="radio" name="image_opt" value="ref"/> <span id="image_opt_ref">Use file reference</span> </label>\r\n
\t\t\t</fieldset>\r\n
\t\t</fieldset>\r\n
\r\n
\t</div>\r\n
</div>\r\n
\r\n
<div id="svg_prefs">\r\n
\t<div class="overlay"></div>\r\n
\t<div id="svg_prefs_container">\r\n
\t\t<div id="tool_prefs_back" class="toolbar_button">\r\n
\t\t\t<button id="tool_prefs_save">OK</button>\r\n
\t\t\t<button id="tool_prefs_cancel">Cancel</button>\r\n
\t\t</div>\r\n
\r\n
\t\t<fieldset>\r\n
\t\t\t<legend id="svginfo_editor_prefs">Editor Preferences</legend>\r\n
\r\n
\t\t\t<label><span id="svginfo_lang">Language:</span>\r\n
\t\t\t\t<!-- Source: http://en.wikipedia.org/wiki/Language_names -->\r\n
\t\t\t\t<select id="lang_select">\r\n
\t\t\t\t <option id="lang_ar" value="ar">العربية</option>\r\n
\t\t\t\t\t<option id="lang_cs" value="cs">Čeština</option>\r\n
\t\t\t\t\t<option id="lang_de" value="de">Deutsch</option>\r\n
\t\t\t\t\t<option id="lang_en" value="en" selected="selected">English</option>\r\n
\t\t\t\t\t<option id="lang_es" value="es">Español</option>\r\n
\t\t\t\t\t<option id="lang_fa" value="fa">فارسی</option>\r\n
\t\t\t\t\t<option id="lang_fr" value="fr">Français</option>\r\n
\t\t\t\t\t<option id="lang_fy" value="fy">Frysk</option>\r\n
\t\t\t\t\t<option id="lang_hi" value="hi">&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;, &#2361;&#2367;&#2306;&#2342;&#2368;</option>\r\n
\t\t\t\t\t<option id="lang_it" value="it">Italiano</option>\r\n
\t\t\t\t\t<option id="lang_ja" value="ja">日本語</option>\r\n
\t\t\t\t\t<option id="lang_nl" value="nl">Nederlands</option>\r\n
\t\t\t\t\t<option id="lang_pl" value="pl">Polski</option>\r\n
\t\t\t\t\t<option id="lang_pt-BR" value="pt-BR">Português (BR)</option>\r\n
\t\t\t\t\t<option id="lang_ro" value="ro">Română</option>\r\n
\t\t\t\t\t<option id="lang_ru" value="ru">Русский</option>\r\n
\t\t\t\t\t<option id="lang_sk" value="sk">Slovenčina</option>\r\n
\t\t\t\t\t<option id="lang_zh-TW" value="zh-TW">繁體中文</option>\r\n
\t\t\t\t</select>\r\n
\t\t\t</label>\r\n
\r\n
\t\t\t<label><span id="svginfo_icons">Icon size:</span>\r\n
\t\t\t\t<select id="iconsize">\r\n
\t\t\t\t\t<option id="icon_small" value="s">Small</option>\r\n
\t\t\t\t\t<option id="icon_medium" value="m" selected="selected">Medium</option>\r\n
\t\t\t\t\t<option id="icon_large" value="l">Large</option>\r\n
\t\t\t\t\t<option id="icon_xlarge" value="xl">Extra Large</option>\r\n
\t\t\t\t</select>\r\n
\t\t\t</label>\r\n
\r\n
\t\t\t<fieldset id="change_background">\r\n
\t\t\t\t<legend id="svginfo_change_background">Editor Background</legend>\r\n
\t\t\t\t<div id="bg_blocks"></div>\r\n
\t\t\t\t<label><span id="svginfo_bg_url">URL:</span> <input type="text" id="canvas_bg_url"/></label>\r\n
\t\t\t\t<p id="svginfo_bg_note">Note: Background will not be saved with image.</p>\r\n
\t\t\t</fieldset>\r\n
\r\n
\t\t\t<fieldset id="change_grid">\r\n
\t\t\t\t<legend id="svginfo_grid_settings">Grid</legend>\r\n
\t\t\t\t<label><span id="svginfo_snap_onoff">Snapping on/off</span><input type="checkbox" value="snapping_on" id="grid_snapping_on"/></label>\r\n
\t\t\t\t<label><span id="svginfo_snap_step">Snapping Step-Size:</span> <input type="text" id="grid_snapping_step" size="3" value="10"/></label>\r\n
\t\t\t\t<label><span id="svginfo_grid_color">Grid color:</span> <input type="text" id="grid_color" size="3" value="#000"/></label>\r\n
\t\t\t</fieldset>\r\n
\r\n
\t\t\t<fieldset id="units_rulers">\r\n
\t\t\t\t<legend id="svginfo_units_rulers">Units &amp; Rulers</legend>\r\n
\t\t\t\t<label><span id="svginfo_rulers_onoff">Show rulers</span><input type="checkbox" value="show_rulers" id="show_rulers" checked="checked"/></label>\r\n
\t\t\t\t<label>\r\n
\t\t\t\t\t<span id="svginfo_unit">Base Unit:</span>\r\n
\t\t\t\t\t<select id="base_unit">\r\n
\t\t\t\t\t\t<option value="px">Pixels</option>\r\n
\t\t\t\t\t\t<option value="cm">Centimeters</option>\r\n
\t\t\t\t\t\t<option value="mm">Millimeters</option>\r\n
\t\t\t\t\t\t<option value="in">Inches</option>\r\n
\t\t\t\t\t\t<option value="pt">Points</option>\r\n
\t\t\t\t\t\t<option value="pc">Picas</option>\r\n
\t\t\t\t\t\t<option value="em">Ems</option>\r\n
\t\t\t\t\t\t<option value="ex">Exs</option>\r\n
\t\t\t\t\t</select>\r\n
\t\t\t\t</label>\r\n
\t\t\t\t<!-- Should this be an export option instead? -->\r\n
<!-- \r\n
\t\t\t\t<span id="svginfo_unit_system">Unit System:</span>\r\n
\t\t\t\t<label>\r\n
\t\t\t\t\t<input type="radio" name="unit_system" value="single" checked="checked"/>\r\n
\t\t\t\t\t<span id="svginfo_single_type_unit">Single type unit</span>\r\n
\t\t\t\t\t<small id="svginfo_single_type_unit_sub">CSS unit type is set on root element. If a different unit type is entered in a text field, it is converted back to user units on export.</small>\r\n
\t\t\t\t</label>\r\n
\t\t\t\t<label>\r\n
\t\t\t\t\t<input type="radio" name="unit_system" value="multi"/>\r\n
\t\t\t\t\t<span id="svginfo_multi_units">Multiple CSS units</span> \r\n
\t\t\t\t\t<small id="svginfo_single_type_unit_sub">Attributes can be given different CSS units, which may lead to inconsistant results among viewers.</small>\r\n
\t\t\t\t</label>\r\n
-->\r\n
\t\t\t</fieldset>\r\n
\r\n
\t\t</fieldset>\r\n
\r\n
\t</div>\r\n
</div>\r\n
\r\n
<div id="dialog_box">\r\n
\t<div class="overlay"></div>\r\n
\t<div id="dialog_container">\r\n
\t\t<div id="dialog_content"></div>\r\n
\t\t<div id="dialog_buttons"></div>\r\n
\t</div>\r\n
</div>\r\n
\r\n
<ul id="cmenu_canvas" class="contextMenu">\r\n
\t<li><a href="#cut">Cut</a></li>\r\n
\t<li><a href="#copy">Copy</a></li>\r\n
\t<li><a href="#paste">Paste</a></li>\r\n
\t<li><a href="#paste_in_place">Paste in Place</a></li>\r\n
\t<li class="separator"><a href="#delete">Delete</a></li>\r\n
\t<li class="separator"><a href="#group">Group<span class="shortcut">G</span></a></li>\r\n
\t<li><a href="#ungroup">Ungroup<span class="shortcut">G</span></a></li>\r\n
\t<li class="separator"><a href="#move_front">Bring to Front<span class="shortcut">SHFT+CTRL+]</span></a></li>\r\n
\t<li><a href="#move_up">Bring Forward<span class="shortcut">CTRL+]</span></a></li>\r\n
\t<li><a href="#move_down">Send Backward<span class="shortcut">CTRL+[</span></a></li>\r\n
\t<li><a href="#move_back">Send to Back<span class="shortcut">SHFT+CTRL+[</span></a></li>\r\n
</ul>\r\n
\r\n
\r\n
<ul id="cmenu_layers" class="contextMenu">\r\n
\t<li><a href="#dupe">Duplicate Layer...</a></li>\r\n
\t<li><a href="#delete">Delete Layer</a></li>\r\n
\t<li><a href="#merge_down">Merge Down</a></li>\r\n
\t<li><a href="#merge_all">Merge All</a></li>\r\n
</ul>\r\n
\r\n
</body>\r\n
</html>\r\n
\r\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>boom.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/* Sample style sheet for boom!, the book microformat */\n
/* written by Hakon Wium Lie and Bert Bos, November 2005 */\n
/* You may reuse this style sheet for any purpose without any fees */\n
\n
\n
html { \n
margin: 0;\n
font: 10pt/1.26 "Gill Sans", sans-serif;\n
}\n
\n
body { \n
margin: 0 0 0 28%;\n
counter-reset: figure 0 table 0 page 0;\n
}\n
\n
h1, h2, h3, h4, h5, h6 { \n
font-family: "Gill Sans", sans-serif;\n
margin: 2em 0 0.5em 0;\n
page-break-after: avoid;\n
} \n
\n
h1 { \n
padding: 2em 0 2em 0;\n
margin: 0;\n
font-size: 2.4em;\n
font-weight: 900;\n
}\n
\n
h2 { \n
font-size: 1.2em;\n
text-transform: uppercase;\n
font-weight: bold;\n
}\n
\n
h3 { \n
font-size: 1em;\n
font-weight: bold;\n
}\n
\n
q::before {\n
content: "\\201C";\n
}\n
\n
q::after {\n
content: "\\201D";\n
}\n
\n
p { margin: 0 }\n
p + p { text-indent: 1.3em }\n
p.sidenote + p, p.caption, p.art { text-indent: 0 }\n
\n
p.author {\n
margin-top: 2em;\n
text-indent: 0;\n
text-align: right;\n
}\n
\n
p.avoid-page-break-after{ page-break-after: avoid }\n
\n
pre { margin: 1em 1.3em; }\n
\n
a { text-decoration: none; color: black }\n
\n
/* cross-references */\n
\n
a.pageref::after { content: " on page " target-counter(attr(href), page); }\n
a.chapref::before { content: " Chapter " target-counter(attr(href), chapter) ", "; }\n
a.figref { content: " Figure " target-counter(attr(href), figure); }\n
a.tableref { content: " Table " target-counter(attr(href), table); }\n
\n
/* sidenotes */\n
\n
.sidenote {\n
float: left;\n
clear: left;\n
margin: 0 0 1em -41%;\n
width: 37%;\n
font-size: 0.9em;\n
font-style: normal;\n
text-indent: 0;\n
text-align: right;\n
page-break-inside: avoid;\n
}\n
\n
/* sidebars */\n
\n
div.sidebar {\n
float: top-next;\n
margin: 1.2em 0 1.2em 0;\n
border: thin solid;\n
background: #CCC;\n
padding: 0.5em 1em;\n
page-break-inside: avoid;\n
column-count: 2;\n
column-gap: 1.5em;\n
}\n
\n
div.sidebar h2 {\n
margin-top: 0;\n
}\n
\n
/* figures and tables*/\n
\n
div.figure {\n
margin: 1em 0;\n
counter-increment: figure;\n
page-break-inside: avoid;\n
}\n
\n
div.figure .caption, div.table .caption {\n
float: left;\n
clear: left;\n
width: 37%;\n
text-align: right;\n
font-size: 0.9em;\n
margin: 0 0 1.2em -40%;\n
}\n
\n
div.figure .caption::before {\n
content: "Figure " counter(figure) ": ";\n
font-weight: bold;\n
}\n
\n
div.table .caption::before {\n
content: "Table " counter(table) ": ";\n
font-weight: bold;\n
}\n
\n
div.table {\n
margin: 1em 0;\n
counter-increment: table;\n
}\n
\n
div.table th {\n
text-align: left;\n
}\n
\n
table th, table td {\n
text-align: left;\n
padding-right: 1em;\n
}\n
\n
table.lined td, table.lined th {\n
border-top: none;\n
border-bottom: thin dotted;\n
padding-top: 0.2em;\n
padding-bottom: 0.2em;\n
}\n
\n
\n
@page {\n
margin: 27mm 16mm 27mm 16mm;\n
size: 7in 9.25in;\n
\n
@footnotes {\n
border-top: thin solid black;\n
padding-top: 0.3em;\n
margin-top: 0.6em;\n
margin-left: 30%;\n
}\n
}\n
\n
\n
/* define default page and names pages: cover, blank, frontmatter */\n
\n
@page :left {\n
@top-left {\n
font: 11pt "Gill Sans", serif;\n
content: "ERP5";\n
vertical-align: bottom;\n
padding-bottom: 2em;\n
}\n
\n
@bottom-left {\n
font: 11pt "Gill Sans", serif;\n
content: counter(page);\n
padding-top: 2em;\n
vertical-align: top;\n
}\n
}\n
\n
@page :right {\n
@top-right {\n
font: 11pt "Gill Sans", serif;\n
content: string(header, first); \n
vertical-align: bottom;\n
padding-bottom: 2em; \n
}\n
\n
@bottom-right {\n
font: 11pt "Gill Sans", serif;\n
content: counter(page);\n
text-align: right;\n
vertical-align: top;\n
padding-top: 2em;\n
}\n
}\n
\n
@page frontmatter :left {\n
@top-left {\n
font: 11pt "Gill Sans", serif;\n
content: string(title);\n
vertical-align: bottom;\n
padding-bottom: 2em;\n
}\n
\n
@bottom-left {\n
font: 11pt "Gill Sans", serif;\n
content: counter(page, lower-roman);\n
padding-top: 2em;\n
vertical-align: top;\n
}\n
}\n
\n
@page cover { margin: 0; }\n
\n
@page frontmatter :right {\n
@top-right {\n
font: 11pt "Gill Sans", serif;\n
content: string(header, first); \n
vertical-align: bottom;\n
padding-bottom: 2em; \n
}\n
\n
@bottom-right {\n
font: 11pt "Gill Sans", serif;\n
content: counter(page, lower-roman);\n
text-align: right;\n
vertical-align: top;\n
padding-top: 2em;\n
}\n
}\n
\n
@page blank :left {\n
@top-left { content: normal }\n
@bottom-left { content: normal }\n
}\n
\n
@page blank :right {\n
@top-right { content: normal }\n
@bottom-right { content: normal }\n
}\n
\n
/* footnotes */\n
\n
.footnote {\n
display: none; /* default rule */\n
\n
display: prince-footnote; /* prince-specific rules */\n
position: footnote;\n
footnote-style-position: inside;\n
\n
counter-increment: footnote;\n
margin-left: 1.4em;\n
font-size: 90%;\n
line-height: 1.4;\n
}\n
\n
.footnote::footnote-call {\n
vertical-align: super;\n
font-size: 80%;\n
}\n
\n
.footnote::footnote-marker {\n
vertical-align: super;\n
color: green;\n
padding-right: 0.4em;\n
}\n
\n
\n
/*\n
A book consists of different types of sections. We propose to use\n
DIV elements with these class names:\n
\n
frontcover\n
halftitlepage: contains the title of the book\n
titlepage: contains the title of the book, name of author(s) and publisher\n
imprint: left page with copyright, publisher, library printing information\n
dedication: right page with short dedication\n
foreword: written by someone other than the author(s)\n
toc: table of contents\n
preface: preface, including acknowledgements\n
chapter: each chapter is given its own DIV element\n
references: contains list of references\n
appendix: each appendix is given its own \n
bibliography\n
glossary\n
index\n
colophon: describes how the book was produced\n
backcover\n
\n
A book will use several of the types listed above, but few books\n
will use all of them.\n
*/\n
\n
/* which section uses which named page */\n
\n
div.halftitlepage, div.titlepage, div.imprint, div.dedication { page: blank }\n
div.foreword, div.toc, div.preface { page: frontmatter }\n
\n
\n
/* page breaks */\n
\n
div.frontcover, div.halftitlepage, div.titlepage { page-break-before: right }\n
div.imprint { page-break-before: always }\n
div.dedication, div.foreword, div.toc, div.preface, div.chapter, div.part, div.reference, \n
div.appendix, div.bibliography, div.glossary, div.index, div.colophon { \n
page-break-before: always \n
}\n
div.backcover { page-break-before: left }\n
\n
/* the front cover; this code is probably not very reusable by other books */\n
\n
div.frontcover { page: cover; }\n
\n
div.frontcover img {\n
position: absolute;\n
width: 7in; height: 9.25in;\n
left: 0; top: 0;\n
z-index: -1;\n
}\n
\n
div.frontcover h1 {\n
position: absolute;\n
left: 2cm; top: 1cm;\n
color: white;\n
font-size: 44pt;\n
font-weight: normal;\n
}\n
\n
div.frontcover h2 {\n
position: absolute;\n
right: 0; top: 5cm;\n
color: black;\n
background: white;\n
font-size: 16pt;\n
font-weight: normal;\n
padding: 0.2em 5em 0.2em 1em;\n
letter-spacing: 0.15em;\n
}\n
\n
div.frontcover h3 {\n
position: absolute;\n
left: 2cm; top: 7cm;\n
color: white;\n
font-size: 24pt;\n
font-weight: normal;\n
}\n
\n
div.frontcover p {\n
position: absolute;\n
left: 2cm; bottom: 1.5cm;\n
font-size: 24pt;\n
color: black;\n
font-weight: bold;\n
text-transform: uppercase;\n
}\n
\n
\n
/* titlepage, halftitlepage */\n
\n
div.titlepage h1, div.halftitlepage h1 { margin-bottom: 2em; }\n
div.titlepage h2, div.halftitlepage h2 { font-size: 1.2em; margin-bottom: 3em; }\n
div.titlepage h3, div.halftitlepage h3 { font-size: 1em; margin-bottom: 3em; }\n
div.titlepage p, div.halftitlepage p { \n
font-size: 1.4em;\n
font-weight: bold;\n
margin: 0; padding: 0;\n
}\n
\n
\n
/* TOC */\n
\n
ul.toc, ul.toc ul { \n
list-style-type: none;\n
margin: 0; padding: 0;\n
}\n
ul.toc ul {\n
margin-left: 1em;\n
font-weight: normal;\n
}\n
ul.toc > li { \n
font-weight: bold;\n
margin-bottom: 0.5em;\n
}\n
ul.toc a::after {\n
content: leader(\'.\') target-counter(attr(href), page);\n
font-style: normal;\n
}\n
ul.toc > li.frontmatter a::after {\n
content: leader(\'.\') target-counter(attr(href), page, lower-roman);\n
font-style: normal;\n
}\n
ul.toc > li.endmatter a::after {\n
content: leader(\'.\') target-counter(attr(href), page);\n
font-style: normal;\n
}\n
ul.toc > li.chapter::before {\n
content: "Chapter " counter(toc-chapter, decimal);\n
display: block;\n
margin: 1em 0 0.1em -2.5cm;\n
font-weight: normal;\n
counter-increment: toc-chapter;\n
page-break-after: avoid;\n
}\n
\n
/* chapter numbers */\n
\n
div.chapter { counter-increment: chapter; }\n
\n
h1::before {\n
white-space: pre;\n
margin-left: -2.5cm;\n
font-size: 50%;\n
content: "\\B0 \\B0 \\B0 \\B0 \\B0 \\A"; /* ornaments */\n
}\n
\n
div.chapter h1::before { content: "Chapter " counter(chapter) " \\A"; }\n
\n
div.frontcover h1::before, div.titlepage h1::before, div.halftitlepage h1::before {\n
content: normal; /* that is, none */\n
}\n
\n
h1 { string-set: header content();}\n
\n
div.chapter h1 {\n
string-set: header "Chapter " counter(chapter) ": " content();\n
page-break-after: avoid;\n
}\n
\n
div.part {\n
counter-reset: chapter 0;\n
}\n
\n
/* index */\n
\n
ul.index { \n
list-style-type: none;\n
margin: 0; padding: 0;\n
column-count: 2;\n
column-gap: 1em;\n
}\n
\n
ul.index a::after { content: ", " target-counter(attr(href), page); }\n
\n
\n
span.element, span.attribute {\n
text-transform: uppercase;\n
font-weight: bold;\n
font-size: 80%;\n
}\n
span.property { font-weight: bold }\n
code, span.css, span.value, span.declaration {\n
font: 90% "Lucida Console", "Lucida Sans Typewriter", monospace;\n
}\n
\n
\n
@media screen, handheld {\n
html { margin: 1em; font: 14px "Gill Sans", sans-serif; }\n
h1 { margin-bottom: 0.5em }\n
div.frontcover, div.halftitlepage, div.titlepage, div.imprint, \n
div.dedication, div.foreword, div.toc, div.index { display: none }\n
}
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>erp5_run_my_docs.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved.\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
\n
//Add indentation to an HTML element\n
function addIndentation(container, first, level){\n
var children = container.children;\n
var text;\n
var n = children.length;\n
if(first){\n
text = container.innerHTML.trim().replace(\'>\', \'>\\n\').split(\'\\n\');\n
var m = text.length;\n
for(var i = 0; i < m; i++){\n
text[i] = text[i].trim();\n
}\n
}\n
else\n
text = container.innerHTML.trim().split(\'\\n\');\n
if(n == 0 && text.length == 1)\n
container.innerHTML = text[0];\n
else if(n == 0) {\n
container.innerHTML = \'\\n \' + text.join(\'\\n \') + \'\\n\';\n
}\n
else {\n
container.innerHTML = text.join(\'\\n\');\n
text = \'\';\n
children = container.childNodes;\n
n = children.length;\n
for(var i = 0; i < n; i++){\n
var child = children[i];\n
var addNewLine = false;\n
if(child.nodeType == 1){\n
text += addIndentation(child, false, 0);\n
addNewLine = child.tagName.length > 1 && child.tagName != \'P\' && i < n - 1;\n
}\n
else{\n
var textNotEmpty = child.textContent.trim() != \'\';\n
if(textNotEmpty)\n
text += child.textContent;\n
addNewLine = textNotEmpty && child.textContent.search(\'\\n\') > -1 && i < n - 1;\n
}\n
if(addNewLine)\n
text += \'\\n\';\n
}\n
if(first){\n
text = container.innerHTML.split(\'\\n\');\n
var result = \'\\n \';\n
first = true;\n
n = text.length;\n
for(var i = 0; i < n; i++){\n
if(text[i].trim() != \'\'){\n
if(first){\n
first = false;\n
result += text[i];\n
}\n
else\n
result += \'\\n \' + text[i];\n
}\n
}\n
result += \'\\n\';\n
container.innerHTML = result;\n
}\n
else\n
container.innerHTML = \'\\n \' + text.split(\'\\n\').join(\'\\n \') + \'\\n\';\n
}\n
var element = document.createElement(\'div\');\n
element.appendChild(container.cloneNode(true));\n
var whitespaces = Array(level + 1).join(\' \');\n
return whitespaces + element.innerHTML.split(\'\\n\').join(\'\\n\' + whitespaces);\n
}\n
\n
function indent(container, level){\n
return addIndentation(container, true, level);\n
}
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>html5_book.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved.\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
var textContent, testPageHTML, body;\n
\n
function isUrl(s) {\n
var regexp = /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?/\n
return regexp.test(s);\n
}\n
\n
function cleanForPrince(){\n
var temp = $(\'iframe\', parent.document).contents().children().clone();\n
$(\'script\', temp).remove();\n
$(\'style, meta:not([name=author])\', temp).remove();\n
$(\'head\', temp).prepend($(\'<meta>\').attr(\'http-equiv\',\'content-type\').attr(\'content\', \'text/html; charset=utf-8\'));\n
var images = $(\'img\', temp);\n
n = images.length;\n
for(var i = 0; i < n; i++){\n
var img = images.eq(i);\n
var src = img.attr(\'src\').split(\'?format\')[0].split(\'/\');\n
var extension = img.attr(\'type\');\n
if(extension == undefined)\n
extension = "png";\n
else\n
extension = extension.split(\'/\')[1].split(\'+\')[0];\n
img.attr(\'src\',src[src.length - 1] + \'.\' + extension);\n
}\n
var text = temp.html();\n
var result = "", tagName = "", c = "", chr = "";\n
var n = text.length;\n
if (text == null) {\n
return false;\n
}\n
var tag = false, tagNameParsing = false;\n
for(var i = 0; i < n; i++){\n
chr = text[i];\n
c = chr.toLowerCase();\n
if(c == \'<\' && tag == false){\n
tag = true;\n
tagNameParsing = true;\n
}\n
else if(tag){\n
if(c == \' \')\n
tagNameParsing = false;\n
else if(c == \'>\'){\n
tagNameParsing = false;\n
tag = false;\n
if(tagName == \'img\')\n
result += \'/\';\n
tagName = \'\';\n
}\n
else if(tagNameParsing){\n
if(c == \'i\' && tagName == \'\')\n
tagName += c;\n
else if(c == \'m\' && tagName == \'i\')\n
tagName += c;\n
else if(c == \'g\' && tagName == \'im\')\n
tagName += c;\n
}\n
}\n
result += chr;\n
}\n
$(\'textarea[name=field_book_text_content]\', parent.document).val(\'<html>\\n\' + result + \'\\n</html>\');\n
return false;\n
}\n
\n
function changeTag(element, tag){\n
var tag = $(\'<\' + tag + \'>\').html(element.html());\n
element.after(tag);\n
element.remove();\n
return tag;\n
}\n
\n
function parseList(text){\n
return text.replace("[","").replace("]","").replace(/\'/g,"").replace(/,/g,", ");\n
}\n
\n
function generateTblContent(title, id, className){\n
return $(\'<li>\').addClass(className).append($(\'<a>\').attr(\'href\',\'#\' + id).text(title));\n
}\n
\n
function generateToCLine(){\n
return generateTblContent("Table of Contents", \'toc-h-1\', \'frontmatter\');\n
}\n
\n
function generateFMLine(title, id){\n
return generateTblContent(title, \'frontmatter-h-\' + id, \'frontmatter\');\n
}\n
\n
function generateEMLine(title, id){\n
return generateTblContent(title, \'endmatter-h-\' + id, \'endmatter\');\n
}\n
\n
function generatePartLine(title, id){\n
return generateTblContent(title,\'part-h-\' + id, \'part\');\n
}\n
\n
function addLinksToChapters(chapterContainer, id){\n
var chapters = chapterContainer.children();\n
var n = chapters.length;\n
for(var i = 0; i < n; i++){\n
var chap = chapters.eq(i);\n
chap.addClass(\'chapter\');\n
$(\'a\', chap).attr(\'href\', \'#chapter-h-\' + id + \'-\' + (i+1));\n
}\n
return chapterContainer;\n
}\n
\n
function addToC(txt){\n
// Add to table of Contents\n
var ul = $(\'<ul>\').addClass(\'toc\');\n
var beginning = true;\n
var counter = 1, partCounter = 1;\n
$(\'body\').prepend($(\'<div>\').addClass(\'toc\').attr(\'id\',\'toc-h-1\').append(ul));\n
ul.html(txt);\n
ul.append(generateToCLine());\n
var headers = $(\'h1\', ul);\n
var n = headers.length;\n
for(var i = 0; i < n; i++){\n
var hdr = headers.eq(i);\n
var j = hdr.index() + 1;\n
var chapterList = ul.children().eq(j)[0];\n
if(chapterList == undefined || chapterList.tagName.toUpperCase() == "UL"){\n
beginning = false;\n
ul.append(generatePartLine(hdr.text(), partCounter).append(addLinksToChapters($(chapterList), partCounter)));\n
partCounter++;\n
counter = 1;\n
}\n
else{\n
if(beginning)\n
ul.append(generateFMLine(hdr.text(), counter));\n
else\n
ul.append(generateEMLine(hdr.text(), counter));\n
counter++;\n
}\n
}\n
$(\'> h1\', ul).remove();\n
}\n
\n
function fetchTextInfo(hasToC, txt){\n
$.get(\'TestPage_getDetail\', function(details, status, xhr){\n
details = details.split(\'\\n\');\n
var title = details[0], shortTitle = details[1], description = details[2], authors = parseList(details[3]);\n
var year = details[4].split(\'/\')[0];\n
var titleObj = $(\'title\');\n
if(titleObj.length > 0)\n
titleObj.text(title);\n
else\n
$(\'head\').append($(\'<title>\').text(title));\n
$(\'head\').prepend($(\'<meta>\').attr(\'name\',\'author\').attr(\'content\', authors));\n
titleObj = $(\'<h1>\').text(title);\n
var subtitle = $(\'<h2>\').text(description);\n
var edition = $(\'<h3>\').text(shortTitle);\n
\n
//Add Table of Contents\n
if(hasToC)\n
addToC(txt);\n
//Add imprint\n
$(\'body\').prepend($(\'<div>\').addClass(\'imprint\').append($(\'<p>\').text("Copyright \\u00A9 " + year + \' \' + authors)));\n
//Add Title Page\n
$(\'body\').prepend($(\'<div>\').addClass(\'titlepage\').append(titleObj.clone().addClass(\'no-toc\')).append(subtitle.clone().addClass(\'no-toc\')).append(edition.clone().addClass(\'no-toc\')).append($(\'<p>\').addClass(\'no-toc\').text(authors)));\n
//Add Front Cover\n
$(\'body\').prepend($(\'<div>\').addClass(\'frontcover\').append($(\'<img>\').attr(\'src\',\'canvas?format=\')).append(titleObj).append(subtitle).append(edition));\n
if(hasToC)\n
cleanForPrince();\n
});\n
}\n
\n
function convertChapter(link, container, first, isChapter, chapterCounter, partCounter){\n
$(function() {\n
//Getting the html content\n
$.get(link, function(data, textStatus, jqXHR){\n
var chapterContainer = $(\'<div>\').addClass(\'chapter\').attr(\'id\', \'chapter-h-\' + partCounter + \'-\' + chapterCounter).html(data);\n
link = link.replace("index_html?format=html","");\n
$(\'test\', chapterContainer).remove();\n
var sections = $(\'section\', chapterContainer);\n
$(\'base,meta,link,title\', chapterContainer).remove();\n
changeTag($(\'footer\', chapterContainer), \'p\');\n
var n = sections.length;\n
for(var i = 0; i < n; i++){\n
element = changeTag(sections.eq(i), \'div\');\n
var images = $(\'> img, details > img\', element);\n
var otherImages = $(\'img:not(> img, details > img)\', element);\n
var p = images.length;\n
for(var j = 0; j < p; j++){\n
var img = images[j];\n
var div = $(\'<div>\');\n
var caption = $(\'<p>\').addClass(\'caption\');\n
if(isUrl($(img).attr(\'src\')) == false) {\n
$(img).attr(\'src\', link + $(img).attr(\'src\'));\n
}\n
$(img).before(div);\n
var imgToAppend = $(img);\n
var imgWidth = $(img).attr(\'width\');\n
if( imgWidth == undefined || imgWidth == \'\')\n
imgToAppend.attr(\'width\',\'90%\');\n
div.addClass(\'figure\').append(caption).append($(\'<p>\').addClass(\'art\').append(imgToAppend));\n
caption.text($(img).attr(\'title\'));\n
}\n
var p = otherImages.length;\n
for(var j = 0; j < p; j++){\n
var img = otherImages[j];\n
if((/^http/).test($(img).attr(\'src\')) == false) {\n
$(img).attr(\'src\', link + $(img).attr(\'src\'));\n
}\n
}\n
if(first && i == 0)\n
element.attr(\'style\',\'counter-reset: page 1;\');\n
else if(i != 0){\n
var headers = $(\':header\', element);\n
var j = 0, p = headers.length;\n
for(j = 0; j < p; j++){\n
var hdr = headers[j];\n
changeTag($(hdr), \'H\' + (parseInt(hdr.tagName.split(\'H\')[1]) + 1));\n
}\n
}\n
var details = $(\'details\', element);\n
details.before(details.html());\n
details.remove();\n
element.addClass(\'section\');\n
}\n
//Why using this instead of load? because using load causes errors when the images are loaded, and the process won\'t reach the end in certain cases\n
//Moreover, since we load also descriptions, it\'s better to do it this way so that the user doesn\'t see the trick\n
chapterContainer.append($(\'div.section\', chapterContainer));\n
\n
$(\'test\', chapterContainer).remove();\n
//If it\'s a chapter and not the introduction or an appendix for instance\n
if(isChapter){\n
container.append(chapterContainer);\n
cleanForPrince();\n
}\n
else\n
container.append(chapterContainer.children());\n
if(container[0].tagName.toUpperCase() == \'BODY\'){\n
fetchTextInfo(false, \'\');\n
}\n
});\n
});\n
}\n
\n
function convertBook(linkToBook, container){\n
$(function() {\n
//Getting the html content\n
$.get(linkToBook, function(data, textStatus, jqXHR){\n
linkToBook = linkToBook.replace(\'index_html?format=html\',\'\');\n
var tocContainer = $(\'<div>\').html(data);\n
var sections = tocContainer.children();\n
body = $(\'<body>\');\n
var firstSection = true, firstChapter = true;\n
var n = sections.length;\n
var partCounter = 0, matterCounter = 1;\n
var partContainer = $(\'<div>\');\n
for(var i = 0; i < n; i++){\n
var section = sections.eq(i);\n
var isPart = section[0].tagName.toUpperCase() == \'UL\';\n
//If it\'s a list tag, it\'s a part (containing several chapters)\n
if(isPart){\n
var chapterTitles = $(\'> li\', section);\n
var p = chapterTitles.length;\n
for(var j = 0; j < p; j++){\n
var newChapter = $(\'<div>\').addClass(\'chapter\').attr(\'id\',\'chapter-h-\' + partCounter + \'-\' + (j+1));\n
partContainer.append(newChapter);\n
convertChapter($(\'> a\', chapterTitles.eq(j)).attr(\'href\') + \'/index_html?format=html\', newChapter, false, false);\n
}\n
body.append(partContainer);\n
firstChapter = false;\n
matterCounter = 1;\n
}\n
else{\n
var link = $(\'> a\', section);\n
//If there is a link, then it\'s a frontmatter (or endmatter) like an introduction else it\'s the title of a part\n
if(link.length == 1){\n
var newMatter = $(\'<div>\');\n
if(firstChapter){\n
newMatter.addClass(\'frontmatter\').attr("id","frontmatter-h-" + matterCounter);\n
if(firstSection)\n
newMatter.attr(\'style\',\'counter-reset: page 1;\');\n
}\n
else\n
newMatter.addClass(\'endmatter\').attr("id","endmatter-h-" + matterCounter);\n
body.append(newMatter);\n
matterCounter++;\n
convertChapter(link.attr(\'href\') + \'/index_html?format=html\', newMatter, false, false);\n
}\n
else{\n
partCounter++;\n
partContainer = $(\'<div>\').addClass(\'part\').attr(\'id\',\'part-h-\' + partCounter).append(section.clone());\n
}\n
firstSection = false;\n
}\n
}\n
$(\'body\').append(body.children());\n
fetchTextInfo(true, data);\n
});\n
});\n
}\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>reviewer.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>.activated_review_tooltip {\n
position:absolute;\n
display:block;\n
left:-1000px;\n
top:-1000px;\n
padding:5px 5px 5px 5px;\n
border: 2px solid #000000;\n
}\n
\n
.desactivated_review_tooltip {\n
display:none;\n
position:absolute;\n
left:-1000px;\n
top:-1000px;\n
}\n
\n
div.added_comment{\n
border-radius: 5px; \n
-moz-border-radius: 5px; \n
-webkit-border-radius: 5px; \n
border: 1px solid #000000;\n
opacity:.20;\n
filter:alpha(opacity=20);\n
filter: "alpha(opacity=20)";\n
overflow:hidden;\n
text-align: center;\n
vertical-align: middle;\n
position:absolute;\n
z-index:10000;\n
}\n
\n
div.added_comment:hover{\n
opacity: 0;\n
filter:alpha(opacity=0);\n
filter: "alpha(opacity=0)";\n
color: #000000;\n
}\n
\n
div.added_comment_edited{\n
opacity: 1;\n
filter:alpha(opacity=100);\n
filter: "alpha(opacity=100)";\n
color: #000000;\n
position:absolute;\n
z-index:10000;\n
}\n
\n
div.added_comment_edited textarea{\n
background-color: #0000FF;\n
}\n
\n
.label_document_not_ready {\n
background-color: #FF0000;\n
}\n
\n
.label_document_ready {\n
background-color: #00FF00;\n
}\n
\n
.activated_review_tooltip div{\n
display:block;\n
width: 16px;\n
height: 16px;\n
background-repeat:no-repeat;\n
background-position:center;\n
background-color: transparent;\n
-webkit-background-size: 100%;\n
-moz-background-size: 100%;\n
-o-background-size: 100%;\n
background-size: 100%;\n
cursor:pointer;\n
opacity: 0.5;\n
filter: alpha(opacity=50) ;\n
filter: "alpha(opacity=50)";\n
margin-top:5px;\n
}\n
\n
.activated_review_tooltip div:hover{\n
opacity: 1;\n
filter:alpha(opacity=100);\n
filter: "alpha(opacity=100)";\n
}\n
\n
.color_button{\n
border: 1px solid #000000;\n
margin-left: 1px;\n
margin-right: 1px;\n
width: 12px;\n
height: 12px;\n
float: left;\n
}\n
\n
.remove_button{\n
background-image: url("images/editdelete.png");\n
float: left;\n
}\n
\n
.validate_button{\n
background-image: url("images/save2.png");\n
float: right;\n
}\n
\n
.activated_review_tooltip .tooltip_text{\n
display:block;\n
}\n
\n
.activated_review_tooltip .tooltip_author{\n
display:block;\n
float:right;\n
margin-top:5px;\n
}</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>reviewer.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved.\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
var first = true, editedObject, counter = 0;\n
\n
var offset = {\'left\':10,\'top\':10};\n
var colors = [\'#FF0000\',\'#00FF00\',\'#0000FF\',\'#FFFF00\',\'#FF00FF\',\'#00FFFF\',\'#FFFFFF\'];\n
\n
\n
function parseCommentLine(line){\n
var textList = line.substr(1);\n
textList = textList.substr(0,textList.length - 1).split(/\\},\\{/g);\n
textList[0] = textList[0].replace(/\\n/g,\' \');\n
return textList;\n
}\n
\n
function createCommentLine(args){\n
return \'{\' + args.join(\'},{\') + \'}\';\n
}\n
\n
function appendColors(object){\n
var n = colors.length;\n
for(var i = 0; i < n; i++){\n
var color = colors[i];\n
var button = $(\'<div>\').addClass(\'color_button\').attr(\'id\',\'color_button_\' + i).css(\'background-color\', color).click(function(){\n
$(\'#review_tooltip\').css(\'background-color\', $(this).css(\'background-color\'));\n
});\n
object.append(button);\n
}\n
}\n
\t \n
function displayToolTip(commentArray, e){\n
if(editedObject == null){\n
var reviewToolTip = $(\'#review_tooltip\');\n
reviewToolTip.attr(\'class\', \'activated_review_tooltip\').attr(\'style\', \'left:\' + (offset.left + e.clientX) +\'px; top:\'+ (offset.top + e.clientY) + \'px;\');\n
toolTipText = $(\'.tooltip_text\', reviewToolTip);\n
if(toolTipText.length == 0){\n
reviewToolTip.append($(\'<span>\').addClass(\'tooltip_text\').text(commentArray[0]));\n
reviewToolTip.append($(\'<span>\').addClass(\'tooltip_author\').text(commentArray[3]));\n
reviewToolTip.css(\'background-color\', commentArray[4]);\n
}\n
else{\n
toolTipText.text(commentArray[0]);\n
$(\'.tooltip_author\', reviewToolTip).text(commentArray[3]);\n
reviewToolTip.css(\'background-color\', commentArray[4]);\n
}\n
}\n
}\n
\t\t \n
function hideToolTip(){\n
if(editedObject == null)\n
$(\'#review_tooltip\').attr(\'class\', \'desactivated_review_tooltip\');\n
}\n
\n
function changeUrl(){\n
$(\'#label_ready\').attr(\'class\',\'label_document_not_ready\').text(\'Not ready. Wait until the document is ready to start commenting.\');\n
document.getElementById(\'iframe\').src = document.getElementById(\'value_url\').value;\n
}\n
\n
function findDocument(url){\n
var doc = document;\n
var iframes = $(\'iframe\');\n
var n = iframes.length, i = 0;\n
while(doc.URL != url && i < n){\n
doc = iframes.eq(i).contents()[0];\n
i++;\n
}\n
return doc;\n
}\n
\n
function findId(object){\n
return parseInt(object.id.split("_")[2]);\n
}\n
\n
function getAuthor(){\n
return $(\'#logged_in_as\', document).text().replace(\'Logged In as :\', \'\').trim();\n
}\n
\n
function validateComment(object, clicked){\n
var validationRequired = clicked || (editedObject != null && editedObject.id != object.id);\n
if(validationRequired){\n
var text = $(\'#review_tooltip textarea\').val();\n
var color = $(\'#review_tooltip\').css(\'background-color\');\n
//Saving\n
var id = findId(editedObject);\n
var commentaryListObj = $("textarea[name=field_my_annotation]", document);\n
var commentaryList = commentaryListObj.val().split(\'\\n\');\n
var commentArray = parseCommentLine(commentaryList[id]);\n
commentArray[0] = text;\n
commentArray[3] = getAuthor();\n
commentArray[4] = color;\n
commentaryList[id] = createCommentLine(commentArray);\n
commentaryListObj.val(commentaryList.join(\'\\n\'));\n
$(\'#review_tooltip\').empty();\n
$(editedObject).empty().text(text).attr(\'class\',\'added_comment\').css(\'background-color\',color).css(\'color\', color).mousemove(function(e){\n
displayToolTip(commentArray, e);\n
});\n
editedObject = null;\n
hideToolTip();\n
}\n
return validationRequired;\n
}\n
\n
function editComment(object, e){\n
if(editedObject == null || validateComment(object, false)){\n
var text = $(object).text();\n
var textarea = $(\'<textarea>\').val(text).attr(\'style\',\'width:95%;height:100%\');\n
var validation_button = $(\'<div>\').addClass(\'validate_button\').click(function(){\n
validateComment(editedObject, true);\n
});\n
var remove_button = $(\'<div>\').addClass(\'remove_button\').click(function(){\n
removeComment();\n
});\n
appendColors($(\'#review_tooltip\').empty().attr(\'class\', \'activated_review_tooltip\').attr(\'style\', \'left:\' + (offset.left + e.clientX) +\'px; top:\'+ (offset.top + e.clientY) + \'px;background-color: \' + $(object).css(\'background-color\') + \';\' ).append(textarea).append(validation_button).append(remove_button));\n
editedObject = object;\n
textarea[0].focus();\n
}\n
}\n
\n
function removeLine(name, id){\n
var obj = $("textarea[name=field_" + name + "]", document);\n
var text = obj.val().split(\'\\n\');\n
text.splice(id,1);\n
obj.val(text.join(\'\\n\'));\n
}\n
\n
function removeComment(){\n
var id = findId(editedObject);\n
$(editedObject).remove();\n
removeLine("my_annotation", id);\n
$(\'#review_tooltip\').empty();\n
var iframes = $(\'iframe\');\n
var n = iframes.length;\n
for(var i = 0; i < n; i++){\n
var comments = $(\'.added_comment\', iframes.eq(i).contents());\n
var p = comments.length;\n
for(var j = 0; j < p; j++){\n
var comm = comments.eq(j);\n
var commId = findId(comm[0]);\n
if(commId > id)\n
comm.attr(\'id\',\'comment_bubble_\' + (commId - 1));\n
}\n
}\n
editedObject = null;\n
hideToolTip();\n
counter--;\n
}\n
\n
function addComment(commentArray, notSetup, e){\n
var comment = commentArray[0], locator = commentArray[1], contextUrl = commentArray[2], author = commentArray[3], color = commentArray[4];\n
var context = findDocument(contextUrl);\n
var object = $(locator, context);\n
\n
if(notSetup){\n
var commentaryListObj = $("textarea[name=field_my_annotation]", document);\n
var commentaryList = commentaryListObj.val();\n
if(commentaryList.trim() != \'\'){\n
commentaryList += \'\\n\';\n
}\n
commentaryListObj.val(commentaryList + createCommentLine([comment, locator, contextUrl, author]));\n
}\n
var htmlObject = object[0];\n
var offset = object.offset();\n
var commentObject = $(\'<div>\').attr(\'style\',\'left:\' + offset.left + \'px; top:\' + offset.top + \'px; width:\' + htmlObject.offsetWidth + \'px; height:\' + htmlObject.offsetHeight + \'px; background-color:\' + color + \';color:\' + color + \';\').addClass(\'added_comment\').attr(\'id\',\'comment_bubble_\' + counter);\n
counter++;\n
$(context.body).append(commentObject);\n
commentObject.click(function(e){\n
editComment(this, e);\n
});\n
commentObject.mousemove(function(e){\n
displayToolTip(commentArray, e);\n
});\n
commentObject.mouseout(function(){\n
hideToolTip();\n
});\n
validateComment(commentObject, false);\n
if(notSetup)\n
editComment(commentObject[0], e);\n
else{\n
commentObject.text(comment);\n
}\n
}\n
\n
function findIndex(object, locator, context){\n
var i = 0;\n
var objectArray = $(locator, context);\n
var n = objectArray.length;\n
while(i < n && !objectArray.eq(i).is(object)){\n
i++;\n
}\n
if(i == n)\n
return -1;\n
else\n
return i;\n
}\n
\n
function findClassLocator(className){\n
return className = \'[class="\' + className + \'"]\'; //\'.\' + className.replace(\'\\n\', \' \').split(\' \').filter(function(a){return a != \'\'}).join(\'.\');\n
}\n
\n
function findMinimumLocator(object, parentLocator, context){\n
//We know that there\'s no id here, so we don\'t check for id\n
parentLocator += \' \';\n
var notFound = true;\n
var first = true;\n
var obj = object;\n
var locator = \'\';\n
while(notFound){\n
var className = obj.className;\n
childLocator = obj.tagName;\n
if(className != undefined && className != \'\')\n
childLocator += findClassLocator(className);\n
locator = parentLocator + childLocator;\n
if($(locator, context).length == 1)\n
notFound = false;\n
else if($(locator, context).parent().is($(parentLocator, context))){\n
var locatorPart = parentLocator + \'> \' + childLocator;\n
//For a mysterious reason the following line doesn\'t work:\n
//locator = locatorPart + \':eq(\' + $(obj).index($(locatorPart, context)) + \')\';\n
locator = locatorPart + \':eq(\' + findIndex(obj, locatorPart, context) + \')\';\n
notFound = false;\n
}\n
else if(first)\n
first = false;\n
obj = $(obj).parent()[0];\n
}\n
if(first)\n
return locator;\n
else\n
return findMinimumLocator(object, locator, context);\n
}\n
\n
function findLocator(object, context){\n
var notFound = true;\n
var first = true;\n
var obj = object;\n
var locator = \'\';\n
while(notFound){\n
var className = obj.className;\n
var objId = obj.id;\n
var tagName = obj.tagName;\n
if(objId != undefined && objId != \'\'){\n
locator = \'#\' + objId;\n
notFound = false;\n
}\n
else if(tagName.toLowerCase() == \'body\'){\n
locator = \'body\';\n
notFound = false;\n
}\n
else{\n
locator = tagName;\n
if(className != undefined && className != \'\')\n
locator += findClassLocator(className);\n
if($(locator, context).length == 1)\n
notFound = false;\n
else if(first)\n
first = false;\n
}\n
obj = $(obj).parent()[0];\n
}\n
if(first)\n
return locator;\n
else\n
return findMinimumLocator(object, locator, context);\n
}\n
\n
function findContext(object){\n
var obj = object;\n
while(obj.tagName.toLowerCase() != \'body\'){\n
obj = obj.parentNode;\n
}\n
return obj.parentNode.parentNode;\n
}\n
\n
function clickObject(object, e){\n
var context = findContext(object);\n
var locator = findLocator(object, context);\n
var contextUrl = context.URL;\n
addComment([\'\', locator, contextUrl, getAuthor(),\'#FF0000\'], true, e);\n
return false;\n
}\n
\n
$(document).ready(function(){\n
$(\'iframe\').load(function() {\n
var frameBody = $(this).contents()[0].body;\n
$(\'a\', frameBody).removeAttr(\'onclick\').removeAttr(\'href\');\n
$(\':not(:has(*))\', frameBody).removeAttr(\'onclick\').removeAttr(\'href\').click(function(e) {\n
clickObject(this, e);\n
return false;\n
});\n
var cssLink = document.createElement("link");\n
cssLink.href = document.URL.split(\'review_module\')[0] + "reviewer.css"; \n
cssLink.rel = "stylesheet"; \n
cssLink.type = "text/css"; \n
this.contentDocument.body.appendChild(cssLink);\n
var commentaryListObj = $("textarea[name=field_my_annotation]", document);\n
var commentaryList = commentaryListObj.val().split(\'\\n\');\n
var n = commentaryList.length;\n
for(var i = 0; i < n; i++){\n
if(i != 0 || commentaryList[i] != \'\')\n
addComment(parseCommentLine(commentaryList[i]), false, undefined);\n
}\n
$(\'#label_ready\').attr(\'class\',\'label_document_ready\').text(\'Ready. You just have to click on an HTML element to comment it. Doesnt work with simple text (yet).\');\n
});\n
});\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>slideshow_editor.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>#list {\n
padding:0px;\n
margin: 0px;\n
}\n
\n
#dialog_add_slide, #dialog_edit_slide {\n
background-color: #DAE6F6;\n
}\n
\n
#list section, #add_slide section{\n
font-family:Arial,Helvetica,sans-serif;\n
font-size: 14px;\n
font-weight:bold;\n
margin: 10px;\n
padding:8px;\n
float: left;\n
width: 100px;\n
height: 100px;\n
overflow:hidden;\n
background-color:#FFFFFF;\n
border: 2px solid #000000;\n
vertical-align: middle;\n
text-align: center;\n
color:#000000;\n
}\n
\n
#add_slide section{\n
opacity: 0.7;\n
filter: alpha(opacity=70) ;\n
filter: "alpha(opacity=70)";\n
}\n
\n
#add_slide section:hover{\n
opacity: 1;\n
filter: alpha(opacity=100) ;\n
filter: "alpha(opacity=100)";\n
}\n
\n
#list * {\n
-moz-user-select: -moz-none;\n
-khtml-user-select: none;\n
-webkit-user-select: none;\n
user-select: none;\n
cursor:move;\n
}\n
\n
#list section * {\n
display:none;\n
width:0;\n
}\n
\n
#list section h1{\n
display:inline;\n
font-family:Arial,Helvetica,sans-serif;\n
font-size: 10px;\n
font-weight:bold;\n
vertical-align: middle;\n
text-align: center;\n
color:#000000;\n
padding:0;\n
margin:0 0 5px 0;\n
}\n
\n
#list section img{\n
display:inline;\n
width: 100%;\n
margin:5px 0 0 0;\n
}\n
\n
#list div{\n
display:block;\n
width: 16px;\n
height: 16px;\n
background-repeat:no-repeat;\n
background-position:center;\n
background-color: transparent;\n
-webkit-background-size: 100%;\n
-moz-background-size: 100%;\n
-o-background-size: 100%;\n
background-size: 100%;\n
cursor:pointer;\n
opacity: 0;\n
filter: alpha(opacity=0) ;\n
filter: "alpha(opacity=0)";\n
}\n
\n
#list div:hover{\n
opacity: 1;\n
filter:alpha(opacity=100);\n
filter: "alpha(opacity=100)";\n
}\n
\n
#add_slide_button{\n
background-image: url("images/filenew.png");\n
background-repeat:no-repeat;\n
background-position:center;\n
-moz-user-select: -moz-none;\n
-khtml-user-select: none;\n
-webkit-user-select: none;\n
user-select: none;\n
cursor:pointer;\n
}\n
\n
.remove_slide_button{\n
background-image: url("images/editdelete.png");\n
}\n
\n
.edit_slide_button{\n
background-image: url("images/exec.png");\n
}\n
\n
.slide_dialog iframe{\n
border:0px;\n
width: 99%;\n
height: 99%;\n
min-height: 480px;\n
}</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>slideshow_editor.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved.\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
\n
var slideList, textContent, testPageHTML, addSlideIframe, addSlideIframeContents, editSlideIframe, editSlideIframeContents, slideNumber;\n
var $dialogEdit;\n
\n
function isUrl(s) {\n
// Test if the string is a URL or a relative path (contains a/b/..)\n
var regexurl = /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?/\n
return regexurl.test(s) || (s.split("?")[0].indexOf("/") != -1);\n
}\n
\n
//Remove a slide\n
function removeClick(trigger){\n
slideNumber = parseInt($(trigger).attr(\'id\').split(\'_\')[2]);\n
$("#list > section:eq("+slideNumber+")").remove();\n
$(".remove_slide_button").filter(\':last\').remove();\n
$(".edit_slide_button").filter(\':last\').remove();\n
updateTextContent();\n
return false;\n
}\n
\n
//Edit a slide\n
function editClick(trigger){\n
slideNumber = parseInt($(trigger).attr(\'id\').split(\'_\')[2]);\n
$dialogEdit.dialog(\'open\');\n
return false;\n
}\n
\n
//Display edit and remove buttons when hovered\n
function slideHover(trigger){\n
slideNumber = $(\'#list > section\').index($(trigger));\n
$(\'#edit_slide_\' + slideNumber).css({\'opacity\': \'.50\', \'filter\' : \'alpha(opacity=50)\'});\n
$(\'#remove_slide_\' + slideNumber).css({\'opacity\': \'.50\', \'filter\' : \'alpha(opacity=50)\'});\n
}\n
\n
//Hide edit and remove buttons when the mouse gets out of the slide\n
function slideOut(trigger){\n
slideNumber = $(\'#list > section\').index($(trigger));\n
$(\'#edit_slide_\' + slideNumber).css({\'opacity\': \'0\', \'filter\' : \'alpha(opacity=0)\'});\n
$(\'#remove_slide_\' + slideNumber).css({\'opacity\': \'0\', \'filter\' : \'alpha(opacity=0)\'});\n
}\n
\n
//Set opacity to maximum when a button is hovered (not possible through pure css, since the buttons are not children of the corresponding slides)\n
function buttonHover(trigger){\n
$(trigger).css({\'opacity\': \'1\', \'filter\' : \'alpha(opacity=100)\'});\n
}\n
\n
\n
//Set opacity to half once the mouse gets out\n
function buttonOut(trigger){\n
$(trigger).css({\'opacity\': \'0.5\', \'filter\' : \'alpha(opacity=50)\'});\n
}\n
\n
//Create an empty test\n
function createTest(){\n
var table = $(\'<table>\');\n
var test = $(\'<test>\').append(table);\n
table.attr(\'class\', "test");\n
table.attr(\'cellpadding\', "1");\n
table.attr(\'cellspacing\', "1");\n
table.attr(\'border\', "1");\n
table.attr(\'style\', "display:none;");\n
table.append($(\'<tbody>\'));\n
return test;\n
}\n
\n
//Add template test line to a test\n
function appendTestLine(test, method, arg0, arg1){\n
var tr = $(\'<tr>\');\n
tr.append($(\'<td>\').text(method));\n
tr.append($(\'<td>\').text(arg0));\n
tr.append($(\'<td>\').text(arg1));\n
$(\'tbody\', test).append(tr);\n
}\n
\n
//Update HTML content of the test page\n
function updateTextContent(){\n
body.empty();\n
var images = $(\'#list > section > img\');\n
removeImagesURLAttrib(images,\'display\');\n
removeImagesURLAttrib(images,\'timestamp\');\n
// changeImagesURLAttrib(images,\'format\',\'\');\n
body.append($(\'#list > section\').clone());\n
// changeImagesURLAttrib(images,\'display\',\'xsmall\');\n
body[0].innerHTML = indent(body[0].cloneNode(true), 2);\n
$(textContent).text(body[0].innerHTML);\n
}\n
\n
function updateImageInput(frameContent){ \n
var className = $(\'select[name="field_your_slide_type"]\', frameContent).val();\n
if (className == \'Screenshot\' || className == \'Illustration\') {\n
$(\'input[name="field_your_image_caption"]\', frameContent).parent().parent().removeClass(\'hidden\');\n
if (!$(\'input[name="field_your_upload_image"]\', frameContent).is(\':checked\')) {\n
$(\'input[name="field_your_image_url"]\', frameContent).parent().parent().removeClass(\'hidden\');\n
}\n
$(\'input[name="field_your_upload_image"]\', frameContent).parent().parent().removeClass(\'hidden\');\n
}\n
else {\n
$(\'input[name="field_your_image_caption"]\', frameContent).parent().parent().addClass(\'hidden\');\n
$(\'input[name="field_your_image_url"]\', frameContent).parent().parent().addClass(\'hidden\');\n
$(\'input[name="field_your_image_id"]\', frameContent).parent().parent().addClass(\'hidden\');\n
$(\'input[name="field_your_file"]\', frameContent).parent().parent().addClass(\'hidden\');\n
$(\'input[name="field_your_upload_image"]\', frameContent).parent().parent().addClass(\'hidden\');\n
$(\'input[name="field_your_upload_image"]\', frameContent).attr(\'checked\', false);\n
}\n
}\n
\n
function updateUploadImageInput(frameContent){\n
var className = $(\'select[name="field_your_slide_type"]\', frameContent).val();\n
if ($(\'input[name="field_your_upload_image"]\', frameContent).is(\':checked\')) {\n
$(\'input[name="field_your_file"]\', frameContent).parent().parent().removeClass(\'hidden\');\n
$(\'input[name="field_your_image_url"]\', frameContent).parent().parent().addClass(\'hidden\');;\n
$(\'input[name="field_your_image_id"]\', frameContent).parent().parent().removeClass(\'hidden\')\n
$(\'input[name="field_your_image_id"]\', frameContent).removeClass(\'hidden\');\n
var targetFrameContent = frameContent;\n
image_id = $(\'input[name="field_your_image_id"]\', frameContent).val()\n
if (isUrl(image_id) || image_id == "") {\n
get_image_id_url = \'TestPage_getNextImageID?title=\' + $(\'input[name="field_your_chapter_title"]\', frameContent).val() + \'&slide_type=\' + className\n
$.get(get_image_id_url, function(data, textStatus, jqXHR){\n
$(\'input[name="field_your_image_id"]\', targetFrameContent).val(data);\n
});\n
}\n
} else {\n
$(\'input[name="field_your_file"]\', frameContent).parent().parent().addClass(\'hidden\');\n
$(\'input[name="field_your_image_id"]\', frameContent).parent().parent().addClass(\'hidden\');\n
if (className == \'Screenshot\' || className == \'Illustration\') {\n
$(\'input[name="field_your_image_url"]\', frameContent).parent().parent().removeClass(\'hidden\');\n
}\n
$(\'input[name="field_your_image_id"]\', frameContent).val($(\'input[name="field_your_image_url"]\', frameContent).val());\n
}\n
}\n
\n
function createNewImageTag(working_frame){\n
var image = $(\'<img>\');\n
if (!$(\'input[name="field_your_upload_image"]\', working_frame).is(\':checked\')) {\n
image.attr(\'src\', $(\'input[name="field_your_image_url"]\', working_frame).val());\n
} else {\n
image.attr(\'src\', $(\'input[name="field_your_image_id"]\', working_frame).val() + \'?format=\');\n
}\n
// Bad hardcoding for type\n
image.attr(\'type\', \'image/svg+xml\');\n
image_caption = $(\'input[name="field_your_image_caption"]\', working_frame).val()\n
image.attr(\'title\', image_caption).attr(\'alt\', image_caption);\n
return image\n
}\n
\n
//Change/add a GET attribute in the src url of an image (located after the question mark in the url)\n
function changeImagesURLAttrib(images, attname, attval){\n
var n = images.length;\n
for(var i = 0; i < n; i++){\n
var img = $(images[i]);\n
var attrbs = img.attr(\'src\').split(\'?\');\n
var url = attrbs[0];\n
if(attrbs.length > 1 && attrbs[1].length > 0){\n
attrbs = attrbs[1].split(\'&\');\n
var notFound = true;\n
var j = 0;\n
var p = attrbs.length;\n
while(notFound && j < p){\n
if(attrbs[j].split(\'=\')[0] == attname){\n
attrbs[j] = attname + \'=\' + attval;\n
notFound = false;\n
}\n
j++;\n
}\n
if(notFound)\n
img.attr(\'src\', img.attr(\'src\') + \'&\' + attname + \'=\' + attval);\n
else\n
img.attr(\'src\', url + \'?\' + attrbs.join(\'&\'));\n
}\n
else\n
img.attr(\'src\', url + \'?\' + attname + \'=\' + attval);\n
}\n
}\n
\n
// Remove a GET attribute in the src url of an image (located after the question mark in the url)\n
function removeImagesURLAttrib(images, attname){\n
var n = images.length;\n
for(var i = 0; i < n; i++){\n
var img = $(images[i]);\n
var attrbs = img.attr(\'src\').split(\'?\');\n
var url = attrbs[0];\n
if(attrbs.length > 1 && attrbs[1].length > 0){\n
attrbs = attrbs[1].split(\'&\');\n
var notFound = true;\n
var j = 0;\n
var p = attrbs.length;\n
while(notFound && j < p){\n
if(attrbs[j].split(\'=\')[0] == attname){\n
attrbs.splice(j,1);\n
notFound = false;\n
}\n
j++;\n
}\n
if(notFound)\n
img.attr(\'src\', img.attr(\'src\'));\n
else {\n
complement = "";\n
if (attrbs.length > 0)\n
complement = \'?\' + attrbs.join(\'&\');\n
img.attr(\'src\', url + complement);\n
}\n
}\n
else\n
img.attr(\'src\', url);\n
}\n
}\n
\n
//Add edit and remove buttons to a slide\n
function appendSlideButtons(element, index){\n
var button = $(\'<div>\').attr(\'style\',\'position:absolute; left:\' + (element.offsetLeft + 3) + \'px; top:\' + (element.offsetTop + 3) + \'px;\').attr(\'id\', \'edit_slide_\' + index).addClass(\'edit_slide_button\').hover(function(){buttonHover(this);},function(){buttonOut(this);});\n
$(element).after(button);\n
button = $(\'<div>\').attr(\'style\',\'position:absolute; left:\' + (element.offsetLeft + element.offsetWidth - 17) + \'px; top:\' + (element.offsetTop + 3) + \'px;\').attr(\'id\', \'remove_slide_\' + index).addClass(\'remove_slide_button\').hover(function(){buttonHover(this);},function(){buttonOut(this);});\n
$(element).after(button);\n
}\n
\n
$(document).ready(function(){\n
$(function() {\n
//Extract the slides\n
textContent = document.getElementsByName(\'field_my_text_content\')[0];\n
var tmp = document.createElement(\'tmp\');\n
testPageHTML = document.createElement(\'html\');\n
testPageHTML.appendChild(document.createElement(\'body\'));\n
$(tmp).html($(textContent).text());\n
$(\'body\',testPageHTML).append($(\'section\', tmp));\n
body = $(\'section\', testPageHTML);\n
// changeImagesURLAttrib($(\'> img\', body),\'display\',\'xsmall\');\n
slideList = $(\'#list\');\n
slideList.append(body);\n
body = $(\'body\', testPageHTML); \n
\n
//Add buttons to each slides\n
var sectionList = $(\'#list\').children();\n
n = sectionList.length;\n
for(var i = 0; i < n; i++){\n
var child = sectionList[i];\n
appendSlideButtons(child, i);\n
}\n
\n
//Make the slide list sortable\n
$("#list").sortable({ opacity: 0.7, cursor: \'move\', items: "section", update: function() {\n
$(\'section\').removeAttr(\'style\');\n
updateTextContent();\n
}\n
});\n
\n
//Configure the dialog to add a slide\n
addSlideIframe = $("<iframe>");\n
addSlideIframe.attr(\'id\',\'iframe_add_slide\');\n
addSlideIframe.attr(\'src\',\'TestPage_viewSlideCreator\');\n
\n
addSlideIframe.load(function() {\n
function initFrame(){ \n
addSlideIframeContents = addSlideIframe.contents();\n
updateImageInput(addSlideIframeContents);\n
updateUploadImageInput(addSlideIframeContents);\n
$(\'input[name="field_your_upload_image"]\', addSlideIframeContents).click(function() {updateUploadImageInput(addSlideIframeContents);});\n
$(\'select[name="field_your_slide_type"]\', addSlideIframeContents).change(function() {updateImageInput(addSlideIframeContents);});\n
var submit_button = $("#dialog_submit_button", addSlideIframeContents).click(function(){\n
var section = document.createElement("section");\n
var className = $(\'select[name="field_your_slide_type"]\', addSlideIframeContents).val();\n
$(section).addClass(className.toLowerCase());\n
var title = document.createElement("h1");\n
$(title).html($(\'input[name="field_your_chapter_title"]\', addSlideIframeContents).val());\n
var details = document.createElement("details");\n
$(details).attr("open", "true")\n
$(details).html($(\'textarea[name="field_your_text_content"]\', addSlideIframeContents).val());\n
$(section).append($(title));\n
var image_id = "";\n
var isScreenshot = className == \'Screenshot\';\n
\n
// Append a new slide, update HTML Code\n
function appendSection(){\n
$(section).append($(\'textarea[name="field_your_slide_content"]\', addSlideIframeContents).val());\n
$(section).append($(details));\n
var isTested = $(\'input[name="field_your_tested"]\', addSlideIframeContents).attr(\'checked\');\n
if((isTested == \'checked\' || isTested) && (image_id != "")){\n
var test = createTest();\n
appendTestLine(test, "selectAndWait", "name=select_module", "label=Test Pages");\n
appendTestLine(test, "verifyTextPresent", "Test Pages", ""); \n
if(isScreenshot){\n
appendTestLine(test, "captureEntirePageScreenshot", image_id, "");\n
}\n
$(section).append(test);\n
} \n
slideList.append($(section));\n
var i = 0;\n
if ($(\'#list > .edit_slide_button\').length > 0) {\n
var i = parseInt($(\'#list > .edit_slide_button\').filter(\':last\').attr(\'id\').split(\'_\')[2]) + 1;\n
}\n
appendSlideButtons(section, i);\n
$(\'#remove_slide_\' + i).click(function() {removeClick(this);});\n
$(\'#edit_slide_\' + i).click(function() {editClick(this);});\n
$(section).hover(function() {slideHover(this);}, function(){slideOut(this);}).mousedown(function() {slideOut(this);});\n
updateTextContent();\n
}\n
if(isScreenshot || className == \'Illustration\') {\n
image = createNewImageTag(addSlideIframeContents);\n
image_id = "";\n
if (!isUrl(image.attr(\'src\'))) {\n
image_id = image.attr(\'src\');\n
}\n
$(section).append(image);\n
}\n
appendSection();\n
});\n
}\n
setTimeout(initFrame, 0);\n
});\n
\n
var $dialog = $("#dialog_add_slide")\n
.dialog({\n
title: "Add new slide",\n
autoOpen: false,\n
draggable: false,\n
resizable: true,\n
modal: true,\n
autoResize: true,\n
show: "clip",\n
hide: "clip",\n
width: "50%",\n
height: "auto",\n
position: \'center\'\n
});\n
\n
$dialog.append(addSlideIframe);\n
$(\'#add_slide_button\').click(function() {\n
$dialog.dialog(\'open\');\n
return false;\n
});\n
\n
//Configure the dialog to edit a slide\n
editSlideIframe = $("<iframe>");\n
editSlideIframe.attr(\'id\',\'iframe_edit_slide\');\n
editSlideIframe.attr(\'src\',\'TestPage_viewSlideEditor\');\n
\n
editSlideIframe.load(function() {\n
function initFrame(){ \n
if (slideNumber == null) {\n
// slideNumber should be defined before try to edit.\n
return false;\n
}\n
var slide = $(\'section:eq(\'+slideNumber+\')\', slideList);\n
// This updates the image displayed\n
var img = $(\'> img:first\', slide);\n
editSlideIframeContents = editSlideIframe.contents();\n
updateUploadImageInput(editSlideIframeContents);\n
$(\'input[name="field_your_upload_image"]\', editSlideIframeContents).click(function() {updateUploadImageInput(editSlideIframeContents);});\n
$(\'select[name="field_your_slide_type"]\', editSlideIframeContents).change(function() {updateImageInput(editSlideIframeContents);});\n
if(img.length > 0) {\n
$(\'input[name="field_your_image_id"]\', editSlideIframeContents).val(img.attr(\'src\').split(\'?\')[0]);\n
$(\'input[name="field_your_image_caption"]\', editSlideIframeContents).val(img.attr(\'title\'));\n
//if(isUrl(img.attr(\'src\')))\n
removeImagesURLAttrib(img,\'timestamp\');\n
$(\'input[name="field_your_image_url"]\', editSlideIframeContents).val(img.attr(\'src\'));\n
} else \n
updateImageInput(editSlideIframeContents);\n
\n
changeImagesURLAttrib($(\'> img:first\', slide), \'timestamp\', new Date().getTime()); \n
$(\'input[name="field_your_chapter_title"]\', editSlideIframeContents).val($(\'h1:first\', slide).html().trim());\n
if (slide.attr(\'class\') != null) {\n
$(\'select[name="field_your_slide_type"]\', editSlideIframeContents).val(slide.attr(\'class\').replace(/^\\w/, function($0) { return $0.toUpperCase(); }));\n
};\n
var tmpSlide = slide.clone();\n
$("h1:first, img:first, details, test", tmpSlide).remove();\n
$(\'textarea[name="field_your_slide_content"]\', editSlideIframeContents).val(tmpSlide.html().trim());\n
if ($(\'details\', slide).length > 0)\n
$(\'textarea[name="field_your_text_content"]\', editSlideIframeContents).val($(\'details\', slide).html().trim());\n
\n
var hasTest = $(\'test\', slide).length > 0;\n
if(hasTest){\n
$(\'input[name="field_your_not_tested"]\', editSlideIframeContents).parent().parent().attr(\'class\',\'field\');\n
$(\'input[name="field_your_tested"]\', editSlideIframeContents).parent().parent().attr(\'class\',\'hidden\');\n
}\n
else{\n
$(\'input[name="field_your_not_tested"]\', editSlideIframeContents).parent().parent().attr(\'class\',\'hidden\');\n
$(\'input[name="field_your_tested"]\', editSlideIframeContents).parent().parent().attr(\'class\',\'field\');\n
}\n
\n
var submit_button = $("#dialog_submit_button", editSlideIframeContents).click(function(){\n
var titleContainer = $(\'h1:first\', slide);\n
var newTitle = $(\'input[name="field_your_chapter_title"]\', editSlideIframeContents).val().trim();\n
titleContainer.html(newTitle);\n
var className = $(\'select[name="field_your_slide_type"]\', editSlideIframeContents).val();\n
slide.attr(\'class\', className.toLowerCase());\n
if ($(\'details\', slide).length === 0) {\n
var details = document.createElement("details");\n
slide.append($(details));\n
}\n
$(\'details\', slide).html($(\'textarea[name="field_your_text_content"]\', editSlideIframeContents).val().trim());\n
$(\'details\', slide).attr("open", "true")\n
$("> :not(h1:first, img:first, details, test)", slide).remove();\n
// Remove also the standalone text inputed by the user.\n
slide.contents().filter(function(){return this.nodeType === 3;}).remove();\n
// Read from Slide editor\n
$(" > h1:first, img:first", slide).filter(\':last\').after($(\'textarea[name="field_your_slide_content"]\', editSlideIframeContents).val().trim());\n
var image_id = "";\n
var isScreenshot = className == \'Screenshot\';\n
function appendSection(){\n
var isTested = $(\'input[name="field_your_tested"]\', editSlideIframeContents).attr(\'checked\');\n
var removeTest = $(\'input[name="field_your_not_tested"]\', editSlideIframeContents).attr(\'checked\');\n
if(!hasTest && (isTested == \'checked\' || isTested) && (image_id != "")){\n
var test = createTest();\n
appendTestLine(test, "selectAndWait", "name=select_module", "label=Test Pages");\n
appendTestLine(test, "verifyTextPresent", "Test Pages", ""); \n
if(isScreenshot){\n
appendTestLine(test, "captureEntirePageScreenshot", image_id, "");\n
}\n
slide.append(test);\n
} \n
else if(hasTest && removeTest == \'checked\' || removeTest)\n
$(\'test\', slide).remove();\n
updateTextContent();\n
}\n
if(isScreenshot || className == \'Illustration\'){\n
var img = $(\'img:first\', slide);\n
if(img.length > 0){\n
var image_caption = $(\'input[name="field_your_image_caption"]\', editSlideIframeContents).val()\n
if (image_caption.length > 0)\n
img.attr(\'title\', image_caption).attr(\'alt\', image_caption);\n
var image_url = $(\'input[name="field_your_image_url"]\', editSlideIframeContents).val();\n
if (isUrl(image_url)) {\n
image_id = "";\n
}\n
img.attr(\'src\', image_url)\n
} else {\n
image = createNewImageTag(editSlideIframeContents);\n
image_id = "";\n
if (!isUrl(image.attr(\'src\'))) {\n
image_id = image.attr(\'src\');\n
}\n
$("> h1:first", slide).after(image);\n
}\n
} \n
appendSection();\n
});\n
}\n
\n
setTimeout(initFrame, 0);\n
});\n
\n
$dialogEdit = $("#dialog_edit_slide")\n
.dialog({\n
title: "Edit slide",\n
autoOpen: false,\n
draggable: false,\n
resizable: true,\n
modal: true,\n
autoResize: true,\n
show: "clip",\n
hide: "clip",\n
width: "50%",\n
height: "auto",\n
position: \'center\'\n
});\n
\n
$dialogEdit.append(editSlideIframe);\n
$(\'.edit_slide_button\').click(function() {\n
editClick(this);\n
});\n
\n
$(\'.remove_slide_button\').click(function() {\n
removeClick(this);\n
});\n
\n
$(\'section\').hover(function() {\n
slideHover(this);\n
}, function(){\n
slideOut(this);\n
});\n
\n
$(\'section\').mousedown(function() {\n
slideOut(this);\n
}); \n
});\n
});
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>test_editor.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>#test_table {\n
font-family: "Lucida Sans Unicode","Lucida Grande",Sans-Serif;\n
font-size: 12px;\n
text-align: left;\n
width:98%;\n
table-layout: fixed;\n
}\n
\n
#test_table th, #test_table td {\n
overflow: hidden;\n
}\n
\n
#test_table .action_column {\n
width: 25px;\n
}\n
\n
#test_table th {\n
background: none repeat scroll 0 0 #B9C9FE;\n
border-bottom: 1px solid #FFFFFF;\n
border-top: 4px solid #AABCFE;\n
color: #003399;\n
font-size: 13px;\n
font-weight: normal;\n
padding: 5px;\n
}\n
\n
#test_table tbody th {\n
background: none repeat scroll 0 0 #CADAFF;\n
border-bottom: 1px solid #FFFFFF;\n
border-top: 4px solid #BBCDFF;\n
color: #1144AA;\n
}\n
\n
#test_table td, #test_table .add_instr_button, #test_table .add_metal_button{\n
background: none repeat scroll 0 0 #E8EDFF;\n
border-bottom: 1px solid #FFFFFF;\n
border-top: 1px solid transparent;\n
color: #666699;\n
padding: 5px;\n
cursor:move;\n
}\n
\n
#test_table tr:hover td, #test_table tr:hover .add_instr_button, #test_table tr:hover .add_metal_button{\n
background: none repeat scroll 0 0 #D0DAFD;\n
color: #333399;\n
-moz-user-select: -moz-none;\n
-khtml-user-select: none;\n
-webkit-user-select: none;\n
user-select: none;\n
}\n
\n
#test_table .add_instr_button, #test_table .add_metal_button{\n
cursor:pointer;\n
}\n
\n
#list div{\n
width: 16px;\n
height: 16px;\n
background-repeat:no-repeat;\n
background-position:center;\n
background-color: transparent;\n
-webkit-background-size: 100%;\n
-moz-background-size: 100%;\n
-o-background-size: 100%;\n
background-size: 100%;\n
cursor:pointer;\n
opacity:.20;\n
filter:alpha(opacity=20);\n
filter: "alpha(opacity=20)";\n
}\n
\n
#list div:hover{\n
opacity:1;\n
filter: alpha(opacity=100) ;\n
filter: "alpha(opacity=100)";\n
}\n
\n
#list .remove{\n
background-image: url("images/editdelete.png");\n
}\n
\n
#list .edit{\n
background-image: url("images/exec.png");\n
}\n
\n
#list .validate{\n
background-image: url("images/save2.png");\n
}</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>test_editor.js</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
Copyright (c) 2011 Nexedi SARL and Contributors. All Rights Reserved.\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
\n
var slideList, textContent, testPageHTML, editedElement;\n
\n
//Copy the content of text to textareas (switch this row to edit mode)\n
function editContent(container){\n
if(editedElement != undefined)\n
validateContent();\n
editedElement = container;\n
var children = container.children();\n
// add a new validation button\n
children.eq(1).empty().append($(\'<div>\').addClass(\'validate\').click(function() {validationClick(this);}));\n
var n = children.length;\n
for(var i = 2; i < n; i++)\n
switchToEditMode(children.eq(i));\n
}\n
\n
//Copy the content of textareas to text (switch this row to standard mode), and update the html code with this test line\n
function validateContent(){\n
var children = editedElement.children();\n
// add a new edit button\n
children.eq(1).empty().append($(\'<div>\').addClass(\'edit\').click(function() {editClick(this);}));\n
var n = children.length;\n
for(var i = 2; i < n; i++)\n
switchToValidated(children.eq(i));\n
editedElement = undefined;\n
updateTextContent();\n
}\n
\n
//Copy the content of an input contained in container, and paste it as text of the container (transform a textarea into a text)\n
function switchToValidated(container){\n
var text = container.children().val();\n
container.empty().text(text);\n
}\n
\n
//Copy the text contained in container, and paste it in a textarea (transform a text into a textarea)\n
function switchToEditMode(container){\n
var textarea = $(\'<textarea>\').val(container.text()).attr(\'style\',\'width:95%;height:16px\');\n
container.empty().append(textarea);\n
}\n
\n
//Remove a row\n
function removeClick(trigger){\n
$(trigger).parent().parent().remove();\n
updateTextContent();\n
return false;\n
}\n
\n
//Edit a row\n
function editClick(trigger){\n
editContent($(trigger).parent().parent());\n
return false;\n
}\n
\n
//Validate a row\n
function validationClick(trigger){\n
validateContent();\n
return false;\n
}\n
\n
//Update the HTML code of the test page\n
function updateTextContent(){\n
var testLines = $(\'#list > tr\'), testBody;\n
var i = 0, n = testLines.length, sectionIndex = -1;\n
for(i = 0; i < n; i++){\n
var line = testLines.eq(i);\n
var firstCol = line.children().filter(\':first\');\n
var tagName = firstCol[0].tagName;\n
if(tagName == \'TH\' && (firstCol.attr(\'class\') == \'\' || firstCol.attr(\'class\') == undefined)){\n
sectionIndex++;\n
var currentSection = $(\'section:eq(\' + sectionIndex + \')\', testPageHTML);\n
testBody = $(\'test tbody\', currentSection);\n
if(testBody == undefined || testBody.length == 0){\n
currentSection.append($(\'<test>\').append($(\'<table>\').attr("style","display: none;").addClass("test").append($(\'<tbody>\'))));\n
testBody = $(\'test tbody\', currentSection);\n
}\n
else\n
testBody.empty();\n
}\n
else if(tagName == \'TD\'){\n
var lineToAdd = line.clone();\n
$(\'td:eq(0), td:eq(1)\', lineToAdd).remove();\n
testBody.append(lineToAdd);\n
}\n
}\n
$(textContent).text($(indent($(testPageHTML)[0], 2))[0].innerHTML);\n
}\n
\n
//Add an edit button and a remove button to a line\n
function prependEditButtons(element){\n
return element.prepend($(\'<td>\').append($(\'<div>\').addClass(\'edit\'))).prepend($(\'<td>\').append($(\'<div>\').addClass(\'remove\')));\n
}\n
\n
$(document).ready(function(){\n
$(function() {\n
// Extract slide list\n
textContent = document.getElementsByName(\'field_my_text_content\')[0];\n
var tmp = document.createElement(\'tmp\');\n
$(tmp).html($(textContent).text());\n
\n
testPageHTML = document.createElement(\'content\');\n
$(testPageHTML).append($(\'section\', tmp));\n
\n
$(\'#test_table > thead\').append($(\'test thead > tr > th\', testPageHTML).attr(\'colspan\',5).parent());\n
slideList = $(\'section\', testPageHTML);\n
\n
var n = slideList.length;\n
var body = $(\'#test_table > tbody\');\n
\n
// Prepare chapters, and buttons to add instruction for each chapter\n
for(var i = 0; i < n; i++){\n
var slide = slideList.eq(i);\n
body.append($(\'<tr>\').append($(\'<th>\').attr(\'colspan\',5).html($(\'h1:first\',slide).html())));\n
body.append($(\'test tbody > tr\',slide));\n
body.append($(\'<tr>\').append($(\'<th>\').addClass(\'add_instr_button\').attr(\'id\',\'add_instr_\' + i).attr(\'colspan\',5).text(\'Add test instruction\')));\n
body.append($(\'<tr>\').append($(\'<th>\').addClass(\'add_metal_button\').attr(\'id\',\'add_metal_\' + i).attr(\'colspan\',5).text(\'Add metal instruction\')));\n
}\n
prependEditButtons($(\'#test_table tr:has(td)\'));\n
\n
$("#list").sortable({ opacity: 0.7, cursor: \'move\', items: "tr:has(td)", update: function() {\n
updateTextContent();\n
}\n
});\n
$(\'#list .remove\').click(function() {\n
removeClick(this);\n
});\n
\n
$(\'#list .edit\').click(function() {\n
editClick(this);\n
});\n
\n
$(\'#list .validate\').click(function() {\n
validationClick(this);\n
});\n
\n
$(\'#list .add_instr_button\').click(function() {\n
var newElement = prependEditButtons($(\'<tr>\').append(\'<td><td><td>\'));\n
$(\'.remove\', newElement).click(function(){removeClick(this);});\n
$(this).parent().before(newElement);\n
editContent(newElement);\n
});\n
\n
$(\'#list .add_metal_button\').click(function() {\n
var i = parseInt($(this).attr(\'id\').split(\'_\')[2]);\n
var brother = $(\'#add_instr_\' + i, $(this).parent().parent()).parent();\n
var newElement = prependEditButtons($(\'<tr>\').append($(\'<td>\').attr(\'colspan\',3)));\n
$(\'.remove\', newElement).click(function(){removeClick(this);});\n
brother.before(newElement);\n
editContent(newElement);\n
});\n
});\n
});
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts65221515.28</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>tabber.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*==================================================\n
$Id: tabber.js,v 1.9 2006/04/27 20:51:51 pat Exp $\n
tabber.js by Patrick Fitzgerald pat@barelyfitz.com\n
\n
Documentation can be found at the following URL:\n
http://www.barelyfitz.com/projects/tabber/\n
\n
License (http://www.opensource.org/licenses/mit-license.php)\n
\n
Copyright (c) 2006 Patrick Fitzgerald\n
\n
Permission is hereby granted, free of charge, to any person\n
obtaining a copy of this software and associated documentation files\n
(the "Software"), to deal in the Software without restriction,\n
including without limitation the rights to use, copy, modify, merge,\n
publish, distribute, sublicense, and/or sell copies of the Software,\n
and to permit persons to whom the Software is furnished to do so,\n
subject to the following conditions:\n
\n
The above copyright notice and this permission notice shall be\n
included in all copies or substantial portions of the Software.\n
\n
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\n
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS\n
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n
SOFTWARE.\n
==================================================*/\n
\n
function tabberObj(argsObj)\n
{\n
var arg; /* name of an argument to override */\n
\n
/* Element for the main tabber div. If you supply this in argsObj,\n
then the init() method will be called.\n
*/\n
this.div = null;\n
\n
/* Class of the main tabber div */\n
this.classMain = "tabber";\n
\n
/* Rename classMain to classMainLive after tabifying\n
(so a different style can be applied)\n
*/\n
this.classMainLive = "tabberlive";\n
\n
/* Class of each DIV that contains a tab */\n
this.classTab = "tabbertab";\n
\n
/* Class to indicate which tab should be active on startup */\n
this.classTabDefault = "tabbertabdefault";\n
\n
/* Class for the navigation UL */\n
this.classNav = "tabbernav";\n
\n
/* When a tab is to be hidden, instead of setting display=\'none\', we\n
set the class of the div to classTabHide. In your screen\n
stylesheet you should set classTabHide to display:none. In your\n
print stylesheet you should set display:block to ensure that all\n
the information is printed.\n
*/\n
this.classTabHide = "tabbertabhide";\n
\n
/* Class to set the navigation LI when the tab is active, so you can\n
use a different style on the active tab.\n
*/\n
this.classNavActive = "tabberactive";\n
\n
/* Elements that might contain the title for the tab, only used if a\n
title is not specified in the TITLE attribute of DIV classTab.\n
*/\n
this.titleElements = [\'h2\',\'h3\',\'h4\',\'h5\',\'h6\'];\n
\n
/* Should we strip out the HTML from the innerHTML of the title elements?\n
This should usually be true.\n
*/\n
this.titleElementsStripHTML = true;\n
\n
/* If the user specified the tab names using a TITLE attribute on\n
the DIV, then the browser will display a tooltip whenever the\n
mouse is over the DIV. To prevent this tooltip, we can remove the\n
TITLE attribute after getting the tab name.\n
*/\n
this.removeTitle = true;\n
\n
/* If you want to add an id to each link set this to true */\n
this.addLinkId = false;\n
\n
/* If addIds==true, then you can set a format for the ids.\n
<tabberid> will be replaced with the id of the main tabber div.\n
<tabnumberzero> will be replaced with the tab number\n
(tab numbers starting at zero)\n
<tabnumberone> will be replaced with the tab number\n
(tab numbers starting at one)\n
<tabtitle> will be replaced by the tab title\n
(with all non-alphanumeric characters removed)\n
*/\n
this.linkIdFormat = \'<tabberid>nav<tabnumberone>\';\n
\n
/* You can override the defaults listed above by passing in an object:\n
var mytab = new tabber({property:value,property:value});\n
*/\n
for (arg in argsObj) { this[arg] = argsObj[arg]; }\n
\n
/* Create regular expressions for the class names; Note: if you\n
change the class names after a new object is created you must\n
also change these regular expressions.\n
*/\n
this.REclassMain = new RegExp(\'\\\\b\' + this.classMain + \'\\\\b\', \'gi\');\n
this.REclassMainLive = new RegExp(\'\\\\b\' + this.classMainLive + \'\\\\b\', \'gi\');\n
this.REclassTab = new RegExp(\'\\\\b\' + this.classTab + \'\\\\b\', \'gi\');\n
this.REclassTabDefault = new RegExp(\'\\\\b\' + this.classTabDefault + \'\\\\b\', \'gi\');\n
this.REclassTabHide = new RegExp(\'\\\\b\' + this.classTabHide + \'\\\\b\', \'gi\');\n
\n
/* Array of objects holding info about each tab */\n
this.tabs = new Array();\n
\n
/* If the main tabber div was specified, call init() now */\n
if (this.div) {\n
\n
this.init(this.div);\n
\n
/* We don\'t need the main div anymore, and to prevent a memory leak\n
in IE, we must remove the circular reference between the div\n
and the tabber object. */\n
this.div = null;\n
}\n
}\n
\n
\n
/*--------------------------------------------------\n
Methods for tabberObj\n
--------------------------------------------------*/\n
\n
\n
tabberObj.prototype.init = function(e)\n
{\n
/* Set up the tabber interface.\n
\n
e = element (the main containing div)\n
\n
Example:\n
init(document.getElementById(\'mytabberdiv\'))\n
*/\n
\n
var\n
childNodes, /* child nodes of the tabber div */\n
i, i2, /* loop indices */\n
t, /* object to store info about a single tab */\n
defaultTab=0, /* which tab to select by default */\n
DOM_ul, /* tabbernav list */\n
DOM_li, /* tabbernav list item */\n
DOM_a, /* tabbernav link */\n
aId, /* A unique id for DOM_a */\n
headingElement; /* searching for text to use in the tab */\n
\n
/* Verify that the browser supports DOM scripting */\n
if (!document.getElementsByTagName) { return false; }\n
\n
/* If the main DIV has an ID then save it. */\n
if (e.id) {\n
this.id = e.id;\n
}\n
\n
/* Clear the tabs array (but it should normally be empty) */\n
this.tabs.length = 0;\n
\n
/* Loop through an array of all the child nodes within our tabber element. */\n
childNodes = e.childNodes;\n
for(i=0; i < childNodes.length; i++) {\n
\n
/* Find the nodes where class="tabbertab" */\n
if(childNodes[i].className &&\n
childNodes[i].className.match(this.REclassTab)) {\n
\n
/* Create a new object to save info about this tab */\n
t = new Object();\n
\n
/* Save a pointer to the div for this tab */\n
t.div = childNodes[i];\n
\n
/* Add the new object to the array of tabs */\n
this.tabs[this.tabs.length] = t;\n
\n
/* If the class name contains classTabDefault,\n
then select this tab by default.\n
*/\n
if (childNodes[i].className.match(this.REclassTabDefault)) {\n
defaultTab = this.tabs.length-1;\n
}\n
}\n
}\n
\n
/* Create a new UL list to hold the tab headings */\n
DOM_ul = document.createElement("ul");\n
DOM_ul.className = this.classNav;\n
\n
/* Loop through each tab we found */\n
for (i=0; i < this.tabs.length; i++) {\n
\n
t = this.tabs[i];\n
\n
/* Get the label to use for this tab:\n
From the title attribute on the DIV,\n
Or from one of the this.titleElements[] elements,\n
Or use an automatically generated number.\n
*/\n
t.headingText = t.div.title;\n
\n
/* Remove the title attribute to prevent a tooltip from appearing */\n
if (this.removeTitle) { t.div.title = \'\'; }\n
\n
if (!t.headingText) {\n
\n
/* Title was not defined in the title of the DIV,\n
So try to get the title from an element within the DIV.\n
Go through the list of elements in this.titleElements\n
(typically heading elements [\'h2\',\'h3\',\'h4\'])\n
*/\n
for (i2=0; i2<this.titleElements.length; i2++) {\n
headingElement = t.div.getElementsByTagName(this.titleElements[i2])[0];\n
if (headingElement) {\n
t.headingText = headingElement.innerHTML;\n
if (this.titleElementsStripHTML) {\n
t.headingText.replace(/<br>/gi," ");\n
t.headingText = t.headingText.replace(/<[^>]+>/g,"");\n
}\n
break;\n
}\n
}\n
}\n
\n
if (!t.headingText) {\n
/* Title was not found (or is blank) so automatically generate a\n
number for the tab.\n
*/\n
t.headingText = i + 1;\n
}\n
\n
/* Create a list element for the tab */\n
DOM_li = document.createElement("li");\n
\n
/* Save a reference to this list item so we can later change it to\n
the "active" class */\n
t.li = DOM_li;\n
\n
/* Create a link to activate the tab */\n
DOM_a = document.createElement("a");\n
DOM_a.appendChild(document.createTextNode(t.headingText));\n
DOM_a.href = "javascript:void(null);";\n
DOM_a.title = t.headingText;\n
DOM_a.onclick = this.navClick;\n
\n
/* Add some properties to the link so we can identify which tab\n
was clicked. Later the navClick method will need this.\n
*/\n
DOM_a.tabber = this;\n
DOM_a.tabberIndex = i;\n
\n
/* Do we need to add an id to DOM_a? */\n
if (this.addLinkId && this.linkIdFormat) {\n
\n
/* Determine the id name */\n
aId = this.linkIdFormat;\n
aId = aId.replace(/<tabberid>/gi, this.id);\n
aId = aId.replace(/<tabnumberzero>/gi, i);\n
aId = aId.replace(/<tabnumberone>/gi, i+1);\n
aId = aId.replace(/<tabtitle>/gi, t.headingText.replace(/[^a-zA-Z0-9\\-]/gi, \'\'));\n
\n
DOM_a.id = aId;\n
}\n
\n
/* Add the link to the list element */\n
DOM_li.appendChild(DOM_a);\n
\n
/* Add the list element to the list */\n
DOM_ul.appendChild(DOM_li);\n
}\n
\n
/* Add the UL list to the beginning of the tabber div */\n
e.insertBefore(DOM_ul, e.firstChild);\n
\n
/* Make the tabber div "live" so different CSS can be applied */\n
e.className = e.className.replace(this.REclassMain, this.classMainLive);\n
\n
/* Activate the default tab, and do not call the onclick handler */\n
this.tabShow(defaultTab);\n
\n
/* If the user specified an onLoad function, call it now. */\n
if (typeof this.onLoad == \'function\') {\n
this.onLoad({tabber:this});\n
}\n
\n
return this;\n
};\n
\n
\n
tabberObj.prototype.navClick = function(event)\n
{\n
/* This method should only be called by the onClick event of an <A>\n
element, in which case we will determine which tab was clicked by\n
examining a property that we previously attached to the <A>\n
element.\n
\n
Since this was triggered from an onClick event, the variable\n
"this" refers to the <A> element that triggered the onClick\n
event (and not to the tabberObj).\n
\n
When tabberObj was initialized, we added some extra properties\n
to the <A> element, for the purpose of retrieving them now. Get\n
the tabberObj object, plus the tab number that was clicked.\n
*/\n
\n
var\n
rVal, /* Return value from the user onclick function */\n
a, /* element that triggered the onclick event */\n
self, /* the tabber object */\n
tabberIndex, /* index of the tab that triggered the event */\n
onClickArgs; /* args to send the onclick function */\n
\n
a = this;\n
if (!a.tabber) { return false; }\n
\n
self = a.tabber;\n
tabberIndex = a.tabberIndex;\n
\n
/* Remove focus from the link because it looks ugly.\n
I don\'t know if this is a good idea...\n
*/\n
a.blur();\n
\n
/* If the user specified an onClick function, call it now.\n
If the function returns false then do not continue.\n
*/\n
if (typeof self.onClick == \'function\') {\n
\n
onClickArgs = {\'tabber\':self, \'index\':tabberIndex, \'event\':event};\n
\n
/* IE uses a different way to access the event object */\n
if (!event) { onClickArgs.event = window.event; }\n
\n
rVal = self.onClick(onClickArgs);\n
if (rVal === false) { return false; }\n
}\n
\n
self.tabShow(tabberIndex);\n
\n
return false;\n
};\n
\n
\n
tabberObj.prototype.tabHideAll = function()\n
{\n
var i; /* counter */\n
\n
/* Hide all tabs and make all navigation links inactive */\n
for (i = 0; i < this.tabs.length; i++) {\n
this.tabHide(i);\n
}\n
};\n
\n
\n
tabberObj.prototype.tabHide = function(tabberIndex)\n
{\n
var div;\n
\n
if (!this.tabs[tabberIndex]) { return false; }\n
\n
/* Hide a single tab and make its navigation link inactive */\n
div = this.tabs[tabberIndex].div;\n
\n
/* Hide the tab contents by adding classTabHide to the div */\n
if (!div.className.match(this.REclassTabHide)) {\n
div.className += \' \' + this.classTabHide;\n
}\n
this.navClearActive(tabberIndex);\n
\n
return this;\n
};\n
\n
\n
tabberObj.prototype.tabShow = function(tabberIndex)\n
{\n
/* Show the tabberIndex tab and hide all the other tabs */\n
\n
var div;\n
\n
if (!this.tabs[tabberIndex]) { return false; }\n
\n
/* Hide all the tabs first */\n
this.tabHideAll();\n
\n
/* Get the div that holds this tab */\n
div = this.tabs[tabberIndex].div;\n
\n
/* Remove classTabHide from the div */\n
div.className = div.className.replace(this.REclassTabHide, \'\');\n
\n
/* Mark this tab navigation link as "active" */\n
this.navSetActive(tabberIndex);\n
\n
/* If the user specified an onTabDisplay function, call it now. */\n
if (typeof this.onTabDisplay == \'function\') {\n
this.onTabDisplay({\'tabber\':this, \'index\':tabberIndex});\n
}\n
\n
return this;\n
};\n
\n
tabberObj.prototype.navSetActive = function(tabberIndex)\n
{\n
/* Note: this method does *not* enforce the rule\n
that only one nav item can be active at a time.\n
*/\n
\n
/* Set classNavActive for the navigation list item */\n
this.tabs[tabberIndex].li.className = this.classNavActive;\n
\n
return this;\n
};\n
\n
\n
tabberObj.prototype.navClearActive = function(tabberIndex)\n
{\n
/* Note: this method does *not* enforce the rule\n
that one nav should always be active.\n
*/\n
\n
/* Remove classNavActive from the navigation list item */\n
this.tabs[tabberIndex].li.className = \'\';\n
\n
return this;\n
};\n
\n
\n
/*==================================================*/\n
\n
\n
function tabberAutomatic(tabberArgs)\n
{\n
/* This function finds all DIV elements in the document where\n
class=tabber.classMain, then converts them to use the tabber\n
interface.\n
\n
tabberArgs = an object to send to "new tabber()"\n
*/\n
var\n
tempObj, /* Temporary tabber object */\n
divs, /* Array of all divs on the page */\n
i; /* Loop index */\n
\n
if (!tabberArgs) { tabberArgs = {}; }\n
\n
/* Create a tabber object so we can get the value of classMain */\n
tempObj = new tabberObj(tabberArgs);\n
\n
/* Find all DIV elements in the document that have class=tabber */\n
\n
/* First get an array of all DIV elements and loop through them */\n
divs = document.getElementsByTagName("div");\n
for (i=0; i < divs.length; i++) {\n
/* Is this DIV the correct class? */\n
if (divs[i].className &&\n
divs[i].className.match(tempObj.REclassMain)) {\n
\n
/* Now tabify the DIV */\n
tabberArgs.div = divs[i];\n
divs[i].tabber = new tabberObj(tabberArgs);\n
}\n
}\n
\n
return this;\n
}\n
\n
\n
/*==================================================*/\n
\n
\n
function tabberAutomaticOnLoad(tabberArgs)\n
{\n
/* This function adds tabberAutomatic to the window.onload event,\n
so it will run after the document has finished loading.\n
*/\n
var oldOnLoad;\n
\n
if (!tabberArgs) { tabberArgs = {}; }\n
\n
/* Taken from: http://simon.incutio.com/archive/2004/05/26/addLoadEvent */\n
oldOnLoad = window.onload;\n
if (typeof window.onload != \'function\') {\n
window.onload = function() {\n
tabberAutomatic(tabberArgs);\n
};\n
} else {\n
window.onload = function() {\n
oldOnLoad();\n
tabberAutomatic(tabberArgs);\n
};\n
}\n
}\n
\n
\n
/*==================================================*/\n
\n
\n
/* Run tabberAutomaticOnload() unless the "manualStartup" option was specified */\n
\n
if (typeof tabberOptions == \'undefined\') {\n
\n
tabberAutomaticOnLoad();\n
\n
} else {\n
\n
if (!tabberOptions[\'manualStartup\']) {\n
tabberAutomaticOnLoad(tabberOptions);\n
}\n
\n
}\n
]]></string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>15497</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>ung_calendar.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
div.main-right {\n
border-left: 0px !important;\n
width: 85.6% !important;\n
}\n
\n
div.main-left {\n
width: 13.3% !important;\n
margin-top: -3.7px !important;\n
background-color: #FFFFFF !important;\n
}\n
\n
div.main-right fieldset.widget {\n
margin-left: 0px;\n
}\n
\n
div.cHead {\n
border-left: 0px !important;\n
border-right: 0px !important;\n
}\n
\n
div.ctoolbar {\n
background: #BBCCFF !important;\n
}\n
\n
div.btnseparator {\n
display:none;\n
}\n
\n
div.cHead div.ptogtitle {\n
padding: 2px;\n
position: fixed !important;\n
right: 20px !important;\n
top: 58px !important;\n
}\n
\n
a#BBIT_DP_CONTAINER {\n
left: 0px !important;\n
}\n
\n
div.main-left div#datepicker.hasDatepicker {\n
margin: 4px -3px -3px;\n
}\n
\n
.ui-datepicker {\n
padding: 0;\n
width: 13.5em;\n
height: 12em;\n
}\n
\n
div#datepicker .ui-widget-content {\n
background: none !important;\n
border: 0;\n
}\n
\n
.ui-datepicker th {\n
padding: 0px !important;\n
font-size: 12px;\n
}\n
\n
.ui-datepicker .ui-datepicker-header {\n
padding: 0px !important;\n
}\n
\n
.ui-datepicker table {\n
width: 101% !important;\n
}\n
\n
.ui-datepicker .ui-datepicker-header {\n
width: 100% !imporant;\n
}\n
\n
.ui-datepicker .ui-datepicker-prev,\n
.ui-datepicker .ui-datepicker-next {\n
top: 0px;\n
}\n
\n
div.main-left .ui-widget-content .ui-state-default,\n
div.main-left .ui-widget-header .ui-state-default {\n
background: none !important;\n
border: 1px solid #FFF;\n
}\n
\n
div.ui-datepicker-inline div.ui-datepicker-header {\n
border: 1px solid #FFF !important;\n
}\n
\n
.ui-datepicker td:hover {\n
background: #DAE6F6 !important;\n
}\n
\n
div#ui-datepicker-div.ui-datepicker {\n
background: none !important;\n
border: 0px;\n
}\n
\n
.ui-state-default .ui-state-highlight .ui-state-active .ui-state-hover {\n
background: #DAE6F6 !important;\n
}\n
\n
td.ui-datepicker-days-cell-over, td.ui-datepicker-week-end.ui-datepicker-current-day {\n
background: url("images/ui-bg_glass_75_dae6f6_1x400.png") repeat-x scroll 50% 50% #DAE6F6;\n
}\n
\n
table.ui-datepicker-calendar thead, div.ui-datepicker-inline div.ui-datepicker-header {\n
background: none repeat scroll 0 0 transparent;\n
}\n
\n
div#faddbtn.fbutton {\n
background: none repeat scroll 0 0 #E3E9FF !important;\n
height: 27px;\n
margin: -3px;\n
width: 105%;\n
}\n
\n
div#faddbtn.fbutton div {\n
padding: 6px;\n
}\n
\n
div#faddbtn.fbutton span.addcal:hover {\n
cursor: pointer;\n
}\n
\n
div#faddbtn.fbutton span.addcal {\n
background: url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\') repeat scroll 0 0 transparent;\n
border: 1px solid #BBBBBB;\n
padding: 2px 4px;\n
background-color: #EDF1D5;\n
}\n
\n
input#bbit-cal-quickAddBTN {\n
background: url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\') repeat scroll 0 0 transparent;\n
border: 1px solid #BBBBBB;\n
}\n
\n
div.header-left fieldset.widget div.field input[type="submit"] {\n
background: url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\') repeat scroll 0 0 transparent;\n
border: 1px solid #BBBBBB;\n
padding-top: 1px;\n
position: relative;\n
top: 1px;\n
-moz-border-radius: 4px 4px 4px 4px;\n
}\n
\n
div.header-left fieldset.widget div.field {\n
display: inline-block;\n
}\n
\n
img[alt="calendar_logo_box"] {\n
position: relative;\n
top: 7px;\n
cursor: pointer;\n
}\n
\n
div.header-left {\n
margin-top: -9px;\n
}\n
\n
div#gridcontainer div.event-listview tr td {\n
border-bottom: 1px solid #CCC;\n
padding: 11px;\n
}\n
\n
div#gridcontainer div.toolbar-listview {\n
background: none repeat scroll 0 0 #E3E9FF !important;\n
padding: 6px;\n
}\n
\n
a#back-calendar {\n
color: #20C;\n
font-weight: bolder;\n
}\n
\n
td#resultview {\n
text-align: right;\n
font-size: 10pt;\n
}\n
\n
tr#today-event td:first-child{\n
background: none repeat scroll 0 0 #FFF7D7;\n
border-color: #FAD163 #FAD163 #CCCCCC;\n
border-style: solid;\n
border-width: 0 1px 1px 0;\n
}\n
\n
div.event-listview table tbody tr td:first-child {\n
width: 9%;\n
}\n
\n
td#event-date {\n
color: #2200CC;\n
cursor: pointer;\n
font-size: 10pt;\n
font-weight: bold;\n
}\n
\n
td#time-range {\n
width: 9%;\n
text-align: center;\n
}\n
div#showreflashbtn.fbutton,\n
div#showdaybtn.fbutton,\n
div#showmonthbtn.fbutton,\n
div#showweekbtn.fbutton {\n
float: right !important;\n
}\n
\n
span#text-datetime {\n
margin-top: 4px;\n
}\n
\n
div#display-datetime.fbutton:hover, span#text-datetime:hover {\n
background: none !important;\n
border: 1px solid #BBCCFF !important;\n
}\n
\n
.ui-datepicker .ui-datepicker-title {\n
margin: 0 0.3em;\n
text-align: left;\n
}\n
\n
.ui-datepicker .ui-datepicker-next {\n
right: -2px;\n
}\n
\n
.ui-datepicker .ui-datepicker-prev {\n
left: 10.2em;\n
}\n
\n
.ui-datepicker .ui-datepicker-title {\n
color: #20C;\n
text-decoration: underline;\n
}\n
\n
.ui-widget-header .ui-icon {\n
background-image: url("ung_images/ui-icons_88aaee_256x240.png") !important;\n
}\n
\n
.ui-datepicker .ui-datepicker-prev span,\n
.ui-datepicker .ui-datepicker-next span {\n
-moz-border-radius: 9px 9px 9px 9px;\n
}\n
\n
input#bbit-cal-quickAddBTN {\n
background: url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\') repeat scroll 0 0 transparent;\n
border: 1px solid #BBBBBB;\n
}\n
\n
td.cb-value select {\n
border: 1px solid #BBBBBB;\n
}\n
\n
.ui-datepicker .ui-datepicker-prev:hover, .ui-datepicker .ui-datepicker-next:hover {\n
background: transparent;\n
border: 1px solid #FFF;\n
}\n
\n
a.calendar {\n
color: #000;\n
text-decoration: none;\n
}
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>ung_mail.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string>div.main-left {\n
background-color: #FFF !important;\n
}\n
\n
div.main-left {\n
width: 12% !important;\n
}\n
div.main-right {\n
width: 88% !important;\n
}\n
\n
div.favorite {\n
background-color: #c8d6ff;\n
border-top: 4px solid #BBCCFF;\n
padding-top: 1px;\n
}\n
\n
button#compose-mail {\n
background-image: url("ung_images/button_background.png");\n
border: 1px solid #BBBBBB;\n
-moz-border-radius: 4px;\n
margin-top: 5px;\n
}\n
\n
span.your_listbox-current-item-number {\n
display: none;\n
}\n
\n
div.toolbar button.archive {\n
margin-left: 18px;\n
}\n
\n
tr.listbox-label-line {\n
display: none;\n
}\n
\n
div.toolbar {\n
border-bottom: 1px solid #DEDEDE;\n
}\n
\n
span.listbox-current-page-start-number,\n
span.listbox-current-page-stop-number,\n
span.listbox-current-page-total-number {\n
font-weight: bold;\n
}\n
\n
div.listbox-content table.listbox tbody tr td:last-child {\n
text-align: right;\n
}\n
\n
div.mail-navigation {\n
font-size: 13px;\n
cursor: pointer;\n
margin-left: 15px;\n
}\n
\n
div.separator {\n
border-bottom: 1px solid #E3E9FF\n
}\n
\n
a#advertisement-name {\n
color: #0000CC;\n
margin-left: 8px;\n
text-decoration: underline;\n
}\n
\n
div.favorite span {\n
font-size: 80%;\n
}\n
\n
a#advertisement-url { \n
color: #006633 !important;\n
text-decoration: none;\n
}\n
\n
div.favorite a {\n
float: left;\n
margin-top: 2px;\n
}\n
\n
div.header-left fieldset.widget div.field {\n
display: inline-block;\n
}\n
\n
img[alt="mail_logo_box"] {\n
position: relative;\n
top: 9px;\n
cursor: pointer;\n
}\n
\n
div.main-left, div.main-right, div.main {\n
margin-top: 0em;\n
}\n
\n
div.main-right button#save-mail,\n
div.main-right button#discard-mail,\n
div.main-right button#send-mail { \n
background-image: url("ung_images/button_background.png");\n
border: 1px solid #BBBBBB;\n
-moz-border-radius: 4px;\n
margin-left: 10px;\n
margin-top: 10px;\n
}\n
\n
div.main-right table tbody tr td:first-child {\n
text-align: right;\n
}\n
\n
div.main-right table tbody tr td label {\n
font-size: 80%;\n
font-weight: bold;\n
}\n
\n
div.main-right table tbody tr td label[for="to"],\n
div.main-right table tbody tr td label[for="cc"],\n
div.main-right table tbody tr td label[for="bcc"] {\n
color: #0000CC;\n
text-decoration: underline;\n
white-space: nowrap;\n
}\n
\n
div.main-right tr#cc, div.main-right tr#bcc{\n
display:none;\n
}\n
\n
div.main-right span#add-cc-field,\n
div.main-right span#add-bcc-field {\n
font-size: 80%;\n
color: #20C;\n
text-decoration: underline;\n
cursor: pointer;\n
}\n
\n
a.email {\n
color: #000;\n
text-decoration: none;\n
}\n
\n
div.header-left {\n
margin-top: -9px !important;\n
}\n
\n
div.listbox-tree {\n
display: none !important;\n
}</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>ung_theme.css</string> </value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/* No margins, take all screen */\n
\n
body {\n
background: #fff !important;\n
margin: 0;\n
padding: 0;\n
font-family: arial,sans-serif;\n
font-weight:normal;\n
}\n
\n
/* Hidden input */\n
fieldset#hidden_fieldset,\n
div#upload_document,\n
div#edit_document {\n
display: none;\n
}\n
\n
/* Header classes */\n
\n
div.navigation {\n
font-family: arial,sans-serif;\n
padding: 5px;\n
height: 15px;\n
border-bottom: 1px solid #C9D7F1;\n
font-size: 13px;\n
}\n
\n
div.navigation fieldset.widget {\n
border: 0px;\n
padding-top: 0.6%;\n
margin: -0.60%;\n
width: 96%;\n
}\n
\n
div.navigation-right {\n
float: right;\n
margin-top: -16px;\n
}\n
\n
div.header-user {\n
text-align: right;\n
font-size: 13px;\n
margin-right:1%;\n
margin-top:-1.7%;\n
}\n
\n
div.main-action-area {\n
margin-top: 0.7%;\n
}\n
\n
/* Main action classes */\n
\n
div.main-action-area {\n
padding: 8px;\n
height: 30px;\n
}\n
\n
div.logo-area {\n
float: left;\n
padding-right: 10px;\n
}\n
\n
div.search-action-area {\n
float: left;\n
}\n
\n
div.share-action-area {\n
text-align: right;\n
}\n
\n
/* Main classes */\n
\n
div.main-right {\n
width:82%;\n
float:right;\n
border-left: 4px solid #BBCCFF;\n
}\n
\n
div.main-right div.main-content {\n
width: 100%;\n
height: 100%;\n
background-color: #fff;\n
vertical-align: middle;\n
}\n
\n
div.main-right div.main-status {\n
padding: 5px;\n
height: 22px;\n
vertical-align: middle;\n
font-size: 18px;\n
font-style: bold;\n
}\n
\n
div.main-right #page_wrapper {\n
margin-top: 0px; !important\n
}\n
\n
div.gadget-column {\n
margin-left:-4px;\n
}\n
\n
div.gadget-column div.file-selection {\n
background-color:#fff;\n
margin:15px -14px -4px -4px;\n
}\n
\n
div.gadget-column div.file-selection div.file-quick-browser,\n
div.gadget-column div.file-selection div.file-quick-search {\n
padding-top: 5px;\n
padding-bottom: 5px;\n
border-bottom: 1px solid #DDD;\n
}\n
\n
div.quick-search-item, td.listbox-table-domain-tree-cell a {\n
padding-left: 15px;\n
font-size: 13px;\n
line-height: 19px;\n
cursor: pointer;\n
text-decoration: none;\n
color: #000000;\n
}\n
\n
div.quick-search-item:hover,\n
table.listbox-table-domain-tree tbody tr:hover {\n
background-color: #DAE6F6;\n
}\n
\n
/* ERP5 Forms*/\n
\n
div.field label,\n
span.headline,\n
a.listbox_title,\n
div.actions, div.actions,\n
legend.group_title, fieldset.left {\n
display:none;\n
}\n
\n
fieldset.bottom {\n
position: relative;\n
border:0px;\n
padding:0px;\n
list-style: none;\n
}\n
\n
div.listbox-content table.listbox tbody tr td {\n
vertical-align: middle;\n
padding:2.2px;\n
}\n
\n
div.listbox-content tr, div#change_state_dialog tr {\n
font-size:13px;\n
empty-cells:show;\n
white-space:nowrap;\n
padding-top: 1px;\n
border-bottom: 1px solid #D1D1D1;\n
}\n
\n
tr.DataA:hover, tr.DataB:hover {\n
background-color: #DAE6F6 !important;\n
}\n
\n
div.listbox-content a img, div.main-content a img {\n
border:0px;\n
}\n
\n
div.listbox-content td.listbox-table-data-cell a img {\n
margin-right: -8px;\n
}\n
div.main-right div.main-status a {\n
float:right;\n
font-size:14px;\n
padding-right:1%;\n
padding-top:0.3%;\n
}\n
\n
.sort-button {\n
border:0px;\n
background: url("ung_images/href_background.gif");\n
}\n
\n
.listbox {\n
border-collapse: collapse;\n
}\n
\n
.listbox th {\n
border-right: 1px solid #bbccff;\n
}\n
\n
thead {\n
font-family: serif;\n
font-style: normal;\n
font-variant: normal;\n
font-weight: normal;\n
font-size: medium;\n
line-height: 100%;\n
word-spacing: normal;\n
letter-spacing: normal;\n
background: url("ung_images/href_background.gif");\n
}\n
\n
.listbox-table-select-cell {\n
width:0.5%;\n
}\n
\n
.listbox-table-header-cell {\n
text-align:left;\n
}\n
\n
div.listbox-content a, a:visited, a:focus {\n
background-color: inherit;\n
color:#002E3F;\n
text-decoration:none;\n
}\n
\n
div.listbox-content a:hover {\n
background-color:inherit;\n
color:#3D6474;\n
text-decoration:underline;\n
}\n
\n
img.sort-button-desc {\n
background: url("ung_images/icon_desc.gif") no-repeat;\n
width:10px;\n
margin:1px -10px;\n
}\n
\n
img.sort-button-asc {\n
background: url("ung_images/icon_asc.gif") no-repeat;\n
width:10px;\n
margin:1px -10px;\n
}\n
\n
.jSheetControls_formula {\n
width: 90% !important;\n
}\n
\n
iframe#svgframe, fieldset.widget {\n
border: 0px;\n
}\n
\n
iframe#svgframe {\n
width: 100%;\n
}\n
\n
div#wrapper_toolbar {\n
background: #E3E9FF no-repeat;\n
height:35px;\n
}\n
\n
button.clone {\n
background-image: url(\'<dtml-var expr="portal_url()">/images/fileclone.png\');\n
border: 0 none;\n
height:22px;\n
width:23px;\n
}\n
\n
div#wrapper_toolbar fieldset.widget div.field div.input {\n
margin-top:-2px;\n
}\n
\n
div#wrapper_header div.navigation-right {\n
float: right;\n
margin-top: -5.2em;\n
}\n
\n
div#wrapper_header div.field fieldset {\n
border:0px;\n
}\n
\n
div#wrapper_header div.field a[name="document_title"],\n
div#wrapper_header div.field a[name="document_state"] {\n
margin-left:22px;\n
font-size:15px;\n
}\n
\n
div#wrapper_header div.field a[name="document_state"] {\n
color:#525f94;\n
font-size:13px !important;\n
}\n
\n
div.header-bottom {\n
margin-left:-7px;\n
margin-top:6px;\n
width:100%;\n
}\n
\n
div.header-right {\n
float: right;\n
margin-top: -38px;\n
height: 18px;\n
width: 41.3%;;\n
}\n
\n
div.main-left, div.main-right {\n
margin-top: -0.6em;\n
}\n
\n
div.main {\n
margin-top: 0.5em;\n
height: auto;\n
}\n
button.delete {\n
margin-top: 6px;\n
margin-left: 6px;\n
}\n
\n
div.favorite-box {\n
margin-top:-6px;\n
margin-left:-16px;\n
}\n
\n
table.listbox {\n
margin-left: -12px;\n
background: #eff3fa;\n
}\n
\n
// XXX: this disable image on main listbox (now by gadget)\n
//div.main-right fieldset.widget div.field:last-child img {\n
// display:none;\n
//}\n
\n
div.header-right div.input a {\n
color:#A7A2A2;\n
font-size:13px;\n
}\n
\n
a.ung_docs img {\n
border:0 none;\n
left:-7px;\n
position:relative;\n
top:9px;\n
}\n
\n
div.main-left {\n
margin-left:-4px;\n
width: 18%;\n
float:left;\n
background-color: #DAE6F6;\n
height:4em;\n
border: 0;\n
}\n
\n
div.favorite {\n
background-color: #BBCCFF;\n
height:27px;\n
margin-top:-5px;\n
padding-top:8px;\n
}\n
\n
div.favorite a {\n
font-size: 14px;\n
float: right;\n
margin-right: 5px;\n
}\n
div.toolbar, div.favorite {\n
margin-left:-12px;\n
border-collapse: collapse;\n
}\n
\n
div.toolbar {\n
background-color: #E3E9FF;\n
height:27px;\n
padding-bottom:5px;\n
}\n
\n
div.content {\n
background:none repeat scroll 0 0 #DAE6F6;\n
border-bottom:4px solid #BBCCFF;\n
border-top:4px solid #BBCCFF;\n
}\n
\n
/* XXX: This was creating a fixed background colored block of 27em\n
div.main-right div.content {\n
height:27em;\n
}\n
*/\n
\n
div.listbox-body div.main-right tbody {\n
height:25.35em;\n
overflow-x:hidden;\n
overflow-y:auto;\n
}\n
\n
div.header-left {\n
margin-left:1px;\n
margin-top:-4px;\n
}\n
\n
.sort-button span {\n
color:#112abb;\n
}\n
\n
div.navigation-left a {\n
margin-left:7px;\n
}\n
\n
div.navigation-right a {\n
margin-left:2px;\n
}\n
\n
div.main-right fieldset.widget{\n
padding:0;\n
margin-left:12px;\n
margin-top:5px;\n
}\n
\n
div.bottom_actions button {\n
display:none;\n
}\n
\n
div.toolbar button, div.gadget-action input#upload {\n
color: #333333;\n
border: 1px solid #BBBBBB;\n
background-image: url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\');\n
-moz-border-radius: 4px;\n
}\n
\n
.menu_create_object {\n
color:#8e8e8e;\n
margin-top:-5px;\n
}\n
\n
div#select_language {\n
color: #20C;\n
}\n
.menu_create_object, div#select_language {\n
font-family: arial,sans-serif;\n
font-size:14px;\n
list-style:none outside none;\n
white-space:nowrap;\n
}\n
.menu_create_object img {\n
border:0px;\n
}\n
\n
.menu_create_object li a#current {\n
background-image: url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\');\n
width: 78px;\n
height: 19px;\n
color: #333333;\n
border:1px solid #BBBBBB;\n
padding-left:2px;\n
padding-right:14px;\n
text-align:justify;\n
-moz-border-radius: 4px;\n
}\n
\n
.menu_create_object ul, div#select_language ul {\n
list-style:none;\n
margin:0;\n
padding:0;\n
}\n
\n
span#available_language {\n
text-decoration: underline;\n
}\n
div#select_language li span {\n
text-color: #20C;\n
cursor: pointer;\n
}\n
.menu_create_object li {\n
float:left;\n
margin-left: 0.5em;\n
position:relative;\n
top: 0.5em;\n
text-decoration:none;\n
}\n
\n
.menu_create_object li a, div#select_language ul li span {\n
display:block;\n
text-decoration:none;\n
}\n
\n
.menu_create_object li a:hover, div#select_language li a:hover {\n
color:#000000;\n
text-decoration:none;\n
}\n
\n
.menu_create_object li:hover ul, div#select_language li:hover ul {\n
display:block;\n
}\n
\n
div#select_language li {\n
width: 40px;\n
cursor: pointer;\n
}\n
\n
div#select_language li ul {\n
width:70px;\n
}\n
\n
div#select_language li li {\n
background:none repeat scroll 0 0 #FFFFFF;\n
border-left: 1px solid #C9D7F1;\n
border-right: 1px solid #C9D7F1;\n
border-top: 2px solid transparent;\n
width: 100%;\n
}\n
\n
.menu_create_object li li {\n
display:block; !important;\n
margin-left:0; !important;\n
float: none; !important;\n
top: 0px;\n
margin-top: 5px;\n
}\n
\n
.menu_create_object p {\n
clear:left;\n
}\n
\n
.menu_create_object li ul, div#select_language li ul {\n
border:1px solid #D1D1D1;\n
background-color: #FFF;\n
}\n
\n
.menu_create_object li ul, div#select_language li ul {\n
display:none;\n
height:auto;\n
filter:alpha(opacity=95);\n
position:absolute;\n
z-index:200;\n
}\n
\n
.menu_create_object li ul a, div#select_language li ul a {\n
display:block;\n
font-size:14px;\n
font-style:normal;\n
margin-left:4px;\n
margin-top:-5px;\n
padding:0 21px 0 1px;\n
text-align:left;\n
color:#002E3F;\n
text-decoration:none;\n
line-height:28px;\n
}\n
\n
div.gadget-column input#upload {\n
left:1em;\n
position:relative;\n
top:0.5em;\n
}\n
\n
.menu_create_object li li:hover, div#select_language li li:hover {\n
background-color: #DAE6F6;\n
}\n
\n
.menu_create_object li a#current img {\n
margin-left:3px;\n
position:relative;\n
top:2px;\n
}\n
\n
.action_menu {\n
float:right;\n
margin-right:5em;\n
width:25%;\n
}\n
\n
.action_menu li {\n
list-style:none outside none;\n
}\n
\n
.action_menu li ul {\n
background: none repeat scroll 0 0 #FFFFFF;\n
border: 1px solid #D1D1D1;\n
display: none;\n
height: 76px;\n
position: relative;\n
margin-top:3px;\n
width: 143px;\n
z-index: 200;\n
}\n
\n
.action_menu li a:hover {\n
color:#000000;\n
text-decoration:none;\n
}\n
\n
.action_menu li ul li {\n
margin: -26px 0px -24px -40px;\n
height: 23px;\n
text-align:center;\n
}\n
\n
.action_menu li:hover ul {\n
display:block;\n
}\n
\n
.action_menu a#change_state {\n
color: #333333;\n
background-image: url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\');\n
border: 1px solid #D1D1D1;\n
padding:2px;\n
}\n
\n
.action_menu li ul li h6 {\n
color: #333333;\n
font-size: 12px;\n
padding-top:4px;\n
font-weight:lighter;\n
}\n
\n
.action_menu li ul li:hover {\n
background: #f3f3f3;\n
}\n
\n
button.save {\n
background-image:url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\');\n
border:1px solid #D1D1D1;\n
height:21px;\n
color:#333333;\n
}\n
\n
button.edit {\n
border:1px solid #D1D1D1;\n
float:right;\n
margin-top:-1.6em;\n
background-image:url(\'<dtml-var expr="portal_url()">/ung_images/button_background.png\');\n
color:#333333;\n
}\n
\n
div#wrapper_header div.field a[name="document_title"]:hover {\n
background:none repeat scroll 0 0 #FFFFD6;\n
border:1px solid #AAAAAA;\n
}\n
\n
div#wrapper_header div.field a[name="document_title"] {\n
color:#060605;\n
padding:3px;\n
text-decoration:none;\n
}\n
\n
div#edit_document fieldset label {\n
font-size: 12px;\n
}\n
\n
div.ui-dialog-titlebar {\n
height:15px;\n
}\n
\n
div#edit_document fieldset {\n
border:0 none;\n
height:72px;\n
margin-left:-1em;\n
margin-top:-0.5em;\n
width:379px;\n
}\n
\n
div#edit_document {\n
height:80px;\n
width:368px;\n
overflow:hidden;\n
}\n
\n
div#edit_document fieldset input {\n
margin-top:6px;\n
font-size:13px;\n
width: 95%;\n
}\n
\n
div.ui-dialog {\n
background: #C1D9FF;\n
}\n
\n
div#edit_document fieldset label {\n
font-size: 12px;\n
}\n
\n
span#ui-dialog-title-edit_document,\n
span#ui-dialog-title-upload_document,\n
span#ui-dialog-title-gadget-listbox{\n
font-size:17px;\n
margin-left:-8px;\n
margin-top:-3px;\n
font:bold 12pt Arial,Sans-serif;\n
color: #222222 !important;\n
}\n
\n
div.ui-dialog-titlebar {\n
height:15px;\n
border: 0px;\n
background: #E0EDFE;\n
-moz-border-radius:1px 1px 1px 1px;\n
}\n
\n
button#save_document, button#cancel_document {\n
font-size:11px;\n
margin-top:0.7em;\n
}\n
\n
.ui-dialog .ui-dialog-buttonpane {\n
background:none repeat scroll 0 0 #C1D9FF;\n
border-top:0 none;\n
// width: 5.6em;\n
padding:0 !important;\n
}\n
\n
.ui-button-text-only .ui-button-text {\n
padding:0.2em 0.3em !important;\n
}\n
\n
.ui-button .ui-button-text {\n
line-height:1em !important;\n
}\n
\n
.ui-dialog .ui-dialog-buttonpane button {\n
margin:0 0.4em 0.5em 0 !important;\n
}\n
\n
span.ui-button-text {\n
font-size: 12px;\n
}\n
\n
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {\n
float:none !important;\n
// width:104px;\n
height:21px;\n
margin-top:-10px;\n
}\n
\n
div.listbox-navigation {\n
float:right;\n
font-size:13px;\n
margin-top:6px;\n
min-width:10%;\n
margin-right:5px;\n
}\n
\n
div.listbox-navigation input {\n
height: 18px;\n
width: 20px;\n
}\n
\n
div.listbox-header-box {\n
height:0px;\n
}\n
\n
div.listbox-number-of-records{\n
float: right;\n
font-size: 12px;\n
margin-right: 12em;\n
margin-top: -25px;\n
min-width: 30%;\n
}\n
\n
div.listbox-navigation button.listbox_last_page,\n
div.listbox-navigation button.listbox_next_page,\n
div.listbox-navigation button.listbox_previous_page,\n
div.listbox-navigation button.listbox_first_page {\n
height:20px;\n
border: 0px;\n
}\n
\n
div.listbox-navigation button.listbox_previous_page,\n
div.listbox-navigation button.listbox_next_page {\n
margin: 0px;\n
width:12px;\n
}\n
\n
div.listbox-navigation button.listbox_last_page,\n
div.listbox-navigation button.listbox_first_page {\n
margin: 0px;\n
width:18px;\n
}\n
\n
div.listbox-navigation button.listbox_next_page {\n
background-image: url(\'<dtml-var expr="portal_url()">/ung_images/next_page.png\');\n
}\n
\n
div.listbox-navigation button.listbox_last_page {\n
background-image: url(\'<dtml-var expr="portal_url()">/ung_images/last_page.png\');\n
}\n
\n
div.listbox-navigation button.listbox_first_page {\n
background-image: url(\'<dtml-var expr="portal_url()">/ung_images/first_page.png\');\n
}\n
\n
div.listbox-navigation button.listbox_previous_page {\n
background-image: url(\'<dtml-var expr="portal_url()">/ung_images/previous_page.png\');\n
}\n
\n
div.listbox-navigation button.listbox_previous_page,\n
div.listbox-navigation button.listbox_first_page,\n
div.listbox-navigation button.listbox_last_page,\n
div.listbox-navigation button.listbox_next_page {\n
background-repeat:no-repeat;\n
}\n
\n
p#more_properties, p#hide_properties {\n
font-size: 12px;\n
}\n
\n
p#more_properties:hover, p#hide_properties:hover {\n
color:#525f94;\n
}\n
a#left_message, a#right_message {\n
display: none;\n
color: #FD0A0A;\n
float: left;\n
margin-right: 10px;\n
}\n
\n
div.listbox-domain-tree-container select {\n
display:none;\n
}\n
\n
div.listbox-tree {\n
font-size: 13px;\n
height: 233px;\n
}\n
\n
div.listbox-tree-mode-selection {\n
display:none;\n
}\n
\n
table.listbox-table-domain-tree {\n
width: 100%;\n
}\n
\n
a.domain_selected {\n
float:left !important;\n
font-size: 15px !important;\n
}\n
\n
div#upload_document {\n
height: 58px !important;\n
width: 390px !important;\n
font-size: 12px;\n
}\n
fieldset#file_box {\n
border: 0px !important;\n
margin-left: -17px;\n
margin-top: -4px;\n
}\n
input#submit_document {\n
background: url("jquery/ui/css/erp5-theme/images/ui-bg_glass_75_dae6f6_1x400.png") repeat-x scroll 50% 50% #DAE6F6;\n
border: 1px solid #3D6474;\n
color: #555555;\n
font-weight: normal;\n
-moz-border-radius: 4px 4px 4px 4px;\n
margin-top: 3px;\n
}\n
\n
a#loading_message {\n
display: none;\n
}\n
\n
iframe#field_my_text_content___Frame {\n
height: 489px !important;\n
}\n
\n
div#login-box {\n
font-family: Arial,Helvetica,sans-serif;\n
font-size: 12px;\n
margin: 0;\n
padding: 23px 23px 0 0;\n
float:right;\n
width: 23%;\n
}\n
\n
div#login-box input {\n
vertical-align: middle;\n
}\n
\n
div#login-box input.submit {\n
margin-top: 6px;\n
}\n
\n
div#preference_dialog {\n
display:none;\n
font-size: 14px;\n
white-space: nowrap;\n
}\n
\n
fieldset.center.editable, fieldset.right.editable {\n
border: 0;\n
padding: 0.15em 0.35em 0.400em;\n
font-size: 14px;\n
margin-left: -11px;\n
}\n
\n
fieldset.center.editable div.field label,\n
fieldset.right.editable div.field label {\n
display: block;\n
}\n
\n
span#ui-dialog-title-preference_dialog {\n
margin: 0;\n
margin-top: -2px;\n
margin-left: -10px;\n
font-size: 15px;\n
color: #222222 !important;\n
}\n
\n
div#preference_dialog div.field {\n
padding-bottom: 1px;\n
padding-top: 1px;\n
}\n
\n
div.header-right fieldset.widget {\n
height: 29px;\n
}\n
\n
div.header-right fieldset.widget span#sharing_url {\n
padding-top: 2px;\n
font-size: 11px;\n
}\n
\n
div.gadget-listbox {\n
display: none;\n
}\n
\n
table#gadget-table tbody tr img {\n
float: right;\n
}\n
\n
table#gadget-table tbody tr {\n
font-size: 15px;\n
}\n
\n
table#gadget-table {\n
width: 100%;\n
}\n
\n
div.gadget-action div.front_pad {\n
font-size: 10px;\n
}\n
h3.handle {\n
color: #222222 !important;\n
background: white !important;\n
font-size: 13px !important;\n
border-bottom: 0px !important;\n
}\n
\n
div.block div.content {\n
border-top: 0px !important;\n
border-bottom: 1px solid #DDDDDD !important;\n
}\n
\n
div.portal-column {\n
width: 100% !important;\n
min-height: 0 !important;\n
}\n
\n
div#page_wrapper div.minimize_wrapper div.edit-form fieldset.left,\n
div#page_wrapper div.minimize_wrapper div.edit-form fieldset.left label {\n
display: inline !important;\n
}\n
\n
div.edit-form button {\n
margin-top: -0.3em !important;\n
}\n
\n
div.edit-form {\n
padding-left: 0 !important;\n
}\n
\n
h3.handle span.handle {\n
background: white !important;\n
}\n
\n
a.block-minimize {\n
background-image: url("../ung_images/icon_minimize.png") !important;\n
}\n
\n
a.block-remove {\n
background-image: url("../ung_images/icon_remove.png") !important;\n
}\n
\n
a.block-edit-form {\n
background-image: url("../ung_images/icon_edit.png") !important;\n
}\n
\n
table#navigation_table td#tab-switcher-container,\n
table#navigation_table td#tab-list-container {\n
display: none !important;\n
}\n
\n
div#add_new_gadget_link {\n
border-bottom: 0px;\n
padding-top: 5px;\n
width: 50% !important;\n
}\n
\n
div#page_wrapper {\n
min-height: 0 !important;\n
}\n
\n
div.front_pad div#page_wrapper {\n
margin: -0.5em 0 0 !important;\n
}\n
\n
#add-gadgets{\n
font-size: 11px;\n
}\n
\n
form#ung_preference,\n
form#system_preference,\n
form#erp5_preference,\n
form#change_state_form {\n
margin:0px;\n
padding: 0px;\n
}\n
\n
div.edit-form {\n
background-color: #FFF !important;\n
border: 0 none !important;\n
}\n
\n
table.gadget tbody tr:first-child {\n
display: none !important;\n
}\n
\n
div.edit-form {\n
height: 176px !important;\n
}\n
\n
div#edit_document.ui-dialog-content {\n
background-color: #FFFFFF;\n
}\n
\n
.ui-widget textarea {\n
font-size: 13px !important;\n
}\n
\n
div#tabs, div#pad-navigation-wrapper div#tabs_switcher.tab {\n
display: none !important;\n
}\n
\n
div#pad-navigation-wrapper {\n
border: 0px !important;\n
}\n
\n
img[alt="calendar_logo_box"] {\n
margin-top: 10px;\n
}\n
\n
div#preference_dialog select {\n
border: 0px;\n
}\n
\n
a.your_listbox_title {\n
display: none;\n
}\n
\n
table#field_table,\n
table#new-account-table,\n
table#create-new-user {\n
border: 1px solid #C3D9FF;\n
width: 78%;\n
}\n
\n
table#field_table tbody,\n
table#new-account-table tbody,\n
table#create-new-user tbody {\n
background: #E8EEFA;\n
}\n
\n
table#field_table tbody label {\n
font-size: 10pt;\n
float: right;\n
}\n
\n
table#new-account-table table td,\n
table#create-new-user td {\n
font-size: 10pt;\n
}\n
\n
td#new-account-form {\n
text-decoration: underline;\n
color: #00C;\n
font-weight: bold;\n
cursor: pointer;\n
}\n
\n
table#create-new-user {\n
display:none;\n
margin-top: -22px;\n
}\n
\n
td#form-message {\n
color: #EC1D1D;\n
display: none;\n
}\n
\n
div#advertisement h2 {\n
font-size: 15pt;\n
}\n
\n
div#advertisement b {\n
font-size: 12px !important;\n
}\n
\n
div.footer {\n
text-align: center;\n
margin-top: 40px;\n
font-size: 10pt;\n
}\n
\n
div.header-left h2 {\n
font-size: 14pt;\n
}\n
\n
form#create-user table tbody tr:last-child td {\n
color: #20C;\n
text-decoration: underline;\n
font-size: 8pt;\n
cursor: pointer;\n
}\n
\n
select[name="field_your_language"] {\n
background-color: transparent;\n
border: 0 none;\n
}\n
\n
div.navigation-right fieldset.widget div {\n
float: left;\n
}\n
\n
span.date-format {\n
font-style: italic;\n
}\n
\n
span#no-input-file {\n
display: none;\n
color: #f61717;\n
}\n
\n
.tree-open, .tree-closed {\n
border: none;\n
background: #FFF;\n
cursor: pointer;\n
}\n
\n
div#change_state_dialog {\n
display:none;\n
width: inherit !important;\n
font-size: 14px;\n
padding-left: .3em;\n
overflow: auto;\n
}\n
\n
div#change_state_dialog table {\n
margin-left: 0;\n
}\n
\n
div#change_state_dialog div.field {\n
padding-bottom: 1px;\n
padding-top: 1px;\n
}\n
\n
/* Transition Message */\n
div.portal_status_message {\n
float: left;\n
padding-left: 100px;\n
}\n
\n
// fix \'_\' after ung-logo image\n
a.ung_docs {\n
text-decoration: none !important;\n
}\n
a.ung_docs:link {\n
text-decoration: none !important;\n
}\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>erp5.css</string> </value>
</item>
<item>
<key> <string>_cache_namespace_keys</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>main_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>context_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>navigation_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_family</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_size</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_hover_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>button_description_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_label_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_odd_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_even_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_hover_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_stat_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>alternate_font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>group_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>alternate_font_color</string> </key>
<value> <string>#596dab</string> </value>
</item>
<item>
<key> <string>background_color</string> </key>
<value> <string>#ABD0F4</string> </value>
</item>
<item>
<key> <string>button_description_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>context_bar_background_color</string> </key>
<value> <string>#98C3EC</string> </value>
</item>
<item>
<key> <string>dialog_background_color</string> </key>
<value> <string>#BDD8F8</string> </value>
</item>
<item>
<key> <string>dialog_border_color</string> </key>
<value> <string>#3D5474</string> </value>
</item>
<item>
<key> <string>document_background_color</string> </key>
<value> <string>#E3EAFA</string> </value>
</item>
<item>
<key> <string>document_border_color</string> </key>
<value> <string>#3D6474</string> </value>
</item>
<item>
<key> <string>font_color</string> </key>
<value> <string>#001730</string> </value>
</item>
<item>
<key> <string>font_family</string> </key>
<value> <string>Arial, Helvetica, sans-serif</string> </value>
</item>
<item>
<key> <string>font_size</string> </key>
<value> <string>12px</string> </value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>group_border_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>link_color</string> </key>
<value> <string>#002e3f</string> </value>
</item>
<item>
<key> <string>link_hover_color</string> </key>
<value> <string>#3D6474</string> </value>
</item>
<item>
<key> <string>listbox_even_background_color</string> </key>
<value> <string>#DAE6F6</string> </value>
</item>
<item>
<key> <string>listbox_hover_background_color</string> </key>
<value> <string>#BDD8F8</string> </value>
</item>
<item>
<key> <string>listbox_label_background_color</string> </key>
<value> <string>#C1DAEB</string> </value>
</item>
<item>
<key> <string>listbox_odd_background_color</string> </key>
<value> <string>#FFF</string> </value>
</item>
<item>
<key> <string>listbox_stat_background_color</string> </key>
<value> <string>#C1DAEB</string> </value>
</item>
<item>
<key> <string>main_border_color</string> </key>
<value> <string>#DDF0FF</string> </value>
</item>
<item>
<key> <string>navigation_bar_background_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<dtml-var expr="portal_skins.erp5_xhtml_style[\'erp5.css\'](portal_url=portal_url, \n
main_border_color = main_border_color,\n
context_bar_background_color = context_bar_background_color,\n
navigation_bar_background_color = navigation_bar_background_color,\n
background_color = background_color,\n
font_family = font_family,\n
font_size = font_size,\n
font_color = font_color,\n
dialog_background_color = dialog_background_color,\n
dialog_border_color = dialog_border_color,\n
link_color = link_color,\n
link_hover_color = link_hover_color,\n
button_description_color = button_description_color,\n
document_border_color = document_border_color,\n
document_background_color = document_background_color,\n
listbox_label_background_color = listbox_label_background_color,\n
listbox_odd_background_color = listbox_odd_background_color,\n
listbox_even_background_color = listbox_even_background_color,\n
tooltip_border_color = tooltip_border_color,\n
tooltip_background_color = tooltip_background_color,\n
tooltip_color = tooltip_color,\n
listbox_hover_background_color = listbox_hover_background_color,\n
listbox_stat_background_color = listbox_stat_background_color,\n
alternate_font_color = alternate_font_color,\n
group_border_color = group_border_color,)">\n
\n
\n
\n
/* customize some styles of erp5_xhtml_style/erp5.css */\n
body {\n
background: #81B2DC url(<dtml-var expr="portal_url()">/tiolive_base_image/bg.png) repeat-y;\n
}\n
\n
.ListSummary table {\n
background-color: <dtml-var document_background_color>;\n
}\n
\n
#status #logged_in_as {\n
display: none;\n
}\n
\n
\n
/* TioLive selectors */\n
#main_bar {\n
padding-bottom: 0px;\n
padding-top: 0px;\n
}\n
\n
#top-bar {\n
background-color:#4780B0;\n
border-bottom:1px solid #FFFFFF;\n
overflow:hidden;\n
}\n
\n
#fieldset-tiobar {\n
float:left;\n
overflow:hidden;\n
border-style: none;\n
font-size:11pt;\n
}\n
\n
#fieldset-tiobar select{\n
margin-right: 5px;\n
}\n
\n
#main_bar .second {\n
display: inline;\n
}\n
\n
#tiologin {\n
font-size:9pt;\n
color:#FFFFFF;\n
float:left;\n
height:100%;\n
line-height:23px;\n
margin:0 100px 0 0;\n
padding:5px 0pt 0pt;\n
text-align: left;\n
}\n
\n
#tiologin img#user-img{\n
margin-left: 5px;\n
vertical-align: middle;\n
padding: 3px;\n
}\n
\n
#link-login{\n
float:left;\n
}\n
#link-login:link, #link-login:active, #link-login:visited {\n
color:#FFFFFF;\n
float:left;\n
height:100%;\n
line-height:23px;\n
font-size:9pt;\n
font-weight:normal;\n
text-transform:lowercase;\n
}\n
\n
#fieldset-tiosearch {\n
\n
float:left;\n
\tborder:none;\n
\tfont-size:1pt;\n
\tcolor:#f6a801;\n
\tbackground: url(<dtml-var expr="portal_url()">/tiolive_base_image/input-tiosearch.png) no-repeat transparent;\n
\tbackground-position: 0 5px;\n
\n
}\n
\n
#fieldset-tiosearch button.input-submit {\n
\n
border:none;\n
background: url(<dtml-var expr="portal_url()">/tiolive_base_image/input-tiosearch.png) no-repeat transparent;\n
background-position: 100px 0;\n
\tcursor: pointer;\n
\n
}\n
\n
#fieldset-tiosearch input.input-text, #fieldset-tiosearch input.input-text:hover, #fieldset-tiosearch input.input-text:focus {\n
\n
\tbackground: transparent;\n
\tborder:none;\n
\n
}\n
\n
#fieldset-tiosearch {\n
\n
margin: 0;\n
\twidth:163px;\n
\tright:5px;\n
\toverflow: hidden;\n
\tdisplay:block;\n
\theight: 23px;\n
\n
}\n
\n
#fieldset-tiosearch input.input-text {\n
\n
border: 0;\n
margin: 0;\n
padding: 0;\n
top: 0;\n
margin-left: 3px;\n
\twidth:132px;\n
color: #777777;\n
\n
}\n
\n
#fieldset-tiosearch input.input-text:focus {color:#000000}\n
\n
#fieldset-tiosearch button.input-submit {\n
\n
width: 23px;\n
height: 23px;\n
\n
}\n
\n
#top-bar fieldset{\n
\n
padding: 5px;\n
\n
}\n
\n
#transition_message {\n
color: #c40;\n
}\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>tooltip_background_color</string> </key>
<value> <string>#FFD</string> </value>
</item>
<item>
<key> <string>tooltip_border_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>tooltip_color</string> </key>
<value> <string>#000</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
<tuple/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>erp5_knowledge_box.css</string> </value>
</item>
<item>
<key> <string>_cache_namespace_keys</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>background_color</string> </key>
<value> <string>#E3EAFA</string> </value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
<dtml-var expr="portal_skins.erp5_knowledge_pad[\'erp5_knowledge_box.css\']">\n
\n
.tab_selected {\n
font-weight: bold;\n
background-color: <dtml-var background_color>;\n
border-bottom: 1px solid <dtml-var background_color>;\n
}\n
\n
#page_wrapper {\n
background: <dtml-var background_color>;;\n
margin:0 0 0.5em 0;\n
padding:0.2em 0 0 0;\n
}\n
\n
div.block table.listbox button.sort_button{\n
background: inherit; \n
}
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>erp5_editor.css</string> </value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>main_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>context_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>navigation_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_family</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_size</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_hover_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>button_description_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_label_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_odd_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_even_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_hover_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_stat_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>alternate_font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>group_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>alternate_font_color</string> </key>
<value> <string>#597d9b</string> </value>
</item>
<item>
<key> <string>background_color</string> </key>
<value> <string>#FFFFFF</string> </value>
</item>
<item>
<key> <string>button_description_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>context_bar_background_color</string> </key>
<value> <string>#BDD0E0</string> </value>
</item>
<item>
<key> <string>dialog_background_color</string> </key>
<value> <string>#BDD0E0</string> </value>
</item>
<item>
<key> <string>dialog_border_color</string> </key>
<value> <string>#3D7474</string> </value>
</item>
<item>
<key> <string>document_background_color</string> </key>
<value> <string>#D3E6DE</string> </value>
</item>
<item>
<key> <string>document_border_color</string> </key>
<value> <string>#3D7474</string> </value>
</item>
<item>
<key> <string>font_color</string> </key>
<value> <string>#000000</string> </value>
</item>
<item>
<key> <string>font_family</string> </key>
<value> <string>Arial, Helvetica, sans-serif</string> </value>
</item>
<item>
<key> <string>font_size</string> </key>
<value> <string>12px</string> </value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>group_border_color</string> </key>
<value> <string>#7EC1C1</string> </value>
</item>
<item>
<key> <string>link_color</string> </key>
<value> <string>#002e3f</string> </value>
</item>
<item>
<key> <string>link_hover_color</string> </key>
<value> <string>#3D7474</string> </value>
</item>
<item>
<key> <string>listbox_even_background_color</string> </key>
<value> <string>#DAE6E6</string> </value>
</item>
<item>
<key> <string>listbox_hover_background_color</string> </key>
<value> <string>#BDD0E0</string> </value>
</item>
<item>
<key> <string>listbox_label_background_color</string> </key>
<value> <string>#C1DAD2</string> </value>
</item>
<item>
<key> <string>listbox_odd_background_color</string> </key>
<value> <string>#FFF</string> </value>
</item>
<item>
<key> <string>listbox_stat_background_color</string> </key>
<value> <string>#C1DAD2</string> </value>
</item>
<item>
<key> <string>main_border_color</string> </key>
<value> <string>#97B0C1</string> </value>
</item>
<item>
<key> <string>navigation_bar_background_color</string> </key>
<value> <string>#97B0C1</string> </value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.\n
Vincent Pelletier <vincent@nexedi.com>\n
Christophe Dumez <christophe@nexedi.com>\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
\n
input, textarea, select, button, body, div, span, fieldset {\n
font-family: <dtml-var font_family>;\n
font-size: <dtml-var font_size>;\n
margin: 0;\n
padding: 0;\n
}\n
\n
div.pre div {\n
background: #FFF;\n
}\n
\n
span.pre {\n
font-family: monospace;\n
color: black;\n
white-space: pre-wrap; /* css-3 */\n
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */\n
white-space: -pre-wrap; /* Opera 4-6 */\n
white-space: -o-pre-wrap; /* Opera 7 */\n
word-wrap: break-word; /* Internet Explorer 5.5+ */\n
}\n
\n
button, select, input {\n
vertical-align: middle;\n
}\n
\n
button span {\n
background-color: inherit;\n
color: #000;\n
}\n
\n
img {\n
border: 0;\n
}\n
\n
body, div, span, fieldset {\n
color: <dtml-var font_color>;\n
}\n
\n
div, span, fieldset {\n
background-color: inherit;\n
}\n
\n
body {\n
background-color: <dtml-var background_color>;\n
}\n
\n
#main_form {\n
background-color: inherit;\n
color: inherit;\n
}\n
\n
input#hidden_button {\n
width: 0;\n
height: 0;\n
display: inline;\n
border-width: 0;\n
float: left;\n
}\n
\n
a, a:visited, a:focus {\n
background-color: inherit;\n
color: <dtml-var link_color>;\n
text-decoration: none;\n
}\n
\n
a:hover {\n
background-color: inherit;\n
color: <dtml-var link_hover_color>;\n
text-decoration: underline;\n
}\n
\n
p.clear {\n
height: 0;\n
margin: 0;\n
padding: 0;\n
clear: both;\n
}\n
\n
div.index_html {\n
text-align: center;\n
}\n
\n
div.index_html table {\n
margin: 0 auto;\n
text-align: left;\n
}\n
\n
#main_bar button .description,\n
#context_bar button .description,\n
.content .field .description,\n
.document .actions button.save .description,\n
#context_bar .tool_buttons a .description {\n
display: none;\n
}\n
\n
/* Main bar */\n
\n
#main_bar {\n
color: inherit;\n
background-color: <dtml-var navigation_bar_background_color>;\n
padding-top: 2px;\n
padding-bottom: 2px;\n
vertical-align: middle;\n
}\n
\n
#main_bar .first,\n
#context_bar .first {\n
float: left;\n
vertical-align: middle;\n
}\n
\n
#context_bar #jump,\n
#main_bar .first{\n
margin-left: 10px;\n
}\n
\n
#listbox_title_line select,\n
#context_bar select,\n
#main_bar select {\n
color: <dtml-var alternate_font_color>;\n
}\n
\n
#main_bar .second,\n
#context_bar .second {\n
float: right;\n
vertical-align: middle;\n
}\n
\n
#main_bar button,\n
#context_bar button,\n
.dialog_selector button,\n
.document .actions button.save {\n
border: 0;\n
margin-top: 1px;\n
margin-left: 2px;\n
margin-right: 2px;\n
padding: 0;\n
position: relative;\n
cursor: pointer;\n
background-color: inherit;\n
color: inherit;\n
}\n
\n
#context_bar .tool_buttons {\n
vertical-align: middle;\n
}\n
\n
#context_bar .tool_buttons a {\n
margin-top: 2px;\n
margin-left: 2px;\n
margin-right: 2px;\n
padding: 0;\n
position: relative;\n
}\n
\n
#context_bar .tool_buttons button {\n
float: left;\n
}\n
\n
#main_bar button .image,\n
#context_bar button .image,\n
.dialog_selector button .image,\n
.document .actions button.save .image {\n
display: block;\n
width: 16px;\n
height: 16px;\n
}\n
\n
/* XXX: Bug fix when not logged\n
by <christophe@nexedi.com> */\n
.document .actions {\n
min-height: 2.5em;\n
}\n
\n
.content .field {\n
position: relative;\n
clear: left;\n
font-style: italic;\n
}\n
\n
.content .field .input {\n
font-style: normal;\n
}\n
\n
.content .input .figure {\n
text-align: right;\n
}\n
\n
.group_title {\n
display: none;\n
}\n
\n
div.top_group,\n
fieldset.left,\n
fieldset.center,\n
fieldset.bottom {\n
clear: both;\n
}\n
\n
div.top_group,\n
fieldset.left,\n
fieldset.right,\n
fieldset.center,\n
fieldset.bottom {\n
margin-bottom: 5px;\n
}\n
\n
div.top_group,\n
fieldset.left,\n
fieldset.right,\n
fieldset.center {\n
border-style: solid;\n
border-width: 1px;\n
border-color: <dtml-var group_border_color>;\n
padding-top: 5px;\n
padding-left: 5px;\n
padding-right: 5px;\n
}\n
\n
fieldset.center {\n
padding-bottom: 5px;\n
}\n
\n
fieldset.left {\n
width: 50%;\n
float: left;\n
margin-right: -12px; /* 5px margin *2 + 2px for left & right border width */\n
}\n
\n
fieldset.right {\n
width: 50%;\n
float: left;\n
margin-left: -12px; /* 5px margin *2 + 2px for left & right border width */\n
}\n
\n
div.top_group fieldset.left,\n
div.top_group fieldset.right {\n
border-width: 0;\n
padding: 0;\n
width: 50%;\n
}\n
\n
fieldset.center,\n
fieldset.bottom {\n
clear: both;\n
}\n
\n
fieldset.bottom {\n
border-width: 0;\n
}\n
\n
fieldset.bottom .field label {\n
display: none;\n
}\n
\n
.login fieldset,\n
.dialog_box .left,\n
.dialog_box .right,\n
.dialog_box .center {\n
border-width: 0;\n
}\n
\n
.content .field {\n
padding-bottom: 3px;\n
}\n
\n
.content .field label {\n
width: 30%;\n
}\n
\n
.content .field label,\n
.content .field .input {\n
float: left;\n
}\n
\n
/* Exception case of the previous generic rule\n
The CSS statement below fix bug #517: it doesn\'t make sense to have\n
floating div in bottom field since label are hidden. */\n
fieldset.bottom .field .input {\n
float: inherit;\n
}\n
\n
.content .field .input a {\n
vertical-align: middle;\n
}\n
\n
.content .required label {\n
font-weight: bold;\n
}\n
\n
.content .field .error {\n
background-color: inherit;\n
color: #f00;\n
}\n
\n
.content .error .input {\n
border: 1px solid #F00;\n
}\n
\n
.content .field .invisible label {\n
display: None;\n
}\n
\n
.login .submit {\n
margin-left: 15%;\n
}\n
\n
#jump,\n
#action,\n
#favourites,\n
#modules,\n
#language,\n
#search {\n
float: left;\n
}\n
\n
#favourites button .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/favourite.png\');\n
}\n
\n
#modules button .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/appearance.png\');\n
}\n
\n
#language button .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/language.png\');\n
}\n
\n
#search button .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/info.png\');\n
}\n
\n
#status,\n
#master {\n
padding-left: .5em;\n
padding-right: .5em;\n
}\n
\n
#status {\n
padding-top: .3em;\n
padding-bottom: .4em;\n
}\n
\n
/* Context bar */\n
\n
#context_bar {\n
padding-top: 2px;\n
padding-bottom: 2px;\n
border-bottom-width: 1px;\n
border-bottom-style: solid;\n
border-bottom-color: <dtml-var main_border_color>;\n
background-color: <dtml-var context_bar_background_color>;\n
color: inherit;\n
vertical-align: middle;\n
}\n
\n
#context_bar .tool_buttons a {\n
float: left;\n
margin-left: 2px;\n
margin-right: 2px;\n
}\n
\n
.separator {\n
height: 24px;\n
width: 2px;\n
margin-left: 6px;\n
margin-right: 6px;\n
display: block;\n
float: left;\n
}\n
\n
#main_bar .separator {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/sepafon.png\');\n
}\n
\n
#context_bar .separator {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/sepacla.png\');\n
}\n
\n
#context_bar .tool_buttons a .image,\n
#context_bar .tool_buttons button .image,\n
#context_bar .tool_buttons a img {\n
width: 22px;\n
height: 22px;\n
margin: 0;\n
padding: 0;\n
display: block;\n
}\n
\n
#context_bar #jump button .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/jump.png\');\n
}\n
\n
#context_bar #action button .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/exec16.png\');\n
}\n
\n
#context_bar .tool_buttons .list_mode .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/text_block.png\');\n
}\n
\n
#context_bar .tool_buttons .new .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/filenew.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_first .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/2leftarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_previous .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/1leftarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_next .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/1rightarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_last .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/2rightarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .import_export .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/imp-exp.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_help .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/userhelp.png\');\n
}\n
\n
#context_bar .tool_buttons .find .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/find.png\');\n
}\n
\n
#context_bar .tool_buttons .print .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/print.png\');\n
}\n
\n
#context_bar .tool_buttons .report .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/report.png\');\n
}\n
\n
#context_bar .tool_buttons .cut .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/editcut.png\');\n
}\n
\n
#context_bar .tool_buttons .copy .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/editcopy.png\');\n
}\n
\n
#context_bar .tool_buttons .paste .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/editpaste.png\');\n
}\n
\n
#context_bar .tool_buttons .delete .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/editdelete.png\');\n
}\n
\n
#context_bar .tool_buttons .show_all .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/showall.png\');\n
}\n
\n
#context_bar .tool_buttons .filter .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/filter.png\');\n
}\n
\n
#context_bar .tool_buttons .filter_on .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/filter_on.png\');\n
}\n
\n
#context_bar .tool_buttons .sort .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/sort.png\');\n
}\n
\n
#context_bar .tool_buttons .configure .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/configure.png\');\n
}\n
\n
#context_bar .tool_buttons .activity_pending .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/activity_busy.png\');\n
}\n
\n
#context_bar .tool_buttons .inspect_object .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/inspect.png\');\n
}\n
\n
/* Status */\n
\n
#breadcrumb {\n
float: left;\n
/* font-size: 90%; */\n
margin-bottom: 5px;\n
}\n
\n
#breadcrumb a {\n
color: <dtml-var link_color>;\n
}\n
\n
#logged_in_as {\n
float: right;\n
}\n
\n
#logged_in_as .logged_txt{\n
color: <dtml-var link_color>;\n
/* font-size: 90%; */\n
}\n
\n
#transition_message {\n
margin-left: 1em;\n
color: #f00;\n
background-color: inherit;\n
font-weight: bold;\n
}\n
\n
/* Content */\n
\n
.dialog_box {\n
color: inherit;\n
background-color: <dtml-var dialog_background_color>;\n
border-width: 1px;\n
border-style: solid;\n
border-color: <dtml-var dialog_border_color>;\n
padding: .5em;\n
margin-bottom: 1em;\n
}\n
\n
.list_dialog {\n
margin-bottom: .5em;\n
}\n
\n
.dialog_selector button .description {\n
display: none;\n
}\n
\n
.dialog_selector button .image {\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/exec16.png\');\n
}\n
\n
.document .actions {\n
position: relative;\n
float: left;\n
width: 100%;\n
margin: 0;\n
padding: 0;\n
border-bottom-width: 1px;\n
border-bottom-style: solid;\n
border-bottom-color: <dtml-var document_border_color>;\n
color: <dtml-var link_color>;\n
}\n
\n
.document .actions button.save {\n
float: right;\n
}\n
\n
.document .actions button.save span.image {\n
width: 34px;\n
height: 34px;\n
background-image: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/save2.png\');\n
}\n
\n
.document .actions ul {\n
float: left;\n
list-style: none;\n
padding: 0;\n
margin: 0;\n
position: absolute;\n
bottom: -1px;\n
}\n
\n
.document .actions li {\n
float: left;\n
color: inherit;\n
background: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/tab_left.png\') top left no-repeat;\n
margin: 0;\n
padding: 0 0 0 10px;\n
}\n
\n
.document .actions li a {\n
display: block;\n
padding: 5px 15px 4px 5px;\n
color: inherit;\n
background-color: inherit;\n
background: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/tab_right.png\') top right no-repeat;\n
/* font-size: 90%; */\n
}\n
\n
.document .actions li.selected a {\n
font-weight: bold;\n
padding-bottom: 5px;\n
}\n
\n
.document .actions li a:hover {\n
text-decoration: none;\n
}\n
\n
.document .content {\n
clear: both;\n
border-width: 1px;\n
border-style: solid;\n
border-color: <dtml-var document_border_color>;\n
border-top: 0 none;\n
color: inherit;\n
background-color: <dtml-var document_background_color>;\n
padding: 5px;\n
}\n
\n
/* LISTBOX */\n
/* FIXME:\n
- listbox uses lots of IDs, but there can be more than one listbox in a page !\n
- hardcoded images in html which are inly used for rendering style\n
*/\n
.ListSummary {\n
background: url(\'<dtml-var expr="portal_url.absolute_url_path()">/images/tab_left.png\') top left no-repeat;\n
color: #000;\n
background-color: <dtml-var document_background_color>;\n
padding-left: 10px;\n
}\n
\n
.ListSummary #listbox_title,\n
.ListSummary #listbox_record_number,\n
.ListSummary #listbox_item_number {\n
/* font-size: 90%; */\n
}\n
\n
.ListSummary table {\n
width: 100%;\n
border-color: <dtml-var document_border_color>;\n
border-style: solid;\n
border-top-width: 1px;\n
border-right-width: 1px;\n
border-bottom-width: 0;\n
border-left-width: 0;\n
padding-right: 5px;\n
padding-bottom: 2px;\n
}\n
\n
.ListSummary img {\n
display: none;\n
}\n
\n
.ListSummary #listbox_next_page,\n
.ListSummary #listbox_previous_page {\n
display: block;\n
font-size: 0;\n
width: 22px;\n
height: 22px;\n
}\n
\n
.ListContent {\n
color: #000;\n
background-color: <dtml-var document_background_color>;\n
padding-left: 1px;\n
}\n
\n
.ListContent table {\n
width: 100%;\n
border-collapse: collapse;\n
border-color: <dtml-var document_border_color>;\n
border-style: solid;\n
border-width: 1px;\n
}\n
\n
.ListContent #listbox_label_line {\n
color: <dtml-var font_color>;\n
background-color: <dtml-var listbox_label_background_color>;\n
/* font-size: 90%; */\n
}\n
\n
.ListContent #listbox_stat_line {\n
border-top-width: 1px;\n
border-top-style: solid;\n
border-color: <dtml-var document_border_color>;\n
color: inherit;\n
background-color: <dtml-var listbox_stat_background_color>;\n
}\n
\n
.ListContent tr.DataA {\n
color: inherit;\n
background-color: <dtml-var listbox_odd_background_color>;\n
}\n
\n
.ListContent tr.DataB {\n
color: inherit;\n
background-color: <dtml-var listbox_even_background_color>;\n
}\n
\n
.ListSummary #listbox_title_line #listbox_title,\n
.ListSummary #listbox_title_line #listbox_item_number,\n
.ListSummary #listbox_title_line #listbox_record_number {\n
vertical-align: middle;\n
}\n
\n
.ListContent tr.DataA:hover,\n
.ListContent tr.DataB:hover {\n
color: inherit;\n
background-color: <dtml-var listbox_hover_background_color>;\n
}\n
\n
.ListContent td {\n
border-color: <dtml-var document_border_color>;\n
border-style: solid;\n
border-top-width: 0;\n
border-bottom-width: 0;\n
border-left-width: 1px;\n
border-right-width: 1px;\n
}\n
\n
/* Background colors for span and div to display non editable fields */\n
\n
div.page,\n
span.page {\n
background-color: white;\n
border-color: black;\n
border-width: 1px;\n
padding: 1em;\n
}\n
\n
div.page div {\n
color: black;\n
}\n
\n
/* Css style used to display python code block in web pages */\n
.python_code{\n
background-color:#F3F5F7;\n
border:1pt solid #AEBDCC;\n
color:black;\n
margin:0.5em 0;\n
padding:0;\n
font-family:sans-serif,Arial,Helvetica;\n
font-size:11px;\n
font-weight:normal;\n
line-height:16px;\n
font-family:courier,monospace;\n
white-space:-moz-pre-wrap;\n
font-size:11px;\n
font-weight:normal;\n
line-height:16px;\n
text-align:left;\n
}\n
\n
blockquote {\n
background: #f9f9f9;\n
border-left: 10px solid #ccc;\n
margin: 1.5em 10px;\n
padding: 0.5em 10px;\n
quotes: "\\201C""\\201D""\\2018""\\2019";\n
}
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>tooltip_background_color</string> </key>
<value> <string>#FFD</string> </value>
</item>
<item>
<key> <string>tooltip_border_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>tooltip_color</string> </key>
<value> <string>#000</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>erp5.css</string> </value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>main_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>context_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>navigation_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_family</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_size</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_hover_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>button_description_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_label_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_odd_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_even_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_hover_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_stat_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>alternate_font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>group_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>alternate_font_color</string> </key>
<value> <string>#596dab</string> </value>
</item>
<item>
<key> <string>background_color</string> </key>
<value> <string>#DAE6F6</string> </value>
</item>
<item>
<key> <string>button_description_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>context_bar_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>dialog_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>dialog_border_color</string> </key>
<value> <string>#3D5474</string> </value>
</item>
<item>
<key> <string>document_background_color</string> </key>
<value> <string>#E3EAFA</string> </value>
</item>
<item>
<key> <string>document_border_color</string> </key>
<value> <string>#3D6474</string> </value>
</item>
<item>
<key> <string>font_color</string> </key>
<value> <string>#001730</string> </value>
</item>
<item>
<key> <string>font_family</string> </key>
<value> <string>Arial, Helvetica, sans-serif</string> </value>
</item>
<item>
<key> <string>font_size</string> </key>
<value> <string>12px</string> </value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>group_border_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>link_color</string> </key>
<value> <string>#002e3f</string> </value>
</item>
<item>
<key> <string>link_hover_color</string> </key>
<value> <string>#3D6474</string> </value>
</item>
<item>
<key> <string>listbox_even_background_color</string> </key>
<value> <string>#DAE6F6</string> </value>
</item>
<item>
<key> <string>listbox_hover_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>listbox_label_background_color</string> </key>
<value> <string>#C1DAEB</string> </value>
</item>
<item>
<key> <string>listbox_odd_background_color</string> </key>
<value> <string>#FFF</string> </value>
</item>
<item>
<key> <string>listbox_stat_background_color</string> </key>
<value> <string>#C1DAEB</string> </value>
</item>
<item>
<key> <string>main_border_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>navigation_bar_background_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.\n
Vincent Pelletier <vincent@nexedi.com>\n
Christophe Dumez <christophe@nexedi.com>\n
Kazuhiko <kazuhiko@nexedi.com>\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
\n
input, textarea, select, button, body, div, span, fieldset {\n
font-family: <dtml-var font_family>;\n
font-size: <dtml-var font_size>;\n
margin: 0;\n
padding: 0;\n
}\n
\n
div.input > select, div.input > input, div.listbox select {\n
max-width:320px;\n
}\n
\n
div.page > div.input {\n
width:100%;\n
}\n
option {\n
white-space: pre;\n
}\n
\n
div.pre div {\n
background: #FFF;\n
}\n
\n
span.pre_wrap {\n
white-space: pre-wrap;\n
}\n
div.pre, span.pre {\n
font-family: monospace;\n
color: black;\n
white-space: pre-wrap;\n
word-wrap: break-word; /* Internet Explorer 5.5+ */\n
}\n
\n
button, select, input {\n
vertical-align: middle;\n
}\n
\n
button span {\n
background-color: transparent;\n
color: #000;\n
}\n
\n
button.sort_button {\n
background-color: inherit;\n
color: inherit;\n
border-width: 0;\n
cursor: pointer;\n
}\n
\n
button.sort_button span {\n
color: inherit;\n
text-decoration: underline;\n
}\n
\n
img {\n
border: 0;\n
}\n
\n
body, div, span, fieldset {\n
color: <dtml-var font_color>;\n
}\n
\n
div, span, fieldset {\n
background-color: inherit;\n
}\n
\n
body {\n
background-color: <dtml-var background_color>;\n
}\n
\n
#main_form, /* BBB */\n
.main_form {\n
color: inherit;\n
}\n
\n
input#hidden_button, /* BBB */\n
input.hidden_button {\n
width: 0;\n
height: 0;\n
display: inline;\n
border-width: 0;\n
float: left;\n
}\n
\n
.hidden { \n
display: none;\n
}\n
\n
\n
textarea[readonly] {\n
background-color: inherit;\n
border: inherit;\n
}\n
\n
a, a:visited, a:focus {\n
background-color: inherit;\n
color: <dtml-var link_color>;\n
text-decoration: none;\n
}\n
\n
.relationfieldlink {\n
text-decoration: underline;\n
}\n
\n
a:hover {\n
background-color: inherit;\n
color: <dtml-var link_hover_color>;\n
text-decoration: underline;\n
}\n
\n
p.clear,\n
div.clear {\n
height: 0;\n
margin: 0;\n
padding: 0;\n
clear: both;\n
}\n
\n
div.index_html {\n
text-align: center;\n
}\n
\n
div.index_html table {\n
margin: 0 auto;\n
text-align: left;\n
}\n
\n
.ModuleShortcut div {\n
margin-left: 0.5em;\n
text-indent: -0.5em;\n
line-height: 1.1em;\n
margin-bottom: 0.5em;\n
}\n
\n
#main_bar button .description, /* BBB */\n
.main_bar button .description,\n
#context_bar button .description, /* BBB */\n
.context_bar button .description,\n
.content .field .description,\n
.document .actions button.save .description,\n
#context_bar .tool_buttons a .description, /* BBB */\n
.context_bar .tool_buttons a .description {\n
display: none;\n
}\n
\n
/* The fields set for generated hidden fields */\n
#hidden_fieldset, /* BBB */\n
.hidden_fieldset {\n
visibility: hidden;\n
border: 0;\n
}\n
\n
/* Main bar */\n
\n
#main_bar, /* BBB */\n
.main_bar {\n
color: inherit;\n
background-color: <dtml-var navigation_bar_background_color>;\n
padding-top: 2px;\n
padding-bottom: 2px;\n
vertical-align: middle;\n
}\n
\n
#main_bar .first, /* BBB */\n
.main_bar .first,\n
#context_bar .first, /* BBB */\n
.context_bar .first {\n
float: left;\n
vertical-align: middle;\n
}\n
\n
#context_bar #jump, /* BBB */\n
.context_bar .jump,\n
#main_bar .jump, /* BBB */\n
.main_bar .jump {\n
margin-left: 10px;\n
}\n
\n
.listbox_title_line select,\n
#context_bar select, /* BBB */\n
.context_bar select,\n
#main_bar select, /* BBB */\n
.main_bar select {\n
color: <dtml-var alternate_font_color>;\n
}\n
\n
#main_bar .second, /* BBB */\n
.main_bar .second,\n
#context_bar .second, /* BBB */\n
.context_bar .second {\n
float: right;\n
vertical-align: middle;\n
}\n
\n
#main_bar button, /* BBB */\n
.main_bar button,\n
#context_bar button, /* BBB */\n
.context_bar button,\n
.dialog_selector button,\n
.document .actions button.save {\n
border: 0;\n
margin-top: 1px;\n
margin-left: 0;\n
margin-right: 2px;\n
padding: 0;\n
position: relative;\n
cursor: pointer;\n
background-color: inherit;\n
color: inherit;\n
}\n
\n
#context_bar .tool_buttons, /* BBB */\n
.context_bar .tool_buttons {\n
vertical-align: middle;\n
}\n
\n
#context_bar .tool_buttons a, /* BBB */\n
.context_bar .tool_buttons a {\n
margin-top: 2px;\n
margin-left: 2px;\n
margin-right: 2px;\n
padding: 0;\n
position: relative;\n
}\n
\n
#context_bar .tool_buttons button, /* BBB */\n
.context_bar .tool_buttons button {\n
float: left;\n
}\n
\n
#main_bar button .image, /* BBB */\n
.main_bar button .image,\n
#context_bar button .image, /* BBB */\n
.context_bar button .image,\n
.dialog_selector button .image,\n
.document .actions button.save .image {\n
display: block;\n
width: 22px;\n
height: 22px;\n
background-repeat: no-repeat;\n
}\n
\n
/* XXX: Bug fix when not logged */\n
.document .actions {\n
min-height: 2.5em;\n
}\n
\n
.pageNavigation button {\n
display: inline;\n
border: 0 none;\n
background-color: inherit;\n
vertical-align: middle;\n
}\n
\n
table.fake {\n
width: 100%;\n
}\n
\n
table.fake tr td {\n
vertical-align: top;\n
width: 50%;\n
}\n
\n
.content .field {\n
position: relative;\n
clear: left;\n
font-style: italic;\n
width: 100%;\n
}\n
\n
.content .field .input {\n
font-style: normal;\n
}\n
\n
.content .input .figure {\n
text-align: right;\n
}\n
\n
.group_title {\n
display: none;\n
}\n
\n
table.fake,\n
fieldset.left,\n
fieldset.center,\n
fieldset.bottom {\n
clear: both;\n
}\n
\n
table.fake,\n
fieldset.left,\n
fieldset.right,\n
fieldset.center,\n
fieldset.bottom {\n
margin-bottom: 5px;\n
}\n
\n
table.fake,\n
fieldset.left,\n
fieldset.right,\n
fieldset.center {\n
border-style: solid;\n
border-width: 1px;\n
border-color: <dtml-var group_border_color>;\n
padding-top: 5px;\n
padding-left: 5px;\n
padding-right: 5px;\n
}\n
\n
fieldset.center {\n
padding-bottom: 5px;\n
}\n
\n
.login fieldset {\n
width: 50%;\n
float: left;\n
}\n
\n
fieldset.left {\n
width: 50%;\n
float: left;\n
margin-right: -12px; /* 5px margin *2 + 2px for left & right border width */\n
}\n
\n
fieldset.right {\n
width: 50%;\n
float: left;\n
margin-left: -12px; /* 5px margin *2 + 2px for left & right border width */\n
}\n
\n
/* BBB: don\'t display borders on left-group fieldsets in a formbox in any\n
* bordered fieldset (ie left, right or center). */\n
fieldset.left fieldset.left,\n
fieldset.right fieldset.left,\n
fieldset.center fieldset.left,\n
table.fake > tbody > tr > td > fieldset {\n
border-width: 0;\n
padding: 0;\n
margin: 0;\n
width: 100%;\n
float: none;\n
}\n
\n
fieldset.center,\n
fieldset.bottom {\n
clear: both;\n
}\n
\n
fieldset.bottom {\n
border-width: 0;\n
}\n
\n
fieldset.bottom > .field > label {\n
display: none;\n
}\n
\n
.login fieldset,\n
.dialog_box table.fake,\n
.dialog_box .left,\n
.dialog_box .right,\n
.dialog_box .center {\n
border-width: 0;\n
}\n
\n
.content .field {\n
padding-bottom: 3px;\n
}\n
\n
.content .field label {\n
width: 30%;\n
}\n
\n
.content .field label,\n
.content .field .input {\n
float: left;\n
}\n
\n
/* Exception case of the previous generic rule\n
The CSS statement below fix bug #517: it doesn\'t make sense to have\n
floating div in bottom field since label are hidden. */\n
fieldset.bottom .field .input {\n
float: inherit;\n
}\n
\n
.content .field .input a img {\n
vertical-align: middle;\n
}\n
\n
.content .required label {\n
font-weight: bold;\n
}\n
\n
.content .field .error {\n
background-color: inherit;\n
color: #f40;\n
}\n
\n
.content .error .input {\n
border: 1px solid #f40;\n
}\n
\n
.listbox-body .error {\n
background-color: inherit;\n
color: #f40;\n
}\n
\n
.content .invisible > label {\n
display: None;\n
}\n
\n
.content .invisible > .input {\n
float: None;\n
}\n
\n
a.tree_open {\n
background: url(\'images/tree_open.png\') left no-repeat;\n
padding-left:15px;\n
}\n
\n
a.tree_closed {\n
background: url(\'images/tree_closed.png\') left no-repeat;\n
padding-left:15px;\n
}\n
\n
.login .submit {\n
margin-left: 15%;\n
}\n
\n
#jump, /* BBB */\n
span.jump,\n
#action, /* BBB */\n
span.action,\n
#favourites, /* BBB */\n
span.favourites,\n
#modules, /* BBB */\n
span.modules,\n
#language, /* BBB */\n
span.language,\n
#search, /* BBB */\n
span.search {\n
float: left;\n
}\n
\n
#favourites button .image, /* BBB */\n
span.favourites button .image {\n
background-image: url(\'images/favourite.png\');\n
}\n
\n
#modules button .image, /* BBB */\n
span.modules button .image {\n
background-image: url(\'images/appearance.png\');\n
}\n
\n
#language button .image, /* BBB */\n
span.language button .image {\n
background-image: url(\'images/language.png\');\n
}\n
\n
.quick_search_field { color: #777777; }\n
.quick_search_field:focus { color: #000000; }\n
\n
#search button .image, /* BBB */\n
span.search button .image {\n
background-image: url(\'images/search.png\');\n
}\n
\n
#status, /* BBB */\n
.status,\n
#master, /* BBB */\n
.master {\n
padding-left: .5em;\n
padding-right: .5em;\n
}\n
\n
#status, /* BBB */\n
.status {\n
padding-top: .3em;\n
padding-bottom: .4em;\n
}\n
\n
/* Context bar */\n
\n
#context_bar, /* BBB */\n
.context_bar {\n
padding-top: 2px;\n
padding-bottom: 2px;\n
border-bottom-width: 1px;\n
border-bottom-style: solid;\n
border-bottom-color: <dtml-var main_border_color>;\n
background-color: <dtml-var context_bar_background_color>;\n
color: inherit;\n
vertical-align: middle;\n
}\n
\n
#context_bar .tool_buttons a, /* BBB */\n
.context_bar .tool_buttons a {\n
float: left;\n
margin-left: 2px;\n
margin-right: 2px;\n
}\n
\n
.separator {\n
height: 24px;\n
width: 2px;\n
margin-left: 6px;\n
margin-right: 6px;\n
display: block;\n
float: left;\n
}\n
\n
#main_bar .separator, /* BBB */\n
.main_bar .separator {\n
background-image: url(\'images/sepafon.png\');\n
}\n
\n
#context_bar .separator, /* BBB */\n
.context_bar .separator {\n
background-image: url(\'images/sepacla.png\');\n
}\n
\n
#context_bar .tool_buttons a .image, /* BBB */\n
.context_bar .tool_buttons a .image,\n
#context_bar .tool_buttons button .image, /* BBB */\n
.context_bar .tool_buttons button .image,\n
#context_bar .tool_buttons a img, /* BBB */\n
.context_bar .tool_buttons a img {\n
width: 22px;\n
height: 22px;\n
margin: 0;\n
padding: 0;\n
display: block;\n
background-repeat: no-repeat;\n
}\n
\n
#context_bar #jump button .image, /* BBB */\n
.context_bar .jump button .image {\n
background-image: url(\'images/jump22.png\');\n
}\n
\n
#context_bar #action button .image, /* BBB */\n
.context_bar .action button .image {\n
background-image: url(\'images/exec.png\');\n
}\n
\n
#context_bar .tool_buttons .list_mode .image, /* BBB */\n
.context_bar .tool_buttons .list_mode .image {\n
background-image: url(\'images/text_block.png\');\n
}\n
\n
#context_bar .tool_buttons .new .image, /* BBB */\n
.context_bar .tool_buttons .new .image {\n
background-image: url(\'images/filenew.png\');\n
}\n
\n
#context_bar .tool_buttons .clone .image, /* BBB */\n
.context_bar .tool_buttons .clone .image {\n
background-image: url(\'images/fileclone.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_first .image, /* BBB */\n
.context_bar .tool_buttons .jump_first .image {\n
background-image: url(\'images/2leftarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_previous .image, /* BBB */\n
.context_bar .tool_buttons .jump_previous .image {\n
background-image: url(\'images/1leftarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_next .image, /* BBB */\n
.context_bar .tool_buttons .jump_next .image {\n
background-image: url(\'images/1rightarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_last .image, /* BBB */\n
.context_bar .tool_buttons .jump_last .image {\n
background-image: url(\'images/2rightarrowb.png\');\n
}\n
\n
#context_bar .tool_buttons .import_export .image, /* BBB */\n
.context_bar .tool_buttons .import_export .image {\n
background-image: url(\'images/imp-exp.png\');\n
}\n
\n
#context_bar .tool_buttons .jump_help .image, /* BBB */\n
.context_bar .tool_buttons .jump_help .image {\n
background-image: url(\'images/userhelp.png\');\n
}\n
\n
#context_bar .tool_buttons .find .image, /* BBB */\n
.context_bar .tool_buttons .find .image {\n
background-image: url(\'images/find.png\');\n
}\n
\n
#context_bar .tool_buttons .print .image, /* BBB */\n
.context_bar .tool_buttons .print .image {\n
background-image: url(\'images/print.png\');\n
}\n
\n
#context_bar .tool_buttons .report .image, /* BBB */\n
.context_bar .tool_buttons .report .image {\n
background-image: url(\'images/report.png\');\n
}\n
\n
#context_bar .tool_buttons .fast_input .image, /* BBB */\n
.context_bar .tool_buttons .fast_input .image {\n
background-image: url(\'images/fast_input.png\');\n
}\n
\n
#context_bar .tool_buttons .cut .image, /* BBB */\n
.context_bar .tool_buttons .cut .image {\n
background-image: url(\'images/editcut.png\');\n
}\n
\n
#context_bar .tool_buttons .copy .image, /* BBB */\n
.context_bar .tool_buttons .copy .image {\n
background-image: url(\'images/editcopy.png\');\n
}\n
\n
#context_bar .tool_buttons .paste .image, /* BBB */\n
.context_bar .tool_buttons .paste .image {\n
background-image: url(\'images/editpaste.png\');\n
}\n
\n
#context_bar .tool_buttons .delete .image, /* BBB */\n
.context_bar .tool_buttons .delete .image {\n
background-image: url(\'images/editdelete.png\');\n
}\n
\n
#context_bar .tool_buttons .show_all .image, /* BBB */\n
.context_bar .tool_buttons .show_all .image {\n
background-image: url(\'images/showall.png\');\n
}\n
\n
#context_bar .tool_buttons .filter .image, /* BBB */\n
.context_bar .tool_buttons .filter .image {\n
background-image: url(\'images/filter.png\');\n
}\n
\n
#context_bar .tool_buttons .filter_on .image, /* BBB */\n
.context_bar .tool_buttons .filter_on .image {\n
background-image: url(\'images/filter_on.png\');\n
}\n
\n
#context_bar .tool_buttons .sort .image, /* BBB */\n
.context_bar .tool_buttons .sort .image {\n
background-image: url(\'images/sort.png\');\n
}\n
\n
#context_bar .tool_buttons .configure .image, /* BBB */\n
.context_bar .tool_buttons .configure .image {\n
background-image: url(\'images/configure.png\');\n
}\n
\n
#context_bar .tool_buttons .activity_pending .image, /* BBB */\n
.context_bar .tool_buttons .activity_pending .image {\n
width: 26px;\n
background-image: url(\'images/activity_busy.png\');\n
}\n
\n
#context_bar .tool_buttons .inspect_object .image, /* BBB */\n
.context_bar .tool_buttons .inspect_object .image {\n
background-image: url(\'images/inspect.png\');\n
}\n
\n
/* Status */\n
\n
#breadcrumb, /* BBB */\n
.breadcrumb {\n
float: left;\n
/* font-size: 90%; */\n
margin-bottom: 5px;\n
}\n
\n
#breadcrumb a, /* BBB */\n
.breadcrumb a {\n
color: <dtml-var link_color>;\n
}\n
\n
#logged_in_as, /* BBB */\n
.logged_in_as {\n
float: right;\n
}\n
\n
#logged_in_as .logged_txt, /* BBB */\n
.logged_in_as .logged_txt{\n
color: <dtml-var link_color>;\n
/* font-size: 90%; */\n
}\n
\n
#transition_message, /* BBB */\n
.transition_message {\n
margin-left: 1em;\n
color: #f40;\n
background-color: inherit;\n
font-weight: bold;\n
}\n
\n
#information_area, /* BBB */\n
.information_area {\n
margin-top: 1em;\n
padding:0.5em 1em 0.5em 1em;\n
border-width: 1px;\n
border-style: solid;\n
border-color: <dtml-var dialog_border_color>;\n
color: orange;\n
background-color: <dtml-var document_background_color>;\n
font-weight: bold;\n
}\n
\n
/* Content */\n
\n
.dialog_box {\n
color: inherit;\n
background-color: <dtml-var dialog_background_color>;\n
border-width: 1px;\n
border-style: solid;\n
border-color: <dtml-var dialog_border_color>;\n
padding: .5em;\n
margin-bottom: 1em;\n
}\n
\n
.list_dialog {\n
margin-bottom: .5em;\n
}\n
\n
.dialog_selector button .description {\n
display: none;\n
}\n
\n
.dialog_selector button .image {\n
background-image: url(\'images/exec16.png\');\n
}\n
\n
.document .actions {\n
position: relative;\n
float: left;\n
width: 100%;\n
margin: 0;\n
padding: 0;\n
border-bottom-width: 1px;\n
border-bottom-style: solid;\n
border-bottom-color: <dtml-var document_border_color>;\n
color: <dtml-var link_color>;\n
}\n
\n
.document .actions button.save {\n
float: right;\n
}\n
\n
.document .actions button.save span.image {\n
width: 48px;\n
height: 50px;\n
background-image: url(\'images/save2.png\');\n
}\n
\n
.document .actions ul {\n
float: left;\n
list-style: none;\n
padding: 0;\n
margin: 0;\n
position: absolute;\n
bottom: -1px;\n
}\n
\n
.document .actions li {\n
float: left;\n
border: 1px solid <dtml-var document_border_color>;\n
border-bottom-color: transparent;\n
border-radius: 10px 10px 0 0;\n
-moz-border-radius: 10px 10px 0 0;\n
-webkit-border-top-left-radius: 10px;\n
-webkit-border-top-right-radius: 10px;\n
}\n
\n
.document .actions li.selected {\n
border-bottom-color: <dtml-var background_color>;\n
}\n
\n
.document .actions li a {\n
display: block;\n
color: inherit;\n
margin: 0;\n
padding: 0 0 0 9px;\n
line-height: 1.2em;\n
}\n
\n
.document .actions li a span {\n
display: block;\n
padding: 4px 9px 4px 0;\n
color: inherit;\n
background-color: inherit;\n
/* font-size: 90%; */\n
}\n
\n
.document .actions li.selected a span {\n
font-weight: bold;\n
padding-bottom: 4px;\n
}\n
\n
.document .actions li a:hover {\n
text-decoration: none;\n
}\n
\n
.document .content {\n
clear: both;\n
border-width: 1px;\n
border-style: solid;\n
border-color: <dtml-var document_border_color>;\n
border-top: 0 none;\n
color: inherit;\n
background-color: <dtml-var document_background_color>;\n
padding: 5px;\n
}\n
\n
/* Search results list\n
------------------------------------------------*/\n
\n
div#main_content.list_mode, /* BBB */\n
div.main_content.list_mode {\n
font-size:0.7em;\n
line-height:1.5em;\n
}\n
\n
div.search.result .resultList .listbox tr.DataA,\n
div.search.result .resultList .listbox tr.DataB {\n
background-color: white;\n
}\n
\n
div.search.result .resultList .listbox td {\n
padding: 0.5em 0;\n
}\n
\n
div.search.result .resultList p {margin-bottom: 0}\n
\n
div.search.result .resultList h3 {\n
font-size: 120%;\n
font-weight: normal;\n
margin-bottom: 1em;\n
}\n
\n
div.search.result .resultList ul.pages li a {\n
padding: .1em .3em;\n
border: 1px solid transparent;\n
}\n
\n
div.search.result .resultList ul.pages li a:hover {\n
border: 1px solid #dedade;\n
background: #eee;\n
}\n
\n
div.search.result .resultList a .search_result_title {\n
font-weight: bold;\n
font-size: 120%;\n
}\n
\n
div.search.result .resultList .search_result_portal_type:before {\n
content: "[";\n
}\n
div.search.result .resultList .search_result_portal_type:after {\n
content: "]";\n
}\n
\n
div.search.result .resultList table.listbox caption {\n
font-weight: bold;\n
text-align: left;\n
}\n
\n
div.search.result .resultList table.listbox td {\n
vertical-align: middle;\n
border: transparent;\n
margin:0;\n
}\n
\n
div.search.result .resultList table.listbox td ul {list-style: none}\n
div.search.result .resultList table.listbox td ul li {margin: 0}\n
\n
div.search.result .resultList table.listbox td blockquote {\n
border: 1px solid #e6e2e6;\n
border-top-color: #000;\n
margin: .5em 0 2em;\n
padding: 1em;\n
background: #eee;\n
}\n
\n
div.search.result .resultList {\n
padding: 1em;\n
padding-top: 0em;\n
padding-bottom: 1em;\n
padding-left: 0em;\n
padding-right: 0em;\n
}\n
\n
div.search.result div.searchBar {\n
margin-bottom: 2em;\n
}\n
\n
div.searchResultHeader #style_toggle_icon,\n
table.listbox.table #style_toggle_icon {\n
padding:0;\n
border: 0px;\n
border-color:red;\n
margin:0;\n
vertical-align:bottom;\n
}\n
\n
div.search .centeredInner {\n
text-align: center;\n
}\n
\n
.searchDetails em {\n
font-style:normal;\n
font-weight:bold;\n
}\n
\n
div.search .searchPages a{\n
text-decoration: underline;\n
}\n
\n
div.search .searchPages .selected{\n
color: #CB0D00;\n
font-weight:bold;\n
text-decoration: none;\n
}\n
\n
/* MatrixBox */\n
.MatrixContent {\n
color: #000;\n
background-color: <dtml-var document_background_color>;\n
padding-left: 1px;\n
}\n
\n
.MatrixContent table {\n
width: 100%;\n
border-collapse: collapse;\n
border-color: <dtml-var document_border_color>;\n
border-style: solid;\n
border-top-width: 1px;\n
border-bottom-width: 1px;\n
border-left-width: 1px;\n
border-right-width: 1px;\n
}\n
\n
.MatrixContent tr.matrixbox_label_line {\n
vertical-align: middle;\n
border-color: <dtml-var document_border_color>;\n
border-style: solid;\n
border-bottom-width: 1px;\n
border-top-width: 0;\n
border-left-width: 0;\n
border-right-width: 0;\n
}\n
\n
.MatrixContent td.matrixbox_label_column {\n
white-space: nowrap;\n
}\n
\n
.MatrixContent tr.DataA {\n
color: inherit;\n
background-color: <dtml-var listbox_odd_background_color>;\n
}\n
\n
.MatrixContent tr.DataB {\n
color: inherit;\n
background-color: <dtml-var listbox_even_background_color>;\n
}\n
\n
.MatrixContent tr.DataA:hover,\n
.MatrixContent tr.DataB:hover {\n
color: inherit;\n
background-color: <dtml-var listbox_hover_background_color>;\n
}\n
\n
.MatrixContent td {\n
border-color: <dtml-var document_border_color>;\n
border-style: solid;\n
border-top-width: 0;\n
border-bottom-width: 0;\n
border-left-width: 1px;\n
border-right-width: 1px;\n
padding-left: 1px;\n
padding-right: 1px;\n
}\n
\n
.MatrixContent .error {\n
color: #F00;\n
}\n
\n
.MatrixContent td.footer {\n
width: 100pt;\n
}\n
\n
\n
/* Web Page White Background */\n
\n
.document div.page {\n
background-color: white;\n
}\n
\n
.document div.page div {\n
color: black;\n
}\n
\n
/* Listbox missing search criterion table row*/\n
.listbox_missing_search_criterion {\n
background-color: white;\n
}\n
.listbox_missing_search_criterion td{\n
text-align: center!important;\n
}\n
\n
.hidden_label > label {\n
display:none;\n
}\n
\n
/* DMS PDF navigation \n
XXX: probably part of erp5_dms.bt5 */\n
div.pdf-preview-navigation img{\n
width: 22px;\n
height: 22px;\n
margin-right: 1px;\n
background-repeat: no-repeat;\n
vertical-align: middle;\n
}\n
\n
div.pdf-preview-navigation img.shaded{\n
opacity: 0.2;\n
}\n
\n
div.pdf-preview-navigation img.first{\n
background-image:url("images/2leftarrowb.png");\n
}\n
\n
div.pdf-preview-navigation img.previous{\n
background-image:url("images/1leftarrowb.png");\n
}\n
\n
div.pdf-preview-navigation img.next{\n
background-image:url("images/1rightarrowb.png");\n
}\n
\n
div.pdf-preview-navigation img.last{\n
background-image:url("images/2rightarrowb.png");\n
}\n
\n
.horizontal_align_form_box > div.input {\n
float: right;\n
width: 70%; /* because label width is 30%*/\n
}\n
\n
.horizontal_align_form_box > div.input > fieldset > div.field {\n
clear: none;\n
float: left;\n
width: auto;\n
}\n
\n
.horizontal_align_form_box > div.input > fieldset > div.field > label {\n
width: auto;\n
padding-top: 2px;\n
}\n
\n
.captchas_dot_net {\n
border: none; \n
vertical-align: bottom\n
}\n
\n
@media print {\n
\n
.bars {\n
display: none;\n
}\n
\n
.status {\n
display: none;\n
}\n
\n
.actions {\n
display: none;\n
}\n
\n
}\n
\n
fieldset > div.large-gadget {\n
height: 85vh;\n
}\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>tooltip_background_color</string> </key>
<value> <string>#FFD</string> </value>
</item>
<item>
<key> <string>tooltip_border_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>tooltip_color</string> </key>
<value> <string>#000</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="DTMLDocument" module="OFS.DTMLDocument"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>erp5_listbox.css</string> </value>
</item>
<item>
<key> <string>_local_properties</string> </key>
<value>
<tuple>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>main_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>context_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>navigation_bar_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_family</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_size</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>dialog_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>link_hover_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>button_description_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>document_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_label_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_odd_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_even_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>tooltip_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_hover_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>listbox_stat_background_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>alternate_font_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
<dictionary>
<item>
<key> <string>id</string> </key>
<value> <string>group_border_color</string> </value>
</item>
<item>
<key> <string>type</string> </key>
<value> <string>string</string> </value>
</item>
</dictionary>
</tuple>
</value>
</item>
<item>
<key> <string>_vars</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>alternate_font_color</string> </key>
<value> <string>#596dab</string> </value>
</item>
<item>
<key> <string>background_color</string> </key>
<value> <string>#DAE6F6</string> </value>
</item>
<item>
<key> <string>button_description_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>context_bar_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>dialog_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>dialog_border_color</string> </key>
<value> <string>#3D5474</string> </value>
</item>
<item>
<key> <string>document_background_color</string> </key>
<value> <string>#E3EAFA</string> </value>
</item>
<item>
<key> <string>document_border_color</string> </key>
<value> <string>#3D6474</string> </value>
</item>
<item>
<key> <string>font_color</string> </key>
<value> <string>#001730</string> </value>
</item>
<item>
<key> <string>font_family</string> </key>
<value> <string>Arial, Helvetica, sans-serif</string> </value>
</item>
<item>
<key> <string>font_size</string> </key>
<value> <string>12px</string> </value>
</item>
<item>
<key> <string>globals</string> </key>
<value>
<dictionary/>
</value>
</item>
<item>
<key> <string>group_border_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>link_color</string> </key>
<value> <string>#002e3f</string> </value>
</item>
<item>
<key> <string>link_hover_color</string> </key>
<value> <string>#3D6474</string> </value>
</item>
<item>
<key> <string>listbox_even_background_color</string> </key>
<value> <string>#DAE6F6</string> </value>
</item>
<item>
<key> <string>listbox_hover_background_color</string> </key>
<value> <string>#BDD0F0</string> </value>
</item>
<item>
<key> <string>listbox_label_background_color</string> </key>
<value> <string>#C1DAEB</string> </value>
</item>
<item>
<key> <string>listbox_odd_background_color</string> </key>
<value> <string>#FFF</string> </value>
</item>
<item>
<key> <string>listbox_stat_background_color</string> </key>
<value> <string>#C1DAEB</string> </value>
</item>
<item>
<key> <string>main_border_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>navigation_bar_background_color</string> </key>
<value> <string>#97B0D1</string> </value>
</item>
<item>
<key> <string>raw</string> </key>
<value> <string encoding="cdata"><![CDATA[
/*\n
Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.\n
Ivan Tyagov <ivan@nexedi.com>\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
\n
/* Search popup fix*/\n
div.search_popup{\n
left:200px;\n
position:absolute;\n
top:-120px;\n
width:250px;\n
}\n
\n
div.listbox-container{\n
width: 100%;\n
height: auto;\n
float:left;\n
margin-bottom:5px;\n
\n
}\n
div.listbox-body{\n
float:left;\n
width: 100%;\n
}\n
\n
div.listbox-tree{\n
margin-right: 0.1%;\n
max-width: 10%;\n
float: left;\n
}\n
\n
\n
div.listbox-content{\n
float:left;\n
width:100%;\n
}\n
\n
div.maximal-width{\n
width:100%;\n
}\n
\n
div.float-right{\n
float:right;\n
}\n
\n
div.listbox-content-fixed-width{\n
width:89%;\n
}\n
\n
table.listbox td.listbox-table-no-result-row{\n
background-color:#DAE6F6;\n
color:#001730;\n
border: 1px solid #3D6474;\n
text-align:center;\n
}\n
\n
table.listbox tr.listbox-stat-line{\n
background-color:#C1DAEB;\n
color:#001730;\n
border-top: 1px solid #3D6474;\n
}\n
\n
table.listbox tr.listbox-search-line {\n
background-color: #DAE6F6;\n
}\n
\n
div.listbox-head{\n
color:#9D968D;\n
}\n
\n
div.listbox-head-spacer{\n
display: none;\n
}\n
\n
div.listbox-head-content{\n
border-right:1px solid #3D6474;\n
border-top:1px solid #3D6474;\n
border-left:1px solid #3D6474;\n
border-top-left-radius: 10px;\n
-moz-border-top-left-radius: 10px;\n
-webkit-border-top-left-radius: 10px;\n
height:25px;\n
padding-left:10px;\n
padding-top:10px;\n
padding-right: 5px;\n
width:auto;\n
background-color: #e3eafa;\n
}\n
\n
div.listbox-head div.listbox-head-title{\n
float:left;\n
width:auto;\n
}\n
\n
div.listbox-head div.listbox-head-navigation{\n
float:right;\n
width:auto;\n
}\n
\n
div.listbox-head div.listbox-head-results{\n
float: right; \n
width: auto; \n
clear: right;\n
text-align:right;\n
}\n
\n
div.listbox-tree-mode-selection{\n
height: 22px;\n
width: auto;\n
float: left;\n
}\n
\n
div.listbox-tree-mode-selection input{\n
width: auto;\n
}\n
\n
th.listbox-table-report-tree-selection-cell{\n
width: 50px; \n
}\n
\n
/* Listbox header */\n
div.listbox-header-box{\n
width: auto;\n
float:left;\n
padding-right: 5px;\n
}\n
\n
table.listbox tr.listbox-label-line th.listbox-table-header-cell span.listbox-table-header-column-title{\n
float:left;\n
}\n
\n
/* Listbox Footer */\n
div.listbox-footer{\n
float:left;\n
width:100%;\n
text-align: center; \n
background-color: #BDD0F0;\n
margin-left:-1px;\n
}\n
\n
div.listbox-footer-box{\n
margin-top:3px;\n
margin-bottom:3px;\n
}\n
\n
/* Listbox Footer in gadget mode */\n
div.block div.listbox-footer{\n
background-color: transparent;\n
}\n
\n
div.block div.listbox-head-content{\n
font-size: 90%;\n
}\n
\n
div.listbox-title,\n
div.listbox-number-of-records{\n
padding-top: 5px;\n
}\n
\n
/* List style selection */\n
div.listbox-list-style-selection {\n
padding-top:1px;\n
padding-left: 5px;\n
}\n
\n
div.listbox-list-style-selection span{\n
vertical-align:-4px;\n
}\n
\n
div.block div.listbox-list-style-selection span{\n
padding-left: 0px;\n
}\n
div.listbox-list-style-selection ul{\n
display:inline;\n
padding-left:0;\n
margin: 0;\n
vertical-align: -4px;\n
}\n
div.listbox-list-style-selection li{\n
display: inline;\n
margin-left: 0.1em;\n
}\n
\n
div.listbox-list-style-selection li a{\n
cursor: pointer;\n
}\n
div.listbox-list-style-selection li a.selected,\n
.listbox-table-report-tree-selection-cell a.selected,\n
.listbox-table-domain-tree-cell a.selected,\n
.listbox-page-navigation-text a.selected,\n
table.listbox td.listbox-table-summary-cell {\n
font-weight: bold;\n
}\n
\n
/* Domain / Report tree buttons */\n
button.tree-open,\n
button.tree-closed{\n
background: none;\n
border: none;\n
cursor: pointer;\n
padding-left: 15px;\n
text-align: left;\n
}\n
button.tree-open{\n
background: url("./images/tree_open.png") no-repeat scroll left 4px transparent;\n
font-weight: bold;\n
}\n
\n
button.tree-closed{\n
background: url("./images/tree_closed.png") no-repeat scroll left 4px transparent;\n
}\n
\n
\n
/* Listbox full text search bar */\n
div.listbox-full-text-search {\n
}\n
\n
div.listbox-full-text-search input{\n
width: 250px;\n
}\n
\n
div.listbox-full-text-search input.button{\n
background-color: #97B0D1;\n
border: 0 none;\n
color:#000;\n
width: auto;\n
padding-left: 10px;\n
padding-right: 10px;\n
cursor: pointer;\n
\n
}\n
\n
/* Listbox Navigation */\n
div.listbox-page-navigation input.listbox_set_page, \n
div.listbox-page-navigation button.listbox_next_page, \n
div.listbox-page-navigation button.listbox_last_page, \n
div.listbox-page-navigation button.listbox_first_page, \n
div.listbox-page-navigation button.listbox_previous_page{\n
margin: 0em;\n
padding: 0em;\n
}\n
\n
div.listbox-page-navigation button{\n
background-color:transparent;\n
border: none;\n
cursor: pointer;\n
}\n
div.listbox-page-navigation button span.image{\n
display:block;\n
height:22px;\n
width:22px;\n
background-repeat:no-repeat;\n
}\n
\n
div.listbox-page-navigation button.listbox_first_page span.image {\n
background-image:url("images/2leftarrowv.png");\n
}\n
div.listbox-page-navigation button.listbox_previous_page span.image {\n
background-image:url("images/1leftarrowv.png");\n
}\n
\n
div.listbox-page-navigation button.listbox_next_page span.image {\n
background-image:url("images/1rightarrowv.png");\n
}\n
\n
div.listbox-page-navigation button.listbox_last_page span.image {\n
background-image:url("images/2rightarrowv.png");\n
}\n
\n
div.listbox-page-navigation-slider{\n
min-width: 200px;\n
margin:auto;\n
padding-right: 0.5em;\n
float:right;\n
}\n
\n
div.listbox-page-navigation-slider input{\n
max-width: 30px;\n
}\n
\n
div.listbox-page-navigation-text{\n
width:100%;\n
float:left;\n
text-align:center;\n
}\n
\n
div.listbox-page-navigation-text a{\n
padding-right: 1px;\n
color: #000;\n
cursor: pointer;\n
}\n
\n
/* Report tree */\n
a.tree-closed {\n
background:transparent url(\'./images/tree_closed.png\') no-repeat scroll left center;\n
padding-left:15px;\n
}\n
\n
a.tree-open {\n
background:transparent url(\'./images/tree_open.png\') no-repeat scroll left center;\n
padding-left:15px;\n
font-weight: bold;\n
}\n
\n
div.listbox-tree select{\n
/* max-width:120px; */\n
}\n
\n
/* Table Listbox elements */\n
table.listbox{\n
border-collapse:collapse;\n
width:100%;\n
border-color:#3D6474;\n
border-style:solid;\n
border-width:0 1px 1px;\n
margin-bottom: 0em;\n
}\n
\n
table.listbox th,\n
table.listbox td {\n
text-align:left;\n
vertical-align: top;\n
border-color:#3D6474;\n
border-style:solid;\n
border-width:0 1px;\n
padding: 0em;\n
padding-left:1px;\n
padding-right:1px;\n
font-weight: normal;\n
}\n
\n
table.listbox tr.listbox-label-line{\n
background-color:#C1DAEB;\n
color:#001730;\n
border-top: 1px solid #3D6474;\n
}\n
\n
table.listbox tr.listbox-search-line th{\n
margin: 0em;\n
padding: 0em;\n
padding-right:5px;\n
padding-left:1px;\n
}\n
\n
/* Select columns */\n
table.listbox tr.listbox-label-line th.listbox-table-select-cell,\n
table.listbox tr.listbox-search-line th.listbox-table-select-cell,\n
table.listbox tr td.listbox-table-select-cell{\n
width: 50px; \n
text-align: center; \n
vertical-align: middle;\n
padding:0;\n
margin:0;\n
}\n
\n
table.listbox tr.DataA {\n
color: inherit;\n
background-color: <dtml-var listbox_odd_background_color>;\n
}\n
\n
table.listbox tr.DataB {\n
color: inherit;\n
background-color: <dtml-var listbox_even_background_color>;\n
}\n
\n
table.listbox tr.DataA:hover,\n
table.listbox tr.DataB:hover,\n
table.listbox.table tr.tbody:hover{\n
color: inherit;\n
background-color: <dtml-var listbox_hover_background_color>;\n
}\n
\n
table.listbox tr.listbox-search-line th.listbox-table-filter-cell input{\n
width: 100%;\n
vertical-align:middle;\n
}\n
\n
table.listbox input{\n
float:none;\n
}\n
\n
table.listbox input.listbox-check-all,\n
table.listbox input.listbox-uncheck-all,\n
table.listbox input.listbox-select-action{\n
width:auto;\n
}\n
\n
.listbox-table-data-cell > .figure{\n
float:right;\n
display:block;\n
}\n
\n
.listbox-table-data-cell > a > .figure{\n
float:right;\n
display:block;\n
}\n
\n
.listbox-table-summary-cell > .figure{\n
float:right;\n
display:block;\n
}\n
\n
table.listbox th button{\n
border-width:0;\n
cursor:pointer;\n
float:left;\n
padding:0 6px 0 0;\n
background: transparent;\n
}\n
\n
table.listbox th button.sort-button {\n
text-decoration: underline;\n
padding: 0px;\n
}\n
\n
table.listbox th button.sort-button:hover{\n
color: #FFF;\n
}\n
\n
/* in ERP5 mode no need to have a switch for not clicked sort button */\n
table.listbox th button.sort-button-asc,\n
table.listbox th button.sort-button-desc{\n
background: none;\n
}\n
\n
table.listbox th img.sort-button-desc,\n
table.listbox th img.sort-button-asc{\n
width: 13px;\n
height: 13px;\n
margin:0;\n
padding:0;\n
}\n
\n
table.listbox th img.sort-button-arrow{\n
width: 13px;\n
height: 13px;\n
margin:0;\n
padding:0;\n
}\n
\n
table.listbox th img.sort-button-desc{\n
background: url(\'images/1toparrow.png\') no-repeat scroll 100% 100%;\n
}\n
\n
table.listbox th img.sort-button-asc{\n
background: url(\'images/1bottomarrow.png\') no-repeat scroll 100% 100%;\n
}\n
\n
table.listbox th img.sort-button-asc-not-selected{\n
background: url(\'images/1toparrow.png\') no-repeat scroll 100% 100%;\n
}\n
\n
table.listbox th img.sort-button-desc-not-selected{\n
background: url(\'images/1bottomarrow.png\') no-repeat scroll 100% 100%;\n
}\n
\n
table.listbox th img.sort-button-asc-selected{\n
background: url(\'images/1toparrow_red.png\') no-repeat scroll 100% 100%;\n
}\n
\n
table.listbox th img.sort-button-desc-selected{\n
background: url(\'images/1bottomarrow_red.png\') no-repeat scroll 100% 100%;\n
}\n
/* listbox table in thumbnail style \n
In thumbnail style we usually have only one thumbnail colum which through CSS\n
we show as floating box table row.\n
*/\n
table.listbox-thumbnail tbody tr{\n
display:block;\n
min-width: 128px; /* nano image width. XXX: dynamically generate. */\n
min-height:128px; /* nano image height. XXX: dynamically generate. */\n
float:left;\n
margin: 10px;\n
}\n
table.listbox-thumbnail tr.DataA, table.listbox-thumbnail tr.DataB,\n
table.listbox-thumbnail tr.DataA:hover, table.listbox-thumbnail tr.DataB:hover{\n
background-color: transparent; /* in thumbnail mode we don\'t care for hoover */\n
}\n
table.listbox-thumbnail td{\n
border:none;\n
}\n
\n
/* in search mode listbox may contain top/bottom quick search inputs */\n
div.search-text-listbox{\n
text-align: center;\n
float:left;\n
height:auto; \n
margin-bottom:0.5em;\n
margin-top:0.5em;\n
}\n
\n
div.search-text-listbox input{\n
width: auto;\n
}\n
]]></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ERP5 Listbox CSS</string> </value>
</item>
<item>
<key> <string>tooltip_background_color</string> </key>
<value> <string>#FFD</string> </value>
</item>
<item>
<key> <string>tooltip_border_color</string> </key>
<value> <string>#000</string> </value>
</item>
<item>
<key> <string>tooltip_color</string> </key>
<value> <string>#000</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_Cacheable__manager_id</string> </key>
<value> <string>http_cache</string> </value>
</item>
<item>
<key> <string>_EtagSupport__etag</string> </key>
<value> <string>ts65220236.81</string> </value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>login_form.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string>/*\n
Copyright (c) 20xx-2006 Nexedi SARL and Contributors. All Rights Reserved.\n
\n
This program is Free Software; you can redistribute it and/or\n
modify it under the terms of the GNU General Public License\n
as published by the Free Software Foundation; either version 2\n
of the License, or (at your option) any later version.\n
\n
This program is distributed in the hope that it will be useful,\n
but WITHOUT ANY WARRANTY; without even the implied warranty of\n
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
GNU General Public License for more details.\n
\n
You should have received a copy of the GNU General Public License\n
along with this program; if not, write to the Free Software\n
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
*/\n
\n
function setFocus() {\n
login = document.getElementById(\'name\');\n
password = document.getElementById(\'password\');\n
if (login.value !== \'\')\n
password.focus();\n
else\n
login.focus();\n
}</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>951</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
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