Commit 944925f8 authored by Kevin Deldycke's avatar Kevin Deldycke

Admin toolbar is now floating in the default style.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@10180 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 7cf98de0
...@@ -168,18 +168,67 @@ form#main_form div.wrapper div.field label {\n ...@@ -168,18 +168,67 @@ form#main_form div.wrapper div.field label {\n
/* Admin toolbox widget style\n /* Admin toolbox widget style\n
----------------------------------------------- */\n ----------------------------------------------- */\n
\n \n
#adminToolbox ul {\n form#main_form div.wrapper div.adminToolbox {\n
position: fixed;\n
z-index: 200;\n
top: .2em;\n
right: .2em;\n
margin: 0;\n
padding: 0;\n
background-color: #fff7cd;\n
border: 1px solid #f77;\n
}\n
\n
div.adminToolbox label {\n
display: none;\n
}\n
\n
/* admin toolbox sub section title */\n
div.adminToolbox h3 {\n
padding: .5em 0;\n
margin-left: -1em;\n
font-size: inherit;\n
}\n
\n
/* admin toolbox title */\n
div.adminToolbox > div > h3 {\n
background: #f77;\n
padding: .5em;\n
margin: 0;\n
color: #fff;\n
cursor: pointer;\n
}\n
\n
div.adminToolbox > div > h3:hover {\n
background: #f00;\n
}\n
\n
div.adminToolbox > div.input > div.adminSection {\n
border-bottom: 1px dotted #f77;\n
padding: .5em .5em 1em 1.5em;\n
}\n
\n
div.adminToolbox ul {\n
list-style: none;\n list-style: none;\n
}\n }\n
\n \n
#adminToolbox li {\n div.adminToolbox li {\n
margin: 0;\n margin: 0;\n
}\n }\n
\n \n
#adminToolbox li > a {\n div.adminToolbox li > a {\n
text-decoration: none;\n text-decoration: none;\n
}\n }\n
\n \n
div.adminToolbox button,\n
div.adminToolbox li > a {\n
margin: .1em 0;\n
padding: .2em;\n
}\n
\n
div.adminToolbox button[type="submit"] {\n
display: none;\n
}\n
\n \n
\n \n
\n \n
...@@ -248,19 +297,22 @@ input[type="image"] {\n ...@@ -248,19 +297,22 @@ input[type="image"] {\n
background-color: transparent;\n background-color: transparent;\n
}\n }\n
\n \n
/* Admin toolbox edit buttons have the same style as actions buttons */\n
#adminToolbox li > a,\n
button {\n button {\n
margin: .8em .5em;\n margin: .8em .5em;\n
border: 1px #ddd solid;\n
padding: .3em;\n padding: .3em;\n
}\n
\n
/* Admin toolbox edit buttons have the same style as actions buttons */\n
div.adminToolbox li > a,\n
button {\n
border: 1px #ddd solid;\n
color: #999;\n color: #999;\n
background: #eee;\n background: #eee;\n
cursor: pointer;\n cursor: pointer;\n
display: block;\n display: block;\n
}\n }\n
\n \n
#adminToolbox li > a:hover,\n div.adminToolbox li > a:hover,\n
button:hover {\n button:hover {\n
color: #333;\n color: #333;\n
background: #b0cfcb;\n background: #b0cfcb;\n
......
...@@ -150,7 +150,9 @@ ...@@ -150,7 +150,9 @@
</item> </item>
<item> <item>
<key> <string>enabled</string> </key> <key> <string>enabled</string> </key>
<value> <string></string> </value> <value>
<persistent> <string encoding="base64">AAAAAAAAAAM=</string> </persistent>
</value>
</item> </item>
<item> <item>
<key> <string>external_validator</string> </key> <key> <string>external_validator</string> </key>
...@@ -213,7 +215,7 @@ ...@@ -213,7 +215,7 @@
</item> </item>
<item> <item>
<key> <string>css_class</string> </key> <key> <string>css_class</string> </key>
<value> <string></string> </value> <value> <string>adminToolbox</string> </value>
</item> </item>
<item> <item>
<key> <string>default</string> </key> <key> <string>default</string> </key>
...@@ -304,4 +306,23 @@ ...@@ -304,4 +306,23 @@
</dictionary> </dictionary>
</pickle> </pickle>
</record> </record>
<record id="3" aka="AAAAAAAAAAM=">
<pickle>
<tuple>
<tuple>
<string>Products.Formulator.TALESField</string>
<string>TALESMethod</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_text</string> </key>
<value> <string>not: here/portal_membership/isAnonymousUser</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData> </ZopeData>
...@@ -112,10 +112,8 @@ ...@@ -112,10 +112,8 @@
<tal:block metal:use-macro="template/macros/form"/>\n <tal:block metal:use-macro="template/macros/form"/>\n
</tal:block>\n </tal:block>\n
\n \n
<tal:block tal:define="agg_list python: layout_form.WebSite_getGroupList([\'header\', \'left\', \'right\', \'footer\'])">\n <tal:block tal:repeat="aggregate python: layout_form.WebSite_getGroupList([\'header\', \'left\', \'right\', \'footer\'])">\n
<tal:block tal:repeat="aggregate agg_list">\n <tal:block metal:use-macro="here/erp5_web_macros/macros/render_aggregate"/>\n
<tal:block metal:use-macro="here/erp5_web_macros/macros/render_aggregate"/>\n
</tal:block>\n
</tal:block>\n </tal:block>\n
\n \n
</tal:block>\n </tal:block>\n
......
...@@ -61,187 +61,145 @@ ...@@ -61,187 +61,145 @@
<tal:block\n <tal:block\n
tal:define="is_web_mode python: True;\n tal:define="is_web_mode python: True;\n
portal_type python: here.getPortalType();">\n portal_type python: here.getPortalType();">\n
<!-- widget_list python: [ \'admin_tool_menus\']"\n
, \'admin_tool_edit\'\n
, \'admin_tool_duplicate_document\'\n
, \'admin_tool_duplicate_section\'\n
, \'admin_tool_debug\'\n
]">\n
-->\n
<tal:block metal:use-macro="here/global_definitions/macros/header_definitions"/>\n
\n \n
<tal:block metal:use-macro="here/global_definitions/macros/header_definitions"/>\n
\n \n
<div id="adminToolbox">\n <script type="text/javascript" language="JavaScript" src="admin_toolbox_cookie_utils.js"></script>\n
<script type="text/javascript" language="JavaScript">\n
<!--\n
// global variables\n
var cookie_name = "erp5_admin_toolbox_hidden_state"\n
var hidden_class = "doNotDisplay";\n
var displayed_class = "adminSection";\n
var elements_to_hide_name = "adminSection";\n
\n \n
<script type="text/javascript" language="JavaScript" src="admin_toolbox_cookie_utils.js"></script>\n function hideElements (hide) {\n
<script type="text/javascript" language="JavaScript">\n if (hide == true) {\n
<!--\n new_hidden_class = hidden_class;\n
// global variables\n } else if (hide == false) {\n
var cookie_name = "erp5_admin_toolbox_hidden_state"\n new_hidden_class = displayed_class;\n
var hidden_class = "doNotDisplay";\n } else {\n
var elements_to_hide_name = "adminSection";\n return;\n
}\n
// set the visibility of each element\n
element_list = document.getElementsByName(elements_to_hide_name);\n
for (var i = 0; i < element_list.length; i++) {\n
element_list[i].className = new_hidden_class;\n
}\n
// update cookie to remember the visibility status\n
days = 1; // cookie lifetime\n
stop_date = new Date();\n
stop_date.setTime(stop_date.getTime() + (days*24*60*60*1000));\n
SetCookie(cookie_name, hidden_status, stop_date);\n
}\n
\n \n
function hideElements (hide) {\n function autoHide () {\n
if (hide == true) {\n element_list = document.getElementsByName(elements_to_hide_name);\n
new_hidden_class = hidden_class;\n hidden_status = false;\n
} else if (hide == false) {\n // compute the global visibility only once to avoid inconsistencies\n
new_hidden_class = "";\n if (element_list[0].className != hidden_class) {\n
} else {\n hidden_status = true;\n
return;\n
}\n
// set the visibility of each element\n
element_list = document.getElementsByName(elements_to_hide_name);\n
for (var i = 0; i < element_list.length; i++) {\n
element_list[i].className = new_hidden_class;\n
}\n
// update cookie to remember the visibility status\n
days = 1; // cookie lifetime\n
stop_date = new Date();\n
stop_date.setTime(stop_date.getTime() + (days*24*60*60*1000));\n
SetCookie(cookie_name, hidden_status, stop_date);\n
}\n }\n
hideElements(hidden_status);\n
}\n
\n \n
function autoHide () {\n function initHiddenState () {\n
element_list = document.getElementsByName(elements_to_hide_name);\n hidden_status = GetCookie(cookie_name);\n
// be carefull: cookies contain string values\n
if (hidden_status == "false") {\n
hidden_status = false;\n hidden_status = false;\n
// compute the global visibility only once to avoid inconsistencies\n } else if (hidden_status == "true") {\n
if (element_list[0].className != hidden_class) {\n hidden_status = true;\n
hidden_status = true;\n
}\n
hideElements(hidden_status);\n
}\n }\n
// restore the previous state\n
hideElements(hidden_status);\n
}\n
-->\n
</script>\n
\n \n
function initHiddenState () {\n \n
hidden_status = GetCookie(cookie_name);\n <h3 title="Click to Collapse / Expand administrator toolbar." onclick="autoHide()" class="important"><img src="admin_toolbox.png"/><span name="adminSection"> Admin Tool Box</span></h3>\n
// be carefull: cookies contain string values\n \n
if (hidden_status == "false") {\n \n
hidden_status = false;\n <!-- Edit button menu -->\n
} else if (hidden_status == "true") {\n <div name="adminSection" class="adminSection">\n
hidden_status = true;\n <h3>Edit</h3>\n
}\n <ul tal:define="edit_links python: context.admin_toolbox_getEditShortcutList(truc=context)">\n
// restore the previous state\n <li tal:repeat="link edit_links">\n
hideElements(hidden_status);\n <a tal:attributes="href python: link[\'url\']">\n
}\n <img tal:attributes="src python: link[\'icon\'];\n
-->\n title python: link[\'portal_type\'];\n
</script>\n alt python: \'%s Icon\' % link[\'portal_type\'];"/>\n
\n <tal:block tal:replace="python: link[\'label\']"/>\n
<h3 title="Click to Collapse / Expand administrator toolbar." onclick="autoHide()" class="important"><img src="admin_toolbox.png"/><span name="adminSection"> Admin Tool Box</span></h3>\n </a>\n
\n </li>\n
<!-- Edit button menu -->\n </ul>\n
<div name="adminSection">\n </div>\n
<h3>Edit</h3>\n \n
<ul tal:define="edit_links python: context.admin_toolbox_getEditShortcutList(truc=context)">\n \n
<li tal:repeat="link edit_links">\n <!-- Action drop-down contextual menu -->\n
<a tal:attributes="href python: link[\'url\']">\n <div name="adminSection" class="adminSection">\n
<img tal:attributes="src python: link[\'icon\'];\n <h3><tal:block tal:content="portal_type"/> Actions</h3>\n
title python: link[\'portal_type\'];\n <tal:block metal:use-macro="here/context_box_render/macros/action"/>\n
alt python: \'%s Icon\' % link[\'portal_type\'];"/>\n </div>\n
<tal:block tal:replace="python: link[\'label\']"/>\n \n
</a>\n \n
</li>\n <!-- Document creation panel.\n
</ul>\n This part is displayed any document apart Web Site and Web Section.\n
</div>\n But if Web Site and Web Section have default page, then it will be displayed anyway.\n
\n -->\n
\n <div name="adminSection" class="adminSection"\n
<!-- Action drop-down contextual menu -->\n tal:condition="python: (portal_type in [\'Web Site\', \'Web Section\'] and here.WebSite_getDefaultWebPageValue()) or not portal_type in [\'Web Site\', \'Web Section\']">\n
<div name="adminSection">\n \n
<h3><tal:block tal:content="portal_type"/> Actions</h3>\n <form name="tool_create" method="post" action="WebSite_newContent">\n
<tal:block metal:use-macro="here/context_box_render/macros/action"/>\n <input id="document_action_mode" name="document_action_mode" value="clone" type="hidden"/>\n
</div>\n \n
\n <h3>\n
\n <span id="create_new_document_title"></span>\n
<!-- Document creation panel -->\n <span id="clone_document_title"><tal:block tal:replace="python: \'Clone %s %s\' % ((portal_type in [\'Web Site\', \'Web Section\'] and \'Default\') or \'Current\', portal_type)"/></span>\n
<div name="adminSection">\n </h3>\n
<form name="tool_create" method="post" action="WebSite_newContent">\n \n
<input id="document_action_mode" name="document_action_mode" value="clone" type="hidden"/>\n <fieldset>\n
\n <!--legend class="group_title">left</legend-->\n
<h3>\n \n
<span id="create_new_document_title"></span>\n <div class="field">\n
<span id="clone_document_title">Clone <tal:block tal:content="python: (portal_type and \'Default \') or \'Current \'"/>Page</span>\n <label>Title</label>\n
</h3>\n <div class="input"><input class="input" size="15" type="text" name="title" tal:attributes="value here/getTitle | nothing"/></div>\n
\n </div>\n
<!-- TODO: bad use of table ! Generic css class for forms should be used there -->\n \n
<table cellspacing="1" cellpadding="0" border="0">\n <div class="field">\n
<tr>\n <label>Page URI</label>\n
<td>Title</td>\n <div class="input"><input class="input" size="15" type="text" name="reference" tal:attributes="value here/getReference | nothing"/></div>\n
<td><input class="input" size="15" type="text" name="title" tal:attributes="value document/getTitle | nothing"/></td>\n </div>\n
</tr>\n \n
<tr>\n <div class="field">\n
<td>Page URI</td>\n <label>Version</label>\n
<td><input class="input" size="15" type="text" name="reference" tal:attributes="value document/getReference | nothing"/></td>\n <div class="input"><input class="input" size="5" type="text" name="version" tal:attributes="value here/getVersion | nothing"/></div>\n
</tr>\n </div>\n
<tr>\n \n
<td>Version</td>\n <div class="field">\n
<td><input class="input" size="5" type="text" name="version" tal:attributes="value document/getVersion | nothing"/></td>\n <label>Language</label>\n
</tr>\n <div class="input"><input class="input" size="5" type="text" name="language" tal:attributes="value here/getLanguage | nothing"/></div>\n
<tr>\n <!-- Not a required widget (make the form more complex) -->\n
<td>Language</td>\n <!--select name="language" size="1"\n
<td><input class="input" size="5" type="text" name="language" tal:attributes="value document/getLanguage | nothing"/></td>\n tal:define="language_map python: here.Localizer.get_languages_map()">\n
<!-- No required widget (make the form more complex) -->\n <tal:block tal:repeat="language language_map">\n
<!--select name="language" size="1"\n <tal:block tal:condition="python: document.getLanguage() == language[\'id\'] or language[\'selected\']">\n
tal:define="language_map python: here.Localizer.get_languages_map()">\n <option tal:attributes="value language/id"\n
<tal:block tal:repeat="language language_map">\n tal:content="language/id"\n
<tal:block tal:condition="python: document.getLanguage() == language[\'id\'] or language[\'selected\']">\n selected/>\n
<option tal:attributes="value language/id"\n </tal:block>\n
tal:content="language/id"\n <tal:block tal:condition="python: not(document.getLanguage() == language[\'id\'] or language[\'selected\'])">\n
selected/>\n <option tal:attributes="value language/id"\n
</tal:block>\n tal:content="language/id"/>\n
<tal:block tal:condition="python: not(document.getLanguage() == language[\'id\'] or language[\'selected\'])">\n
<option tal:attributes="value language/id"\n
tal:content="language/id"/>\n
</tal:block>\n
</tal:block>\n </tal:block>\n
</select-->\n </tal:block>\n
</tr>\n </select-->\n
\n </div>\n
<script type="text/javascript" language="JavaScript">\n \n
<!--\n <div class="field">\n
// preload action icons\n <label>Type</label>\n
if (document.images) {\n <div class="input">\n
clone_icon = new Image();\n
new_icon = new Image();\n
clone_icon.src = "clone-document.png";\n
new_icon.src = "new-document.png";\n
}\n
\n
function setCreationMode (sel) {\n
// default is cloning\n
var action = \'clone\';\n
var action_name = \'Clone &amp; Edit\';\n
var icon = \'clone-document.png\';\n
var clone_class = \'\';\n
var new_title = \'\';\n
\n
// a portal type is given, so create a new document\n
var portal_type = sel.options[sel.selectedIndex].value;\n
if (portal_type != \'None\') {\n
action = \'new\'\n
action_name = \'Create New &amp; Edit\';\n
icon = \'new-document.png\';\n
clone_class = \'doNotDisplay\';\n
new_title = \'Create New Document\';\n
}\n
\n
// update action dependent values\n
document.getElementById(\'document_action_mode\' ).value = action;\n
document.getElementById(\'create_new_document_title\').innerHTML = new_title;\n
document.getElementById(\'clone_document_title\' ).className = clone_class;\n
document.getElementById(\'duplicate_document_action\').innerHTML = action_name;\n
\n
// replace the action icon\n
document.getElementById(\'clone_action_icon\').src = eval(action + "_icon.src");\n
\n
// update action button alt & title\n
var button = document.getElementById(\'clone_action_button\');\n
button.alt = action_name;\n
button.title = action_name;\n
}\n
-->\n
</script>\n
\n
<tr>\n
<td>Type</td>\n
<td>\n
<select class="input" name="new_portal_type" size="1" onchange="setCreationMode(this)">\n <select class="input" name="new_portal_type" size="1" onchange="setCreationMode(this)">\n
<option value="None" selected>&mdash; Same as Current &mdash;</option>\n <option value="None" selected>&mdash; Same as Current &mdash;</option>\n
<tal:block tal:repeat="portal_type python: here.portal_types.objectValues()">\n <tal:block tal:repeat="portal_type python: here.portal_types.objectValues()">\n
...@@ -250,34 +208,63 @@ ...@@ -250,34 +208,63 @@
tal:attributes="value portal_type/id"/>\n tal:attributes="value portal_type/id"/>\n
</tal:block>\n </tal:block>\n
</select>\n </select>\n
</td>\n </div>\n
</tr>\n </div>\n
<tr>\n \n
<td colspan="2" class="centeredInner">\n <div class="field">\n
<button alt=\'Clone &amp; Edit\' id="clone_action_button" title=\'Clone &amp; Edit\'><img src="pictures/clone-document.png" id="clone_action_icon"/> <span id="duplicate_document_action">Clone &amp; Edit</span></button>\n <label> </label>\n
<!--input type="image" alt="Clone &amp; Edit" title="Clone &amp; Edit" src="pictures/clone-document.png" id="clone_action_icon"/> <span id="duplicate_document_action">Clone &amp; Edit</span-->\n <div class="input"><button alt=\'Clone &amp; Edit\' id="clone_action_button" title=\'Clone &amp; Edit\'><img src="admin_toolbox_clone_document.png" id="clone_action_icon"/> <span id="duplicate_document_action">Clone &amp; Edit</span></button></div>\n
</td>\n </div>\n
</tr>\n
</table>\n
\n
</form>\n
</div>\n
\n
\n
<!-- Debug panel -->\n
<!-- TODO: only display this part for manager -->\n
<div name="adminSection">\n
<h3>Debug Menu</h3>\n
<ul>\n
<li class="code">\n
<!-- Display erp5 web globals -->\n
<b>Globals:</b>\n
<tal:block tal:content="python: \'is_web_mode = \' + repr(is_web_mode)" />\n
</li>\n
</ul>\n
</div>\n
\n \n
</fieldset>\n
\n
<script type="text/javascript" language="JavaScript">\n
<!--\n
// preload action icons\n
if (document.images) {\n
clone_icon = new Image();\n
new_icon = new Image();\n
clone_icon.src = "admin_toolbox_clone_document.png";\n
new_icon.src = "admin_toolbox_new_document.png";\n
}\n
\n
function setCreationMode (sel) {\n
// default is cloning\n
var action = \'clone\';\n
var action_name = \'Clone &amp; Edit\';\n
var icon = \'admin_toolbox_clone_document.png\';\n
var clone_class = \'\';\n
var new_title = \'\';\n
\n
// a portal type is given, so create a new document\n
var portal_type = sel.options[sel.selectedIndex].value;\n
if (portal_type != \'None\') {\n
action = \'new\'\n
action_name = \'Create New &amp; Edit\';\n
icon = \'admin_toolbox_new_document.png\';\n
clone_class = \'doNotDisplay\';\n
new_title = \'Create New Document\';\n
}\n
\n
// update action dependent values\n
document.getElementById(\'document_action_mode\' ).value = action;\n
document.getElementById(\'create_new_document_title\').innerHTML = new_title;\n
document.getElementById(\'clone_document_title\' ).className = clone_class;\n
document.getElementById(\'duplicate_document_action\').innerHTML = action_name;\n
\n
// replace the action icon\n
document.getElementById(\'clone_action_icon\').src = eval(action + "_icon.src");\n
\n
// update action button alt & title\n
var button = document.getElementById(\'clone_action_button\');\n
button.alt = action_name;\n
button.title = action_name;\n
}\n
-->\n
</script>\n
</form>\n
</div>\n </div>\n
\n
</tal:block> </tal:block>
]]></string> </value> ]]></string> </value>
......
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>Image</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>admin_toolbox_clone_document.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1AcZDRMXMK5nmgAAAYhJREFUeNqllcFKw0AQhv+ZbPFB
PJYKBc8ePfsAvl17tw8iBGx7EPQNRKSaxrCb+T3ExMZu0kQHlhyG/fef2W8nQhLb7TPRE2m6xu3t
jWBMkMRm88TD8L5knnu+vLzx9XXHzeaJi8UdSWLo0thhSSJIEoHqT/ry8gLL5YpDDWtXQkSQJEnT
ivv7BwAYLO56T1VFWZa4vr7CbveB9/cM2+0j/ixcua2+qoosy5HnRas1/3IsQpgZ9vtPqCpUFfP5
7IiiGDVR4RAMIRiyLEdReADAdHoeyWffVcywXK54KK4x/MwMRVGAJCaT5E/UHAmXJRuXzrmGjLHU
uN9uvfcQkWb1XVgfNS1hs0r8VAyhpmXH+7K1+RReNTXel3BO4ZyLU2EWQApIay5xCDVnZxOQDiHY
sXDdAhFCRDpb0kUNWe1rCafpGmm67ix5Pp91UlNXFYIdC5+atfVL66LGzBpCTk63WHRRUx2AluNR
wmOoGem4poYtamJV6Jhf2CE1v1sxamwejsU+amLxBcwsVQMFoSFoAAAAAElFTkSuQmCC</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>22</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>507</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>22</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>OFS.Image</string>
<string>Image</string>
</tuple>
<none/>
</tuple>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__ac_local_roles__</string> </key>
<value>
<none/>
</value>
</item>
<item>
<key> <string>__name__</string> </key>
<value> <string>admin_toolbox_new_document.png</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>image/png</string> </value>
</item>
<item>
<key> <string>data</string> </key>
<value> <string encoding="base64">iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAAACXBI
WXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1QEbAzc5+RtIdwAAAsZJREFUOMu1k1tIFGEYhp9/5p91
Nzct19Lciog8RJEdsIMhRIRRQSRIXXQVdNFVF0V1HYQ33XQVUUYIFdRFBkGiGBEGYSId6CDJmq5b
ELna7s7uus7u/F2M4mkpXeqFH2a+gWfe//2+TyilmNLDR23TLwuQ4S1e21BfM5ztm5xbOHzoAF6P
MatmWZBMQiIBiSQkEopI/BPfQsFga0dPRUN9Tf9cjrYgZwa43TNOnlOvrNiHZY58ae3o2ZITGMDl
mobmuZ1acZGH9ev2Y5kj71o7enbnBIZpx1NgpSVx5dn4ivdimSOv7j95fTIn8BTcMxnFUHCAWHwA
t3sY/+q1SCt8t6WlpSpr8/4mTQOPR7Br+yYSCQgElLKVEErB97Hh8HJJFdC3aMcAUsL4OIRCkBd4
KIwP15EShMgx4yn9CvQT6upAl7Cm+AnlG3vRdZvlo+9l0dfOdVnBE6m0pf6wJtEoxLsvU7HnJfQ2
oUkNYUhcn29z8sSvwh2lgxezgy1pRCIQiUA0BqYJ8TjETBgbAzMOExsukBoMUn4kg+5RaIagvC5I
OjxGV3/BzazNk9JZCNsGpSBjTz/bCuy+x7jCXYTDUUryg7irawBBZijAl9Y36eoCq+7DqaWns4Kl
dEBKzYYqG/RYM8uO1oFaCUqA7syeVupn87kGiWK/2f68dj5Yn+14JlwpSGy9RbD7PeLjA/yNZWhK
gQ0qNcHrq+3pUNLb9LO3/e78ORbOrGqT6c91vLRkFdpQJ4XHy8iMjJLqC6B7vahUhp3nD0rtWlt5
Y5fq1xayELoOxmT2UkL62zMmBof5MXoMNAMlNCLes8TfflYlK1TtojdPCOcnvsZmUmYEf4GP2NNb
aPEUhXVbuPGiXrjF6KUzuaw0gC4lS5b5nJ5su8K4GSXf5VzeU+hLkSt4pvL9leRni5D/pP8GnhdF
8517/wT8G/5TIRk9cH4vAAAAAElFTkSuQmCC</string> </value>
</item>
<item>
<key> <string>height</string> </key>
<value> <int>22</int> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>size</string> </key>
<value> <int>825</int> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>width</string> </key>
<value> <int>22</int> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
2006-09-19 Kevin 2006-09-19 Kevin
* Much more sementical breadcrumb with hierarchical lists. * Much more sementical breadcrumb with hierarchical lists.
* Admin Toolbar: add webdav and direct ERP5 access link. * Admin Toolbar: add webdav and direct ERP5 access link.
* Admin toolbar is now floating in the default style.
2006-09-18 Kevin 2006-09-18 Kevin
* Merge all admin toolbar code in one single page template. * Merge all admin toolbar code in one single page template.
......
445 448
\ No newline at end of file \ No newline at end of file
0.3.37 0.3.38
\ No newline at end of file \ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment