diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/Base_asJSON.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/Base_asJSON.xml new file mode 100644 index 0000000000000000000000000000000000000000..4ba8a3191056597187c7ada9386f510a6b7e9148 --- /dev/null +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/Base_asJSON.xml @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="PythonScript" module="Products.PythonScripts.PythonScript"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>Script_magic</string> </key> + <value> <int>3</int> </value> + </item> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_container</string> </key> + <value> <string>container</string> </value> + </item> + <item> + <key> <string>name_context</string> </key> + <value> <string>context</string> </value> + </item> + <item> + <key> <string>name_m_self</string> </key> + <value> <string>script</string> </value> + </item> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_body</string> </key> + <value> <string>from json import dumps\n +return dumps(d)\n +</string> </value> + </item> + <item> + <key> <string>_params</string> </key> + <value> <string>d</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>Base_asJSON</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/erp5_tabbular_form_renderer.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/erp5_tabbular_form_renderer.xml new file mode 100644 index 0000000000000000000000000000000000000000..b97feb98bc07f98f89b2247eebed91d332380b5a --- /dev/null +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/erp5_tabbular_form_renderer.xml @@ -0,0 +1,95 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_bind_names</string> </key> + <value> + <object> + <klass> + <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/> + </klass> + <tuple/> + <state> + <dictionary> + <item> + <key> <string>_asgns</string> </key> + <value> + <dictionary> + <item> + <key> <string>name_subpath</string> </key> + <value> <string>traverse_subpath</string> </value> + </item> + </dictionary> + </value> + </item> + </dictionary> + </state> + </object> + </value> + </item> + <item> + <key> <string>_text</string> </key> + <value> <unicode>\074html\076\n + \074head\076\n + \074title tal:content="template/title"\076The title\074/title\076\n + \074meta http-equiv="content-type" content="text/html;charset=utf-8"\076\n + \074/head\076\n + \074body\076\n +\n + \074script type="text/javascript" language="javascript"\076\n + //\074![CDATA[\n + $(document).ready(function() {\n + gadget = RenderJs.getSelfGadget();\n +\n + // default tab should be openned fist\n + gadget.redirect = function () {\n + $.url.redirect(\'/\' + gadget.default_tab_url + \'/\');\n + };\n +\n + // default route\n + RenderJs.RouteGadget.add(\'\', gadget.redirect, 1);\n +\n + $.each(gadget.action_id_list, function(index, value) {\n + // add dynamic function to gadget that will take care to render tab using gadgets\n + gadget[value] = function () {\n + ERP5Form.openFormInTabbularGadget(gadget.tab_container_id, value);\n + };\n + //add dynamic route\n + RenderJs.RouteGadget.add(\'/\' + value + \'/\', gadget[value], 1);\n + });\n + });\n + //]]\076\n + \074/script\076\n +\n + \074/body\076\n +\074/html\076</unicode> </value> + </item> + <item> + <key> <string>content_type</string> </key> + <value> <string>text/html</string> </value> + </item> + <item> + <key> <string>expand</string> </key> + <value> <int>0</int> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>erp5_tabbular_form_renderer</string> </value> + </item> + <item> + <key> <string>output_encoding</string> </key> + <value> <string>utf-8</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <unicode></unicode> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/gadgets/tabular_gadget/gadget.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/gadgets/tabular_gadget/gadget.xml index 13e720c2b1224b1cd31f88e6c2a1e28155566d34..ba8cb168da69973e0a8f4eaf25e286867d9ce0f0 100644 --- a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/gadgets/tabular_gadget/gadget.xml +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/gadgets/tabular_gadget/gadget.xml @@ -46,13 +46,18 @@ current_form_id python: request.get(\'current_form_id\', \'view\');\n current_url python: \'%s/%s\' % (url, current_form_id);\n current_action python: portal.ERP5Site_getCurrentAction(current_url, actions);\n - actions actions/object_view | python: [];">\n + actions actions/object_view | python: [];\n + action_id_list python:[x[\'url\'].split(\'/\')[-1] for x in actions];\n + data_gadget_property python: {\'tab_container_id\': \'form_gadget\',\n + \'default_tab_url\': action_id_list[0],\n + \'action_id_list\': action_id_list}">\n \n \n + <!-- XXX: use portal_status_message gadget -->\n <div id="portal_status_message" style="height:20px; display:none;">\n <p style="color:red; font-weight: bold;"></p>\n </div>\n - \n +\n <div class="document">\n \n <div class="actions">\n @@ -62,16 +67,10 @@ <span class="description">Save</span>\n </button>\n \n - <script type="text/javascript"\n - tal:content="python:\'\'\'ERP5Form.setCurrentFormId(\'%s\');;\n - RenderJs.TabbularGadget.addNewTabGadget(\n - \'form_gadget\',\n - \'gadget-%s\',\n - \'%s/Form_asRenderJSGadget\',\n - \'ERP5Form.update\',\n - \'Form_asJSON?form_id=%s\', false);;\n - \'\'\' %(current_form_id, current_form_id, current_form_id, current_form_id)">\n - </script>\n + <!-- Test -->\n + <div data-gadget="erp5_tabbular_form_renderer"\n + id="erp5_tabbular_form_renderer"\n + tal:attributes="data-gadget-property python: here.Base_asJSON(data_gadget_property);"> </div>\n \n <!-- get all tabs from server -->\n <ul class="tabs">\n @@ -80,8 +79,7 @@ tal:define="action_form python: action[\'url\'].split(\'/\')[-1]"\n tal:attributes="id action_form;\n class python: action == current_action and \'selected\' or \'not_selected\'">\n -\n - <a tal:attributes="onclick python: \'\'\'javascript: ERP5Form.openFormInTabbularGadget(\'form_gadget\', \'%s\');; return false ;;\'\'\' %(action_form)">\n + <a tal:attributes="href python: \'view#/%s/\' %action_form">\n <span i18n:translate=""\n i18n:domain="ui"\n tal:content="action/name">action_name</span>\n @@ -93,13 +91,13 @@ </div>\n \n <div class="content editable">\n - \n +\n <!--Form rendered content goes here -->\n <div id="form_gadget"></div>\n \n </div>\n </div>\n - \n +\n </div> ]]></unicode> </value> diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib.xml new file mode 100644 index 0000000000000000000000000000000000000000..49c19727c0716b21ce094ade1a84c90a7a9edacc --- /dev/null +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="Folder" module="OFS.Folder"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_objects</string> </key> + <value> + <tuple/> + </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>lib</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/erp5_form.js.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/erp5_form.js.xml similarity index 100% rename from bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/erp5_form.js.xml rename to bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/erp5_form.js.xml diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/require-erp5.js.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/require-erp5.js.xml new file mode 100644 index 0000000000000000000000000000000000000000..2c3b564ce8fddc3b060281e4fe397b49408973ba --- /dev/null +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/require-erp5.js.xml @@ -0,0 +1,82 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="File" module="OFS.Image"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_EtagSupport__etag</string> </key> + <value> <string>ts62754937.18</string> </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>require-erp5.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>// JavaScript file that is used to load ERP5\'s JavaScript depenencies\n +require.config({\n + paths: {\n + "erp5_form": "lib/erp5_form",\n + route: "lib/route",\n + url: "lib/url",\n + jquery: "jquery/core/jquery",\n + renderjs: "jquery/plugin/renderjs/renderjs",\n + "jquery-ui": "jquery/ui/js/jquery-ui.min",\n + "jquery.jqGrid.src": "jquery/plugin/jqgrid/jquery.jqGrid.src",\n + "grid.locale-en": "jquery/plugin/jqgrid/i18n/grid.locale-en"\n + },\n + shim: {\n + erp5: ["jquery"],\n + erp5_xhtml_appearance: ["erp5"],\n + erp5_knowledge_box: ["jquery", "jquery-ui"],\n + route: ["jquery"],\n + url: ["jquery"],\n + "jquery-ui": ["jquery"],\n + "jquery.jqGrid.src": ["jquery"],\n + "grid.locale-en": ["jquery.jqGrid.src"]\n + }\n +});\n +\n +require(["erp5_xhtml_appearance", "erp5_knowledge_box", "erp5", "erp5_form",\n + "renderjs", "jquery", "jquery-ui", "route", "url",\n + "jquery.jqGrid.src", "grid.locale-en"],\n + function(domReady) {\n + RenderJs.init();\n + RenderJs.bindReady(function (){\n + $.url.onhashchange(function () {\n + //console.log("go to route", $.url.getPath());\n + RenderJs.RouteGadget.go($.url.getPath(),\n + function () {\n + //console.log("bad route");\n + // All routes have been deleted by fail.\n + // So recreate the default routes using RouteGadget\n + RenderJs.RouteGadget.init();\n + });\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>1474</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/require.js.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/require.js.xml new file mode 100644 index 0000000000000000000000000000000000000000..2239ba4ae8758d70f6123db93bf7c148056306f2 --- /dev/null +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/require.js.xml @@ -0,0 +1,83 @@ +<?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>anonymous_http_cache</string> </value> + </item> + <item> + <key> <string>_EtagSupport__etag</string> </key> + <value> <string>ts62728867.75</string> </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>require.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 + RequireJS 2.1.4 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.\n + Available via the MIT or new BSD license.\n + see: http://github.com/jrburke/requirejs for details\n +*/\n +var requirejs,require,define;\n +(function(Y){function I(b){return"[object Function]"===L.call(b)}function J(b){return"[object Array]"===L.call(b)}function x(b,c){if(b){var d;for(d=0;d<b.length&&(!b[d]||!c(b[d],d,b));d+=1);}}function M(b,c){if(b){var d;for(d=b.length-1;-1<d&&(!b[d]||!c(b[d],d,b));d-=1);}}function r(b,c){return da.call(b,c)}function i(b,c){return r(b,c)&&b[c]}function E(b,c){for(var d in b)if(r(b,d)&&c(b[d],d))break}function Q(b,c,d,i){c&&E(c,function(c,h){if(d||!r(b,h))i&&"string"!==typeof c?(b[h]||(b[h]={}),Q(b[h],\n +c,d,i)):b[h]=c});return b}function t(b,c){return function(){return c.apply(b,arguments)}}function Z(b){if(!b)return b;var c=Y;x(b.split("."),function(b){c=c[b]});return c}function F(b,c,d,i){c=Error(c+"\\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.requireModules=i;d&&(c.originalError=d);return c}function ea(b){function c(a,f,v){var e,n,b,c,d,k,g,h=f&&f.split("/");e=h;var l=m.map,j=l&&l["*"];if(a&&"."===a.charAt(0))if(f){e=i(m.pkgs,f)?h=[f]:h.slice(0,h.length-1);f=a=e.concat(a.split("/"));\n +for(e=0;f[e];e+=1)if(n=f[e],"."===n)f.splice(e,1),e-=1;else if(".."===n)if(1===e&&(".."===f[2]||".."===f[0]))break;else 0<e&&(f.splice(e-1,2),e-=2);e=i(m.pkgs,f=a[0]);a=a.join("/");e&&a===f+"/"+e.main&&(a=f)}else 0===a.indexOf("./")&&(a=a.substring(2));if(v&&(h||j)&&l){f=a.split("/");for(e=f.length;0<e;e-=1){b=f.slice(0,e).join("/");if(h)for(n=h.length;0<n;n-=1)if(v=i(l,h.slice(0,n).join("/")))if(v=i(v,b)){c=v;d=e;break}if(c)break;!k&&(j&&i(j,b))&&(k=i(j,b),g=e)}!c&&k&&(c=k,d=g);c&&(f.splice(0,d,\n +c),a=f.join("/"))}return a}function d(a){z&&x(document.getElementsByTagName("script"),function(f){if(f.getAttribute("data-requiremodule")===a&&f.getAttribute("data-requirecontext")===k.contextName)return f.parentNode.removeChild(f),!0})}function y(a){var f=i(m.paths,a);if(f&&J(f)&&1<f.length)return d(a),f.shift(),k.require.undef(a),k.require([a]),!0}function g(a){var f,b=a?a.indexOf("!"):-1;-1<b&&(f=a.substring(0,b),a=a.substring(b+1,a.length));return[f,a]}function h(a,f,b,e){var n,u,d=null,h=f?f.name:\n +null,l=a,m=!0,j="";a||(m=!1,a="_@r"+(L+=1));a=g(a);d=a[0];a=a[1];d&&(d=c(d,h,e),u=i(p,d));a&&(d?j=u&&u.normalize?u.normalize(a,function(a){return c(a,h,e)}):c(a,h,e):(j=c(a,h,e),a=g(j),d=a[0],j=a[1],b=!0,n=k.nameToUrl(j)));b=d&&!u&&!b?"_unnormalized"+(M+=1):"";return{prefix:d,name:j,parentMap:f,unnormalized:!!b,url:n,originalName:l,isDefine:m,id:(d?d+"!"+j:j)+b}}function q(a){var f=a.id,b=i(j,f);b||(b=j[f]=new k.Module(a));return b}function s(a,f,b){var e=a.id,n=i(j,e);if(r(p,e)&&(!n||n.defineEmitComplete))"defined"===\n +f&&b(p[e]);else q(a).on(f,b)}function A(a,f){var b=a.requireModules,e=!1;if(f)f(a);else if(x(b,function(f){if(f=i(j,f))f.error=a,f.events.error&&(e=!0,f.emit("error",a))}),!e)l.onError(a)}function w(){R.length&&(fa.apply(G,[G.length-1,0].concat(R)),R=[])}function B(a,f,b){var e=a.map.id;a.error?a.emit("error",a.error):(f[e]=!0,x(a.depMaps,function(e,c){var d=e.id,h=i(j,d);h&&(!a.depMatched[c]&&!b[d])&&(i(f,d)?(a.defineDep(c,p[d]),a.check()):B(h,f,b))}),b[e]=!0)}function C(){var a,f,b,e,n=(b=1E3*m.waitSeconds)&&\n +k.startTime+b<(new Date).getTime(),c=[],h=[],g=!1,l=!0;if(!T){T=!0;E(j,function(b){a=b.map;f=a.id;if(b.enabled&&(a.isDefine||h.push(b),!b.error))if(!b.inited&&n)y(f)?g=e=!0:(c.push(f),d(f));else if(!b.inited&&(b.fetched&&a.isDefine)&&(g=!0,!a.prefix))return l=!1});if(n&&c.length)return b=F("timeout","Load timeout for modules: "+c,null,c),b.contextName=k.contextName,A(b);l&&x(h,function(a){B(a,{},{})});if((!n||e)&&g)if((z||$)&&!U)U=setTimeout(function(){U=0;C()},50);T=!1}}function D(a){r(p,a[0])||\n +q(h(a[0],null,!0)).init(a[1],a[2])}function H(a){var a=a.currentTarget||a.srcElement,b=k.onScriptLoad;a.detachEvent&&!V?a.detachEvent("onreadystatechange",b):a.removeEventListener("load",b,!1);b=k.onScriptError;(!a.detachEvent||V)&&a.removeEventListener("error",b,!1);return{node:a,id:a&&a.getAttribute("data-requiremodule")}}function K(){var a;for(w();G.length;){a=G.shift();if(null===a[0])return A(F("mismatch","Mismatched anonymous define() module: "+a[a.length-1]));D(a)}}var T,W,k,N,U,m={waitSeconds:7,\n +baseUrl:"./",paths:{},pkgs:{},shim:{},map:{},config:{}},j={},X={},G=[],p={},S={},L=1,M=1;N={require:function(a){return a.require?a.require:a.require=k.makeRequire(a.map)},exports:function(a){a.usingExports=!0;if(a.map.isDefine)return a.exports?a.exports:a.exports=p[a.map.id]={}},module:function(a){return a.module?a.module:a.module={id:a.map.id,uri:a.map.url,config:function(){return m.config&&i(m.config,a.map.id)||{}},exports:p[a.map.id]}}};W=function(a){this.events=i(X,a.id)||{};this.map=a;this.shim=\n +i(m.shim,a.id);this.depExports=[];this.depMaps=[];this.depMatched=[];this.pluginMaps={};this.depCount=0};W.prototype={init:function(a,b,c,e){e=e||{};if(!this.inited){this.factory=b;if(c)this.on("error",c);else this.events.error&&(c=t(this,function(a){this.emit("error",a)}));this.depMaps=a&&a.slice(0);this.errback=c;this.inited=!0;this.ignore=e.ignore;e.enabled||this.enabled?this.enable():this.check()}},defineDep:function(a,b){this.depMatched[a]||(this.depMatched[a]=!0,this.depCount-=1,this.depExports[a]=\n +b)},fetch:function(){if(!this.fetched){this.fetched=!0;k.startTime=(new Date).getTime();var a=this.map;if(this.shim)k.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],t(this,function(){return a.prefix?this.callPlugin():this.load()}));else return a.prefix?this.callPlugin():this.load()}},load:function(){var a=this.map.url;S[a]||(S[a]=!0,k.load(this.map.id,a))},check:function(){if(this.enabled&&!this.enabling){var a,b,c=this.map.id;b=this.depExports;var e=this.exports,n=this.factory;\n +if(this.inited)if(this.error)this.emit("error",this.error);else{if(!this.defining){this.defining=!0;if(1>this.depCount&&!this.defined){if(I(n)){if(this.events.error)try{e=k.execCb(c,n,b,e)}catch(d){a=d}else e=k.execCb(c,n,b,e);this.map.isDefine&&((b=this.module)&&void 0!==b.exports&&b.exports!==this.exports?e=b.exports:void 0===e&&this.usingExports&&(e=this.exports));if(a)return a.requireMap=this.map,a.requireModules=[this.map.id],a.requireType="define",A(this.error=a)}else e=n;this.exports=e;if(this.map.isDefine&&\n +!this.ignore&&(p[c]=e,l.onResourceLoad))l.onResourceLoad(k,this.map,this.depMaps);delete j[c];this.defined=!0}this.defining=!1;this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var a=this.map,b=a.id,d=h(a.prefix);this.depMaps.push(d);s(d,"defined",t(this,function(e){var n,d;d=this.map.name;var v=this.map.parentMap?this.map.parentMap.name:null,g=k.makeRequire(a.parentMap,{enableBuildCallback:!0});\n +if(this.map.unnormalized){if(e.normalize&&(d=e.normalize(d,function(a){return c(a,v,!0)})||""),e=h(a.prefix+"!"+d,this.map.parentMap),s(e,"defined",t(this,function(a){this.init([],function(){return a},null,{enabled:!0,ignore:!0})})),d=i(j,e.id)){this.depMaps.push(e);if(this.events.error)d.on("error",t(this,function(a){this.emit("error",a)}));d.enable()}}else n=t(this,function(a){this.init([],function(){return a},null,{enabled:!0})}),n.error=t(this,function(a){this.inited=!0;this.error=a;a.requireModules=\n +[b];E(j,function(a){0===a.map.id.indexOf(b+"_unnormalized")&&delete j[a.map.id]});A(a)}),n.fromText=t(this,function(e,c){var d=a.name,u=h(d),v=O;c&&(e=c);v&&(O=!1);q(u);r(m.config,b)&&(m.config[d]=m.config[b]);try{l.exec(e)}catch(j){return A(F("fromtexteval","fromText eval for "+b+" failed: "+j,j,[b]))}v&&(O=!0);this.depMaps.push(u);k.completeLoad(d);g([d],n)}),e.load(a.name,g,n,m)}));k.enable(d,this);this.pluginMaps[d.id]=d},enable:function(){this.enabling=this.enabled=!0;x(this.depMaps,t(this,function(a,\n +b){var c,e;if("string"===typeof a){a=h(a,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap);this.depMaps[b]=a;if(c=i(N,a.id)){this.depExports[b]=c(this);return}this.depCount+=1;s(a,"defined",t(this,function(a){this.defineDep(b,a);this.check()}));this.errback&&s(a,"error",this.errback)}c=a.id;e=j[c];!r(N,c)&&(e&&!e.enabled)&&k.enable(a,this)}));E(this.pluginMaps,t(this,function(a){var b=i(j,a.id);b&&!b.enabled&&k.enable(a,this)}));this.enabling=!1;this.check()},on:function(a,b){var c=\n +this.events[a];c||(c=this.events[a]=[]);c.push(b)},emit:function(a,b){x(this.events[a],function(a){a(b)});"error"===a&&delete this.events[a]}};k={config:m,contextName:b,registry:j,defined:p,urlFetched:S,defQueue:G,Module:W,makeModuleMap:h,nextTick:l.nextTick,configure:function(a){a.baseUrl&&"/"!==a.baseUrl.charAt(a.baseUrl.length-1)&&(a.baseUrl+="/");var b=m.pkgs,c=m.shim,e={paths:!0,config:!0,map:!0};E(a,function(a,b){e[b]?"map"===b?Q(m[b],a,!0,!0):Q(m[b],a,!0):m[b]=a});a.shim&&(E(a.shim,function(a,\n +b){J(a)&&(a={deps:a});if((a.exports||a.init)&&!a.exportsFn)a.exportsFn=k.makeShimExports(a);c[b]=a}),m.shim=c);a.packages&&(x(a.packages,function(a){a="string"===typeof a?{name:a}:a;b[a.name]={name:a.name,location:a.location||a.name,main:(a.main||"main").replace(ga,"").replace(aa,"")}}),m.pkgs=b);E(j,function(a,b){!a.inited&&!a.map.unnormalized&&(a.map=h(b))});if(a.deps||a.callback)k.require(a.deps||[],a.callback)},makeShimExports:function(a){return function(){var b;a.init&&(b=a.init.apply(Y,arguments));\n +return b||a.exports&&Z(a.exports)}},makeRequire:function(a,d){function g(e,c,u){var i,m;d.enableBuildCallback&&(c&&I(c))&&(c.__requireJsBuild=!0);if("string"===typeof e){if(I(c))return A(F("requireargs","Invalid require call"),u);if(a&&r(N,e))return N[e](j[a.id]);if(l.get)return l.get(k,e,a);i=h(e,a,!1,!0);i=i.id;return!r(p,i)?A(F("notloaded",\'Module name "\'+i+\'" has not been loaded yet for context: \'+b+(a?"":". Use require([])"))):p[i]}K();k.nextTick(function(){K();m=q(h(null,a));m.skipMap=d.skipMap;\n +m.init(e,c,u,{enabled:!0});C()});return g}d=d||{};Q(g,{isBrowser:z,toUrl:function(b){var d,f=b.lastIndexOf("."),h=b.split("/")[0];if(-1!==f&&(!("."===h||".."===h)||1<f))d=b.substring(f,b.length),b=b.substring(0,f);b=k.nameToUrl(c(b,a&&a.id,!0),d||".fake");return d?b:b.substring(0,b.length-5)},defined:function(b){return r(p,h(b,a,!1,!0).id)},specified:function(b){b=h(b,a,!1,!0).id;return r(p,b)||r(j,b)}});a||(g.undef=function(b){w();var c=h(b,a,!0),d=i(j,b);delete p[b];delete S[c.url];delete X[b];\n +d&&(d.events.defined&&(X[b]=d.events),delete j[b])});return g},enable:function(a){i(j,a.id)&&q(a).enable()},completeLoad:function(a){var b,c,d=i(m.shim,a)||{},h=d.exports;for(w();G.length;){c=G.shift();if(null===c[0]){c[0]=a;if(b)break;b=!0}else c[0]===a&&(b=!0);D(c)}c=i(j,a);if(!b&&!r(p,a)&&c&&!c.inited){if(m.enforceDefine&&(!h||!Z(h)))return y(a)?void 0:A(F("nodefine","No define call for "+a,null,[a]));D([a,d.deps||[],d.exportsFn])}C()},nameToUrl:function(a,b){var c,d,h,g,k,j;if(l.jsExtRegExp.test(a))g=\n +a+(b||"");else{c=m.paths;d=m.pkgs;g=a.split("/");for(k=g.length;0<k;k-=1)if(j=g.slice(0,k).join("/"),h=i(d,j),j=i(c,j)){J(j)&&(j=j[0]);g.splice(0,k,j);break}else if(h){c=a===h.name?h.location+"/"+h.main:h.location;g.splice(0,k,c);break}g=g.join("/");g+=b||(/\\?/.test(g)?"":".js");g=("/"===g.charAt(0)||g.match(/^[\\w\\+\\.\\-]+:/)?"":m.baseUrl)+g}return m.urlArgs?g+((-1===g.indexOf("?")?"?":"&")+m.urlArgs):g},load:function(a,b){l.load(k,a,b)},execCb:function(a,b,c,d){return b.apply(d,c)},onScriptLoad:function(a){if("load"===\n +a.type||ha.test((a.currentTarget||a.srcElement).readyState))P=null,a=H(a),k.completeLoad(a.id)},onScriptError:function(a){var b=H(a);if(!y(b.id))return A(F("scripterror","Script error",a,[b.id]))}};k.require=k.makeRequire();return k}var l,w,B,D,s,H,P,K,ba,ca,ia=/(\\/\\*([\\s\\S]*?)\\*\\/|([^:]|^)\\/\\/(.*)$)/mg,ja=/[^.]\\s*require\\s*\\(\\s*["\']([^\'"\\s]+)["\']\\s*\\)/g,aa=/\\.js$/,ga=/^\\.\\//;w=Object.prototype;var L=w.toString,da=w.hasOwnProperty,fa=Array.prototype.splice,z=!!("undefined"!==typeof window&&navigator&&\n +document),$=!z&&"undefined"!==typeof importScripts,ha=z&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,V="undefined"!==typeof opera&&"[object Opera]"===opera.toString(),C={},q={},R=[],O=!1;if("undefined"===typeof define){if("undefined"!==typeof requirejs){if(I(requirejs))return;q=requirejs;requirejs=void 0}"undefined"!==typeof require&&!I(require)&&(q=require,require=void 0);l=requirejs=function(b,c,d,y){var g,h="_";!J(b)&&"string"!==typeof b&&(g=b,J(c)?(b=c,c=d,d=y):b=[]);\n +g&&g.context&&(h=g.context);(y=i(C,h))||(y=C[h]=l.s.newContext(h));g&&y.configure(g);return y.require(b,c,d)};l.config=function(b){return l(b)};l.nextTick="undefined"!==typeof setTimeout?function(b){setTimeout(b,4)}:function(b){b()};require||(require=l);l.version="2.1.4";l.jsExtRegExp=/^\\/|:|\\?|\\.js$/;l.isBrowser=z;w=l.s={contexts:C,newContext:ea};l({});x(["toUrl","undef","defined","specified"],function(b){l[b]=function(){var c=C._;return c.require[b].apply(c,arguments)}});if(z&&(B=w.head=document.getElementsByTagName("head")[0],\n +D=document.getElementsByTagName("base")[0]))B=w.head=D.parentNode;l.onError=function(b){throw b;};l.load=function(b,c,d){var i=b&&b.config||{},g;if(z)return g=i.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),g.type=i.scriptType||"text/javascript",g.charset="utf-8",g.async=!0,g.setAttribute("data-requirecontext",b.contextName),g.setAttribute("data-requiremodule",c),g.attachEvent&&!(g.attachEvent.toString&&0>g.attachEvent.toString().indexOf("[native code"))&&\n +!V?(O=!0,g.attachEvent("onreadystatechange",b.onScriptLoad)):(g.addEventListener("load",b.onScriptLoad,!1),g.addEventListener("error",b.onScriptError,!1)),g.src=d,K=g,D?B.insertBefore(g,D):B.appendChild(g),K=null,g;$&&(importScripts(d),b.completeLoad(c))};z&&M(document.getElementsByTagName("script"),function(b){B||(B=b.parentNode);if(s=b.getAttribute("data-main"))return q.baseUrl||(H=s.split("/"),ba=H.pop(),ca=H.length?H.join("/")+"/":"./",q.baseUrl=ca,s=ba),s=s.replace(aa,""),q.deps=q.deps?q.deps.concat(s):\n +[s],!0});define=function(b,c,d){var i,g;"string"!==typeof b&&(d=c,c=b,b=null);J(c)||(d=c,c=[]);!c.length&&I(d)&&d.length&&(d.toString().replace(ia,"").replace(ja,function(b,d){c.push(d)}),c=(1===d.length?["require"]:["require","exports","module"]).concat(c));if(O){if(!(i=K))P&&"interactive"===P.readyState||M(document.getElementsByTagName("script"),function(b){if("interactive"===b.readyState)return P=b}),i=P;i&&(b||(b=i.getAttribute("data-requiremodule")),g=C[i.getAttribute("data-requirecontext")])}(g?\n +g.defQueue:R).push([b,c,d])};define.amd={jQuery:!0};l.exec=function(b){return eval(b)};l(q)}})(this);\n + + +]]></string> </value> + </item> + <item> + <key> <string>precondition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>14629</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>require.js</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/route.js.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/route.js.xml new file mode 100644 index 0000000000000000000000000000000000000000..b1dae97e41e08f7c17c81bc037104b36cac9a18a --- /dev/null +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/route.js.xml @@ -0,0 +1,198 @@ +<?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>ts62728561.31</string> </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>route.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[ + +/*global window, jQuery */\n +/*!\n + * route.js v1.0.0\n + *\n + * Copyright 2012, Romain Courteaud\n + * Dual licensed under the MIT or GPL Version 2 licenses.\n + *\n + * Date: Mon Jul 16 2012\n + */\n +"use strict";\n +(function (window, $) {\n +\n + $.extend({\n + StatelessDeferred: function () {\n + var doneList = $.Callbacks("memory"),\n + promise = {\n + done: doneList.add,\n +\n + // Get a promise for this deferred\n + // If obj is provided, the promise aspect is added to the object\n + promise: function (obj) {\n + var i,\n + keys = [\'done\', \'promise\'];\n + if (obj === undefined) {\n + obj = promise;\n + } else {\n + for (i = 0; i < keys.length; i += 1) {\n + obj[keys[i]] = promise[keys[i]];\n + }\n + }\n + return obj;\n + }\n + },\n + deferred = promise.promise({});\n +\n + deferred.resolveWith = doneList.fireWith;\n +\n + // All done!\n + return deferred;\n + }\n + });\n +\n + var routes = [],\n + current_priority = 0,\n + methods = {\n + add: function (pattern, priority) {\n + var i = 0,\n + inserted = false,\n + length = routes.length,\n + dfr = $.StatelessDeferred(),\n + context = $(this),\n + escapepattern,\n + matchingpattern;\n +\n + if (priority === undefined) {\n + priority = 0;\n + }\n + if (pattern !== undefined) {\n +\n + // http://simonwillison.net/2006/Jan/20/escape/\n + escapepattern = pattern.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, "\\\\$&");\n + matchingpattern = escapepattern\n + .replace(/<int:\\w+>/g, "(\\\\d+)")\n + .replace(/<path:\\w+>/g, "(.+)")\n + .replace(/<\\w+>/g, "([^/]+)");\n +\n + while (!inserted) {\n + if ((i === length) || (priority >= routes[i][2])) {\n + routes.splice(i, 0, [new RegExp(\'^\' + matchingpattern + \'$\'), dfr, priority, context]);\n + inserted = true;\n + } else {\n + i += 1;\n + }\n + }\n + }\n + return dfr.promise();\n + },\n + go: function (path, min_priority) {\n + var dfr = $.Deferred(),\n + context = $(this),\n + result;\n +\n + if (min_priority === undefined) {\n + min_priority = 0;\n + }\n + setTimeout(function () {\n + var i = 0,\n + found = false,\n + slice_index = -1,\n + slice_priority = -1;\n + for (i = 0; i < routes.length; i += 1) {\n + if (slice_priority !== routes[i][2]) {\n + slice_priority = routes[i][2];\n + slice_index = i;\n + }\n + if (routes[i][2] < min_priority) {\n + break;\n + } else if (routes[i][0].test(path)) {\n + result = routes[i][0].exec(path);\n + dfr = routes[i][1];\n + context = routes[i][3];\n + current_priority = routes[i][2];\n + found = true;\n + break;\n + }\n + }\n + if (i === routes.length) {\n + slice_index = i;\n + }\n + if (slice_index > -1) {\n + routes = routes.slice(slice_index);\n + }\n + if (found) {\n + dfr.resolveWith(\n + context,\n + result.slice(1)\n + );\n + } else {\n + dfr.rejectWith(context);\n + }\n + });\n + return dfr.promise();\n + },\n + };\n +\n +\n + $.routereset = function () {\n + routes = [];\n + current_priority = 0;\n + };\n +\n + $.routepriority = function () {\n + return current_priority;\n + };\n +\n + $.fn.route = function (method) {\n + var result;\n + if (methods.hasOwnProperty(method)) {\n + result = methods[method].apply(\n + this,\n + Array.prototype.slice.call(arguments, 1)\n + );\n + } else {\n + $.error(\'Method \' + method +\n + \' does not exist on jQuery.route\');\n + }\n + return result;\n + };\n +\n +}(window, jQuery));\n + + +]]></string> </value> + </item> + <item> + <key> <string>precondition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>3939</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>route.js</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/url.js.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/url.js.xml new file mode 100644 index 0000000000000000000000000000000000000000..bc052e314ac09daed2aad0211b38078578be8c60 --- /dev/null +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/lib/url.js.xml @@ -0,0 +1,174 @@ +<?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>ts62728569.21</string> </value> + </item> + <item> + <key> <string>__name__</string> </key> + <value> <string>url.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 + * url.js v1.0.0\n + *\n + * Copyright 2012, Romain Courteaud\n + * Dual licensed under the MIT or GPL Version 2 licenses.\n + *\n + * Date: Mon Jul 16 2012\n + */\n +"use strict";\n +(function (window, $) {\n +\n + var hashchangeinitialized = false,\n + previousurl,\n + currentcallback,\n + getRawHash = function () {\n + return window.location.toString().split(\'#\')[1];\n + },\n + callbackwrapper = function () {\n + if (previousurl !== window.location.hash) {\n + previousurl = window.location.hash;\n + if (currentcallback !== undefined) {\n + currentcallback();\n + }\n + }\n + },\n + timeoutwrapper = function () {\n + callbackwrapper();\n + window.setTimeout(timeoutwrapper, 500);\n + };\n +\n + function UrlHandler() {}\n +\n + UrlHandler.prototype = {\n + \'generateUrl\': function (path, options) {\n + var pathhash,\n + hash = \'#\',\n + key;\n + if (path !== undefined) {\n + hash += encodeURIComponent(path);\n + }\n + hash = hash.replace(/%2F/g, \'/\');\n + pathhash = hash;\n + for (key in options) {\n + if (options.hasOwnProperty(key)) {\n + if (hash === pathhash) {\n + hash = hash + \'?\';\n + } else {\n + hash = hash + \'&\';\n + }\n + hash += encodeURIComponent(key) +\n + \'=\' + encodeURIComponent(options[key]);\n + }\n + }\n + return hash;\n + },\n +\n + \'go\': function (path, options) {\n + window.location.hash = this.generateUrl(path, options);\n + },\n +\n + \'redirect\': function (path, options) {\n + var host = window.location.protocol + \'//\' +\n + window.location.host +\n + window.location.pathname +\n + window.location.search;\n + window.location.replace(host + this.generateUrl(path, options));\n +// window.location.replace(window.location.href.replace(/#.*/, ""));\n + },\n +\n + \'getPath\': function () {\n + var hash = getRawHash(),\n + result = \'\';\n + if (hash !== undefined) {\n + result = decodeURIComponent(hash.split(\'?\')[0]);\n + }\n + return result;\n + },\n +\n + \'getOptions\': function () {\n + var options = {},\n + hash = getRawHash(),\n + subhashes,\n + subhash,\n + index,\n + keyvalue;\n + if (hash !== undefined) {\n + hash = hash.split(\'?\')[1];\n + if (hash !== undefined) {\n + subhashes = hash.split(\'&\');\n + for (index in subhashes) {\n + if (subhashes.hasOwnProperty(index)) {\n + subhash = subhashes[index];\n + if (subhash !== \'\') {\n + keyvalue = subhash.split(\'=\');\n + if (keyvalue.length === 2) {\n + options[decodeURIComponent(keyvalue[0])] =\n + decodeURIComponent(keyvalue[1]);\n + }\n + }\n + }\n + }\n + }\n + }\n + return options;\n + },\n +\n + \'onhashchange\': function (callback) {\n + previousurl = undefined;\n + currentcallback = callback;\n +\n + if (!hashchangeinitialized) {\n + if (window.onhashchange !== undefined) {\n + $(window).bind(\'hashchange\', callbackwrapper);\n + window.setTimeout(callbackwrapper);\n + } else {\n + timeoutwrapper();\n + }\n + hashchangeinitialized = true;\n + }\n + },\n + };\n +\n + // Expose to the global object\n + $.url = new UrlHandler();\n +\n +}(window, jQuery));\n + + +]]></string> </value> + </item> + <item> + <key> <string>precondition</string> </key> + <value> <string></string> </value> + </item> + <item> + <key> <string>size</string> </key> + <value> <int>3293</int> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string>url.js</string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/status_gadget.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/status_gadget.xml index 2996cdbfe0e182227cb1d40e37f7bdfe00331ed5..d812ff7608d1f65949619ceed41cb6049ebf023c 100644 --- a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/status_gadget.xml +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/status_gadget.xml @@ -57,6 +57,7 @@ </div>\n </tal:block>\n \n + <!-- XXX add portal_status_message gadget -->\n <div tal:content="request/portal_status_message | nothing" id="transition_message"\n class="transition_message"/>\n \n diff --git a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/template_erp5_xhtml_style_disable.xml b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/template_erp5_xhtml_style_disable.xml index 175ab3553f23d637dd4bf137e0ca58cda1e729a5..bea6764616ece00afc0ef88f15d33d993bb0655f 100644 --- a/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/template_erp5_xhtml_style_disable.xml +++ b/bt5/erp5_xhtml_gadget_style/SkinTemplateItem/portal_skins/erp5_xhtml_gadget_style/template_erp5_xhtml_style_disable.xml @@ -34,128 +34,114 @@ </item> <item> <key> <string>_text</string> </key> - <value> <unicode>\074tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n + <value> <unicode encoding="cdata"><![CDATA[ + +<tal:block xmlns:tal="http://xml.zope.org/namespaces/tal"\n xmlns:metal="http://xml.zope.org/namespaces/metal"\n - xmlns:i18n="http://xml.zope.org/namespaces/i18n"\076\n - \074tal:block tal:replace="nothing"\076\n -\074!--\n + xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n + <tal:block tal:replace="nothing">\n +<!--\n IDEAS:\n - - Add callbacks to ERP5Form object (selection ?) to gather needed fields -\076 put them in http_parameter_list.\n ---\076\n - \074/tal:block\076\n - \074tal:block metal:define-macro="master"\076\n - \074tal:block tal:define="global_definitions_macros here/global_definitions/macros;\n - subject_list subject_list | python:here.getProperty(\'subject_list\', []) or []"\076\n - \074tal:block metal:use-macro="global_definitions_macros/header_definitions" /\076\n - \074!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"\076\n - \074html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"\076\n - \074head\076\n - \074base tal:attributes="href python: \'%s/\' % (url, )" /\076\n - \074meta name="generator" content="ERP5 - Copyright (C) 2001 - 2008. All rights reserved." /\076\n - \074meta name="description" content=""\n - tal:attributes="content description | title | string:ERP5 Free Open Source ERP and CRM" /\076\n - \074meta name="keywords" content=""\n - tal:attributes="content python:\', \'.join(subject_list)" /\076\n - \074meta name="robots" content="index, follow" /\076\n - \074meta http-equiv="Content-Type" content="text/html; charset=utf-8" /\076\n - \074meta http-equiv="Content-Script-Type" content="text/javascript" /\076\n - \074meta http-equiv="Content-Style-Type" content="text/css" /\076\n - \074title tal:define="title title | string:ERP5;\n + - Add callbacks to ERP5Form object (selection ?) to gather needed fields -> put them in http_parameter_list.\n +-->\n + </tal:block>\n + <tal:block metal:define-macro="master">\n + <tal:block tal:define="global_definitions_macros here/global_definitions/macros;\n + subject_list subject_list | python:here.getProperty(\'subject_list\', []) or []">\n + <tal:block metal:use-macro="global_definitions_macros/header_definitions" />\n + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n + <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n + <head>\n + <base tal:attributes="href python: \'%s/\' % (url, )" />\n + <meta name="generator" content="ERP5 - Copyright (C) 2001 - 2008. All rights reserved." />\n + <meta name="description" content=""\n + tal:attributes="content description | title | string:ERP5 Free Open Source ERP and CRM" />\n + <meta name="keywords" content=""\n + tal:attributes="content python:\', \'.join(subject_list)" />\n + <meta name="robots" content="index, follow" />\n + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n + <meta http-equiv="Content-Script-Type" content="text/javascript" />\n + <meta http-equiv="Content-Style-Type" content="text/css" />\n + <title tal:define="title title | string:ERP5;\n header_title header_title | nothing"\n - tal:content="python:header_title or \'%s | %s\' % (title, here.getPortalObject().title_or_id())"\076\074/title\076\n - \074tal:block tal:repeat="css css_list"\076\n - \074link tal:attributes="href css" type="text/css" rel="stylesheet" /\076\n - \074/tal:block\076\n - \074tal:block tal:replace="nothing"\076\n - \074!-- Render each field\'s css and javascript. --\076\n - \074/tal:block\076\n - \074tal:block tal:condition="python: form is not None"\076\n - \074tal:block tal:repeat="group python: [x for x in form.get_groups(include_empty=0) if x != \'hidden\']"\076\n - \074tal:block tal:repeat="field python: form.get_fields_in_group(group)"\076\n - \074tal:block tal:define="css python: field.render_css(REQUEST=request)"\076\n - \074style tal:condition="python: css is not None"\n + tal:content="python:header_title or \'%s | %s\' % (title, here.getPortalObject().title_or_id())"></title>\n + <tal:block tal:repeat="css css_list">\n + <link tal:attributes="href css" type="text/css" rel="stylesheet" />\n + </tal:block>\n + <tal:block tal:replace="nothing">\n + <!-- Render each field\'s css and javascript. -->\n + </tal:block>\n + <tal:block tal:condition="python: form is not None">\n + <tal:block tal:repeat="group python: [x for x in form.get_groups(include_empty=0) if x != \'hidden\']">\n + <tal:block tal:repeat="field python: form.get_fields_in_group(group)">\n + <tal:block tal:define="css python: field.render_css(REQUEST=request)">\n + <style tal:condition="python: css is not None"\n tal:content="css"\n - tal:attributes="type python:\'text/css\'"\076\n - \074/style\076\n - \074/tal:block\076\n - \074tal:block tal:define="dummy python: js_list.extend(field.get_javascript_list(REQUEST=request))" /\076\n - \074/tal:block\076\n - \074/tal:block\076\n - \074/tal:block\076\n - \074tal:block tal:repeat="js js_list"\076\n - \074script tal:attributes="src js" type="text/javascript"\076\074/script\076\n - \074/tal:block\076\n + tal:attributes="type python:\'text/css\'">\n + </style>\n + </tal:block>\n + <tal:block tal:define="dummy python: js_list.extend(field.get_javascript_list(REQUEST=request))" />\n + </tal:block>\n + </tal:block>\n + </tal:block>\n \n - \074!-- RenderJs added libraries (WIP, XXX: use requirejs) --\076\n - \074script src="jquery/ui/js/jquery-ui.js" type="text/javascript"\076\074/script\076\n - \074link rel="stylesheet" type="text/css" media="screen" href="gadget-style.css" /\076\n - \074link rel="stylesheet" type="text/css" media="screen" href="jquery/plugin/jqgrid/ui.jqgrid.css" /\076\n - \074link rel="stylesheet" type="text/css" media="screen" href="jquery/ui/css/erp5-theme/jquery-ui.css" /\076\n - \074script type="text/javascript" src="jquery/plugin/jqgrid/i18n/grid.locale-en.js"\076\074/script\076\n - \074script type="text/javascript" src="jquery/plugin/jqgrid/jquery.jqGrid.src.js"\076\074/script\076\n - \074!--[if IE]\076\n - \074script type="text/javascript" src="jquery/plugin/jstorage/jquery.json-2.3.js"\076\074/script\076\n - \074!--\074![endif]--\076\n - \074script src="jquery/plugin/renderjs/renderjs.js"\076\074/script\076\n - \074script src="erp5_form.js"\076\074/script\076\n + <link rel="stylesheet" type="text/css" media="screen" href="gadget-style.css" />\n + <link rel="stylesheet" type="text/css" media="screen" href="jquery/plugin/jqgrid/ui.jqgrid.css" />\n + <link rel="stylesheet" type="text/css" media="screen" href="jquery/ui/css/erp5-theme/jquery-ui.css" />\n \n - \074script type="text/javascript" language="javascript"\076\n - //\074![CDATA[\n - $(document).ready(function() {\n - // we need to explicitly fire it\n - RenderJs.init();\n - });\n - //]]\076\n - \074/script\076\n + <script data-main="lib/require-erp5.js"\n + type="text/javascript"\n + src="lib/require.js"></script>\n \n - \074link rel="icon" tal:attributes="href string:${portal_path}/favicon.ico" type="image/x-icon" /\076\n - \074link rel="shortcut icon" tal:attributes="href string:${portal_path}/favicon.ico" type="image/x-icon" /\076\n - \074tal:block metal:define-slot="head"\076\n - \074!-- this is a placeholder for different extensions to head which could be required by web themes --\076\n - \074/tal:block\076\n - \074/head\076\n - \074body tal:attributes="class body_css_class|nothing"\076\n - \074form id="main_form"\n + <link rel="icon" tal:attributes="href string:${portal_path}/favicon.ico" type="image/x-icon" />\n + <link rel="shortcut icon" tal:attributes="href string:${portal_path}/favicon.ico" type="image/x-icon" />\n + <tal:block metal:define-slot="head">\n + <!-- this is a placeholder for different extensions to head which could be required by web themes -->\n + </tal:block>\n + </head>\n + <body tal:attributes="class body_css_class|nothing">\n + <form id="main_form"\n class="main_form"\n onsubmit="changed=false; return true"\n tal:attributes="enctype enctype | form/Form_getEnctype | nothing;\n action url;\n - method python:str(path(\'form/method | string:post\')).lower()"\076\n - \074fieldset id="hidden_fieldset" class="hidden_fieldset"\076\n - \074input tal:condition="form_action | nothing"\n + method python:str(path(\'form/method | string:post\')).lower()">\n + <fieldset id="hidden_fieldset" class="hidden_fieldset">\n + <input tal:condition="form_action | nothing"\n id="hidden_button" class="hidden_button" type="submit" value="dummy"\n - tal:attributes="name string:${form_action}:method" /\076\n - \074tal:block metal:use-macro="global_definitions_macros/http_definitions" /\076\n - \074/fieldset\076\n - \074tal:block metal:define-slot="layout"\076\n + tal:attributes="name string:${form_action}:method" />\n + <tal:block metal:use-macro="global_definitions_macros/http_definitions" />\n + </fieldset>\n + <tal:block metal:define-slot="layout">\n \n - \074div id="bars" class="bars"\076\n + <div id="bars" class="bars">\n \n - \074div id="main_bar"\n - data-gadget="ERP5Site_renderCachedNavigationBox"\076\074/div\076\n + <div id="main_bar"\n + data-gadget="ERP5Site_renderCachedNavigationBox"></div>\n \n - \074!-- XXX: make a gadget --\076\n - \074div id="context_bar" class="context_bar"\076\n - \074tal:block metal:define-slot="context_bar" /\076\n - \074/div\076\n + <div id="context_bar" class="context_bar">\n + <tal:block metal:define-slot="context_bar" />\n + </div>\n \n - \074/div\076\n + </div>\n \n - \074div id="status"\n + <div id="status"\n class="status"\n - data-gadget="status_gadget"\076\074/div\076\n + data-gadget="status_gadget"></div>\n \n - \074div id="master" class="master"\076\n - \074tal:block metal:define-slot="main" /\076\n - \074/div\076\n + <div id="master" class="master">\n + <tal:block metal:define-slot="main" />\n + </div>\n \n - \074/tal:block\076\n - \074/form\076\n - \074/body\076\n - \074/html\076\n - \074/tal:block\076\n - \074/tal:block\076\n -\074/tal:block\076</unicode> </value> + </tal:block>\n + </form>\n + </body>\n + </html>\n + </tal:block>\n + </tal:block>\n +</tal:block> + +]]></unicode> </value> </item> <item> <key> <string>content_type</string> </key> diff --git a/bt5/erp5_xhtml_gadget_style/bt/revision b/bt5/erp5_xhtml_gadget_style/bt/revision index 19c7bdba7b1e9bfe80365a50420a6d538ca503c3..8e2afd342773582f9484b796cdc0b84736e8194e 100644 --- a/bt5/erp5_xhtml_gadget_style/bt/revision +++ b/bt5/erp5_xhtml_gadget_style/bt/revision @@ -1 +1 @@ -16 \ No newline at end of file +17 \ No newline at end of file